Типограф работающий как фильтр. Есль модуль для Друпала. Правда оригинал сразу не заработал пришлость дописать в info файле потдержку 6-й версии и класс назвать с маленькой буквы.
Страница оригинала здесь.
http://rmcreative.ru/blog/post/tipograf
Для ленивых модуль прикладываю.
Вложение | Размер |
---|---|
typographus.zip | 11.48 КБ |
Комментарии
Спасибо, полезная штука
Носите не стаптывайте.
Это новый фильтр или что?
Штука несомненно полезная. Но на мой взгляд сыровата.
Пользуюсь почти год
Не против, если включу обновлённый модуль в архив типографа?
И где де обновление?;)
Я не против, выкладывайте
Наверное, на типограф.ру
HIgor1968
http://rmcreative.ru/blog/post/tipograf
АААА, Семен-Семеныч:)
обзор типографов:
http://www.typograf.ru/flog/
вывод:
http://www.typograf.ru/ - лучший
ИМХО:
если прикручивать, то лучший
Все бы хороше - но это смущает -
чем смущает... фильтр включаются только один раз при создании или изменении ноды
В принципе можно.
Можно и кнопочкой при редактировании ноды.
Может так и сделаю. То текущий типограф у меня периодически косячит.
кнопочкой при редактировании ноды...
тогда совместимость с висивиг редакторами может пострадать
Как прикручу - отпишусь.
Но скорее всего пока под FCK.
Господа, не стройте иллюзий - фильтры накладываются в node_prepare^api перед выводом, при чем в зависимости от роли пользователя для которого этот вывод делается, смотрите внимательно node_view^api
...хостера не жалко?)
hook_filter юзать нужно
bodro, о чем вы? почитайте документацию и посмотрите код
hook_filter^api определяет фильтр, в нем выполняется обработка текста, кстати есть кеш фильтров - самое эффективное средство борьбы с нагрузкой! А фильтры почти всегда отрабатывают, ибо почти всегда вызывается node_view^api
тут подробней - http://data1.floomby.ru/getfile.aspx?guid=968cf3e6-5d11-4759-b5ec-58b91c...
дык это и нужно
чем node_view, node_prepare могут тут помочь я так и не понял
внимательнее
Отсюда весь сыр бор - фильтр в данном случае не нужен, текст стоит поправить на этапе подготовки, собственно как и проверка орфографии.
например мне именно такой фильтр и нужен
если нужно на этапе подготовки, то JS решение будет лучшим вариантом
Поэтому я и написал - незачем хранить текст не обработанный типографом и каждый раз при выводе прогонять фильтром... пожалейте хостера
мдя...
итак, давайте разберемся как же работают фильтры...
При создании ноды:
1 – берем исходный текст, вычисляем для него MD5
2 – прогоняем через фильтры
3 – записываем в кеш MD5 и отфильтрованный текст
При вызове ноды:
1 – берем текст вычисляем для него MD5
2 – смотрим в кеш, MD5 совпадает..? тогда выводим текст из кеша, не запуская фильтры (исключение составляют фильтры которые юзают $op == 'no cache')
Небольшая поправка - при создании и правке ничего не вычисляется и не сохраняется кроме тела ноды и его формата.
Обычно сразу после правки нода выводится на экран и вот тут отрабатывают фильтры, причем очень важно, разрешено ли кеширование для фильтра, обычно оно выключено.
После редактирования списка фильтров или ноды кеш фильтров сбрасывается (по статистике drupal.ru кеш фильтра дает примерно 60-70% попаданий в кеш), но это после того, как руками почти всем Фильтрам разрешено кеширование!
Кеш хранится в виде (check_markup^api) <?php $cache_id = $format .':'. md5($text); ?>
При просмотре ноды он и проверяется, и это только в случае, если нода обрабатывается модулем node, а если нода делается своим модулем, то тут как указал разработчик...
сделал модуль фильтра под 5ку, он добавляет в конец ноды текущую дату и время с секундами, кеш в админке выключен, но дата при перезарузке ноды не меняется, вы что-то путаете...
модуль:
test_filter.rar (0,69 Kb)
Нужно смотреть таблицу filter_formats - там есть поле cache
Потом как влияет case 'prepare':
ну короче протись отладчиком и разобраться
В принципе действительно мне ничего не мешает избавится от фильтров и просто обрабатывать текст типографом перед отправкой на сайт. Это собственно я и имел в виду, когда говорил о прикручивании к FCK.
допустим, есть у нас страница с кучей кода которая сохранена в формате 'php' который не типографится, через некоторое время мы (или не мы меняем эту страницу и ставим другой формат ввода и в результате типограф бесповоротно испортил страницу...
Я не говорю о таких страницах. Простая секретарша не будет делать таких страниц, ей кнопка будет - самое то. Сам я в таком случае найду выход.
О чем и речь... Типограф более востребован при наборе текста нежели для обработки страниц кем-то отрендеренных...
я не переживу этой муки — объяснять секретарше для чего эта кнопка, типографика и т.д...
да и забудет она о ней ровно через 5 мин.
За ней 3-е "с топорами стоят" напомнят.
Просто на Агаве тариф Profy. При посещаемости сайта 200 челов в день днем врубались дикие тормоза. причем периодические. Пока не отрубил типограф. 2 дня никаких претензий клиент не высказывает.
сделал модуль - http://drupal.ru/node/20373
HIgor1968
Вообще верный подход. Ещё как альтернативу можно Devangari попользовать. Это реализация на JavaScript.
Спасибо за модуль. Аналогично используемому на пятерке Typografica (http://drupal.ru/node/1614), пришлось поправить правила обработки тире.
было:
// + Нельзя разрывать строку перед тире, например: Знание — сила, Курить — здоровью вредить.
'/(\s+)(--?|—|—)(?=\s)/' => $sym['nbsp'].$sym['mdash'],
'/(^)(--?|—|—)(?=\s)/' => $sym['mdash'],
В этом случае дефис в начале первой строки остается дефисом. А если перед дефисом стоит перевод строки, перед тире появляется еще и неразрывный пробел. В итоге типографика диалогов кривая.
исправил на:
// + Нельзя разрывать строку перед тире, например: Знание — сила, Курить — здоровью вредить.
'/( )(--?|—|—)(?=\s)/' => $sym['nbsp'].$sym['mdash'],
'/(--?|—|—)(?=\s)/' => $sym['mdash'],
'/(^)(--?|—|—)(?=\s)/' => $sym['mdash'],