Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 15-11-2005 20:15:40

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Очень рекомендую перед манипуляциями всё бэкапить. Иструкции кстати не сильно детилизированны и если вы очень далеки от 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;

Собственно всё должно работать. Вчера ночью работало. wink

Отредактированно Nicck (16-11-2005 22:23:53)

Неактивен

 

#2 16-11-2005 16:31:34

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

На какой версии? Кульно оч.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#3 16-11-2005 17:01:02

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Разумеется 4.0.2 но особых препятствий применить это к другим версиям не вижу, к 4.0.1 например.

Неактивен

 

#4 05-12-2005 12:42:45

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Текстилизация заголовка не встала ;( или руки кривые.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#5 05-12-2005 14:42:27

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Скорее всего что-то упустил. Кто-то из нас. Скорее всего ты.
Текстилится заголовок естественно только при сохранении статьи. Старые заголовки так и останутся не оттекстиленными до пересохранения.

Неактивен

 

#6 06-12-2005 22:35:44

asfv
глаголь
Зарегистрирован: 06-12-2005
Сообщений: 30

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Хм, интересно.

А никто не пробовал "подружить" textpattern с Типографом? По-моему неплохая идея. Только мне слабо видятся пути ее реализации, но я от этого далек smile.

Неактивен

 

#7 07-12-2005 11:35:31

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Можно попробоавть... было бы, если бы "Типограф" бы разрешали скачать. А тебе охота, чтобы всен твои статьи шли бы через сайт Лебедева?


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#8 07-12-2005 18:25:52

asfv
глаголь
Зарегистрирован: 06-12-2005
Сообщений: 30

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Мне, честно говоря, все-равно, через что идут мои статьи. Пароли я не публикую, особо личные данные -- тоже. «Большого брата» я не боюсь, если ты об этом. Просто шансы на то, что код Типографа будет открыт, ничтожно малы, а сервис, в то же время, неплохой.

Неактивен

 

#9 08-12-2005 11:09:34

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Я не про ББ, а про то, что Лебедев в любое время закроет этот сервис. Есть аналоги, порой даже лучшеие, вот их бы интегрировать. Например,я бы мечтал увидеть в ТП вот это:

http://pixel-apes.com/typografica

Отредактированно glebotr (08-12-2005 11:11:35)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#10 08-12-2005 12:33:18

asfv
глаголь
Зарегистрирован: 06-12-2005
Сообщений: 30

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Как я понимаю, сделать что-то вроде TextilePHP+Smartypants, но с Типографикой.

Кому слать feature request? smile

Неактивен

 

#11 08-12-2005 16:18:25

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

А считай послал. Или тему открой в проблемах.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#12 06-01-2006 20:31:02

asfv
глаголь
Зарегистрирован: 06-12-2005
Сообщений: 30

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Сегодня пытался прикрутить какой-нибудь русский «кавычкер» для TXP (во всех случаях хакал classTextile.php заменой glyphs ф-ии или добавлением перед ней своей). Тщетно.

Ни «Типограф» САЛа, ни «Типографика» не встали нормально. В первом случае грабли с параграфами (переносы строк?), во втором -- получил в лоб от replaceMacros при «вставке тегов обратно». Повторюсь: от PHP я беспроссветно далек, а кавычек все-равно хочется smile.

Никто ничего больше не делал в этом направлении?

Неактивен

 

#13 06-01-2006 22:45:09

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

делал немного, ищите на форуме.

upd: я эту веткии имел в виду. ) кроме этого ничего не делал.

Отредактированно Nicck (07-01-2006 13:27:33)

Неактивен

 

#14 07-01-2006 19:20:41

asfv
глаголь
Зарегистрирован: 06-12-2005
Сообщений: 30

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Хорошо. Сегодня была попытка номер 2. Тупо внедрял регекспы из вот этой вот тулзы[1] (ее PHP версия, естественно) в массив $glyph_search, $glyph_replace.

Странный эффект: при кодировке текста cp1251 все прекрасно работает, при нормальной родной utf-8 -- очередной ступор (поясню: сам classTextile.php вначале тестировал отдельно от ТХР скармливая ему cp1251, как потом оказалось smile).

[1] http://typographer.ru/

Неактивен

 

#15 10-01-2006 10:25:56

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Может, файл случайно в win-кодировке отредактировал?


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#16 10-01-2006 13:37:34

asfv
глаголь
Зарегистрирован: 06-12-2005
Сообщений: 30

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

glebotr написал:

Может, файл случайно в win-кодировке отредактировал?

Нет, UTF-8. Может еще покопаюсь на днях, посмотрим.

Неактивен

 

#17 04-12-2008 17:25:21

advan
ю
Откуда: Mk
Зарегистрирован: 05-11-2006
Сообщений: 835
Вебсайт

Re: Русские кавычки, аббревиатуры. Текстилизация заголовка статьи.

Попробовал изменить файл classTextile.php как рассказал Nicck в первом посте.
Вроде все работает (включая русские акронимы), но только во вновь создаваемых статьях.
Если пересохранить статью, то все становиться ок.
На сайте > 500 статей ... вручную пересохранять? smile


Знакомьтесь на здоровье - http://love.kachok.ru  /  Я в PHP ниПХПуя незнаю! :)

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru