форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Очень рекомендую перед манипуляциями всё бэкапить. Иструкции кстати не сильно детилизированны и если вы очень далеки от php и кода админки вам лучше... м... стать к этим вещам ближе. Ну или дождаться когда крики "да, клёва, мы хотим это в виде уже поправленных фалов текущего релиза в архиве доступном для скачивания" сподвигнут кого-либо(возможно автора хаков) выложить их в вышеупомянутом виде.
Русские кавычки, аббревиатуры.
Зачем: надо бы наши кавычки использовать в русскоязычных текстах.
Как:
1. меняем "что" и "на что" заменять при текстилизации: всякие разные красивые кавычки(„”‘’) меняем на простые ("'), простые на руские (" на «ёлочки», ' на „лапки” или как их там). Разные красивые могут просочиться в исходный текст например через буфер обмена (выделил в ворде, вставил в браузер). Так их оставлять нельзя, чтоб всё было ровненько сводим всё в двум типам кавычек.
2. заодним немного поправил регексп который ловит аббревиатуры. вроде работает.
Файл: textpattern\lib\classTextile.php
Функция: function glyphs($text)
//:MOD:nck $glyph_search = array( '/“([^”]+)”/', '/‘([^’]+)’/', '/“|”/', '/([^\s[{(>_*])?\'(?(1)|(?=\s|s\b|'.$pnc.'))/', // single closing '/\'/', // single opening '/([^\s[{(>_*])?"(?(1)|(?=\s|'.$pnc.'))/', // double closing '/"/', // double opening '/\b( )?\.{3}/', // ellipsis '/(\s|^)([A-ZА-Я][A-ZА-Я0-9]{2,})(?:[(]([^)]*)[)])/', // 3+ uppercase acronym '/\s?--\s?/', // em dash '/\s-\s/', // en dash '/(\d+) ?x ?(\d+)/', // dimension sign '/\b ?[([]TM[])]/i', // trademark '/\b ?[([]R[])]/i', // registered '/\b ?[([]C[])]/i', // copyright '/«/', '/»/', '/„/', '/”/'); $glyph_replace = array( '"$1"', "'$1'", '"', '$1”$2', // single closing '„', // single opening '$1»', // double closing '«', // double opening '$1…', // ellipsis '$1<acronym title="$3">$2</acronym>', // 3+ uppercase acronym '& #8212;', // em dash ' & #8211; ', // en dash '$1& #215;$2', // dimension sign '& #8482;', // trademark '& #174;', // registered '& #169;', // copyright '& #171;', '& #187;', '& #8222;', '& #8220;');
EDIT:
Форум сожрал код и нарисовал знак TM вместо & # 8 4 8 2 ;
Чтоб этого не происходило я добавил пробелов между & и #
убрать не забудьте.
Замечания:
1. не забываем что всё в utf-8
2. сделал только вчера, как следует ниаттестил, так что на свой страх и риск
3. по уму конечно в xhtml есть q и lang и css, но... увы.
4. с дюймами не очень хорошо вышло. т.е. например 'продаю 17" монитор' превратится в 'продаю 17» монитор'
Текстилизация заголовка статьи.
Зачем: бывают в заголовках кавычки...
Как: так же как и body только title, тем более место в БД есть, поле Title_html не используется но судя по всему предназначено именно для этого.
Текстилим в облегчённом варианте (т.е. не заворачиваем строку в блок, списки вероятно тоже не прокатят, но это и не нужно).
Файл: textpattern\include\txp_article.php
Функция: function textile_main_fields($incoming, $use_textile)
Текстилим title в режиме lite (второй параметр метода TextileThis := 1)
// после вот этого: $incoming['Title'] = $textile->TextileThis($incoming['Title'],'',1); // добавляем это: $incoming['Title_html'] = $textile->TextileThis($incoming['Title'],1); // lite
Функция: function article_post()
Добавляем вставку поля Title_html
//:mod: safe_insert( "textpattern", "Title = '$Title', Title_html = '$Title_html', Body = '$Body',
Функция: function article_save()
Добавляем обновление поля Title_html
//:mod:nck safe_update("textpattern", "Title = '$Title', Title_html = '$Title_html', Body = '$Body',
Файл: textpattern\publish.php
Функция: function populateArticleData($rs)
В качестве заголовка используем оттекстиленный title если он имеется, иначе по старому т.е. обычный, как он есть.
Необходимо для статей введённых до модификации.
// меняем $out['title'] = $Title; на: $out['title'] = !empty($Title_html)?$Title_html:$Title;
Собственно всё должно работать. Вчера ночью работало.
Отредактированно Nicck (16-11-2005 22:23:53)
Неактивен
На какой версии? Кульно оч.
Неактивен
Текстилизация заголовка не встала ;( или руки кривые.
Неактивен
Скорее всего что-то упустил. Кто-то из нас. Скорее всего ты.
Текстилится заголовок естественно только при сохранении статьи. Старые заголовки так и останутся не оттекстиленными до пересохранения.
Неактивен
Хм, интересно.
А никто не пробовал "подружить" textpattern с Типографом? По-моему неплохая идея. Только мне слабо видятся пути ее реализации, но я от этого далек .
Неактивен
Можно попробоавть... было бы, если бы "Типограф" бы разрешали скачать. А тебе охота, чтобы всен твои статьи шли бы через сайт Лебедева?
Неактивен
Мне, честно говоря, все-равно, через что идут мои статьи. Пароли я не публикую, особо личные данные -- тоже. «Большого брата» я не боюсь, если ты об этом. Просто шансы на то, что код Типографа будет открыт, ничтожно малы, а сервис, в то же время, неплохой.
Неактивен
Я не про ББ, а про то, что Лебедев в любое время закроет этот сервис. Есть аналоги, порой даже лучшеие, вот их бы интегрировать. Например,я бы мечтал увидеть в ТП вот это:
http://pixel-apes.com/typografica
Отредактированно glebotr (08-12-2005 11:11:35)
Неактивен
Как я понимаю, сделать что-то вроде TextilePHP+Smartypants, но с Типографикой.
Кому слать feature request?
Неактивен
А считай послал. Или тему открой в проблемах.
Неактивен
Сегодня пытался прикрутить какой-нибудь русский «кавычкер» для TXP (во всех случаях хакал classTextile.php заменой glyphs ф-ии или добавлением перед ней своей). Тщетно.
Ни «Типограф» САЛа, ни «Типографика» не встали нормально. В первом случае грабли с параграфами (переносы строк?), во втором -- получил в лоб от replaceMacros при «вставке тегов обратно». Повторюсь: от PHP я беспроссветно далек, а кавычек все-равно хочется .
Никто ничего больше не делал в этом направлении?
Неактивен
Хорошо. Сегодня была попытка номер 2. Тупо внедрял регекспы из вот этой вот тулзы[1] (ее PHP версия, естественно) в массив $glyph_search, $glyph_replace.
Странный эффект: при кодировке текста cp1251 все прекрасно работает, при нормальной родной utf-8 -- очередной ступор (поясню: сам classTextile.php вначале тестировал отдельно от ТХР скармливая ему cp1251, как потом оказалось ).
[1] http://typographer.ru/
Неактивен
Может, файл случайно в win-кодировке отредактировал?
Неактивен
glebotr написал:
Может, файл случайно в win-кодировке отредактировал?
Нет, UTF-8. Может еще покопаюсь на днях, посмотрим.
Неактивен
Попробовал изменить файл classTextile.php как рассказал Nicck в первом посте.
Вроде все работает (включая русские акронимы), но только во вновь создаваемых статьях.
Если пересохранить статью, то все становиться ок.
На сайте > 500 статей ... вручную пересохранять?
Неактивен