Типограф

Прислано: HIgor1968

ср, 27/08/2008 - 11:13

Типограф работающий как фильтр. Есль модуль для Друпала. Правда оригинал сразу не заработал пришлость дописать в info файле потдержку 6-й версии и класс назвать с маленькой буквы.
Страница оригинала здесь.
http://rmcreative.ru/blog/post/tipograf
Для ленивых модуль прикладываю.

Прикрепленный файлРазмер
typographus.zip11.48 кб

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано andypost@drupal.org в ср, 27/08/2008 - 11:39.

Спасибо, полезная штука


Опубликовано HIgor1968 в ср, 27/08/2008 - 11:48.

Носите не стаптывайте.


Опубликовано EllECTRONC в ср, 27/08/2008 - 16:43.

Это новый фильтр или что?


Опубликовано Ветер в ср, 27/08/2008 - 17:09.

Штука несомненно полезная. Но на мой взгляд сыровата.


Опубликовано Химический Али в чт, 28/08/2008 - 04:35.

Пользуюсь почти год :)


Опубликовано SamDark в пн, 08/09/2008 - 20:28.

Не против, если включу обновлённый модуль в архив типографа?


Опубликовано Химический Али в вт, 09/09/2008 - 07:57.

Я не против, выкладывайте


Опубликовано HIgor1968 в ср, 10/09/2008 - 08:53.

И где де обновление?;)


Опубликовано Химический Али в ср, 10/09/2008 - 10:00.

Наверное, на типограф.ру =)


Опубликовано SamDark в чт, 02/10/2008 - 13:01.

HIgor1968
http://rmcreative.ru/blog/post/tipograf


Опубликовано HIgor1968 в вс, 12/10/2008 - 12:43.

АААА, Семен-Семеныч:)


Опубликовано bodro в вс, 12/10/2008 - 12:51.

обзор типографов:
http://www.typograf.ru/flog/

вывод:
http://www.typograf.ru/ - лучший

ИМХО:
если прикручивать, то лучший


Опубликовано HIgor1968 в вс, 12/10/2008 - 17:12.

Все бы хороше - но это смущает -

Класс очень ресурсоёмкий, поэтому бездумное его использование может привести к серьёзным торможениям при загрузке страницы.


Опубликовано bodro в вс, 12/10/2008 - 18:03.

чем смущает... фильтр включаются только один раз при создании или изменении ноды


Опубликовано HIgor1968 в вс, 12/10/2008 - 18:39.

В принципе можно.
Можно и кнопочкой при редактировании ноды.
Может так и сделаю. То текущий типограф у меня периодически косячит.


Опубликовано bodro в вс, 12/10/2008 - 18:42.

кнопочкой при редактировании ноды...
тогда совместимость с висивиг редакторами может пострадать


Опубликовано HIgor1968 в вс, 12/10/2008 - 18:49.

Как прикручу - отпишусь.
Но скорее всего пока под FCK.


Опубликовано andypost@drupal.org в вс, 12/10/2008 - 19:11.

Господа, не стройте иллюзий - фильтры накладываются в node_prepare перед выводом, при чем в зависимости от роли пользователя для которого этот вывод делается, смотрите внимательно node_view


Опубликовано bodro в вс, 12/10/2008 - 19:28.

"andypost@drupal.org" написал(а):

фильтры накладываются в node_prepare перед выводом, при чем в зависимости от роли пользователя для которого этот вывод делается

...хостера не жалко?)
hook_filter юзать нужно


Опубликовано andypost@drupal.org в вс, 12/10/2008 - 19:43.

bodro, о чем вы? почитайте документацию и посмотрите код
hook_filter определяет фильтр, в нем выполняется обработка текста, кстати есть кеш фильтров - самое эффективное средство борьбы с нагрузкой! А фильтры почти всегда отрабатывают, ибо почти всегда вызывается node_view


Опубликовано bodro в вс, 12/10/2008 - 20:13.

"andypost@drupal.org" написал(а):

кстати есть кеш фильтров - самое эффективное средство борьбы с нагрузкой!

тут подробней - http://data1.floomby.ru/getfile.aspx?guid=968cf3e6-5d11-4759-b5ec-58b91c...

"andypost@drupal.org" написал(а):

hook_filter определяет фильтр

дык это и нужно :)
чем node_view, node_prepare могут тут помочь я так и не понял


Опубликовано andypost@drupal.org в вс, 12/10/2008 - 20:25.

"bodro" написал(а):

чем node_view, node_prepare могут тут помочь я так и не понял

внимательнее :)

"bodro" написал(а):

чем смущает... фильтр включаются только один раз при создании или изменении ноды

Отсюда весь сыр бор - фильтр в данном случае не нужен, текст стоит поправить на этапе подготовки, собственно как и проверка орфографии.


Опубликовано bodro в вс, 12/10/2008 - 20:51.

"andypost@drupal.org" написал(а):

фильтр в данном случае не нужен, текст стоит поправить на этапе подготовки, собственно как и проверка орфографии.

например мне именно такой фильтр и нужен
если нужно на этапе подготовки, то JS решение будет лучшим вариантом


Опубликовано andypost@drupal.org в пн, 13/10/2008 - 12:49.

Поэтому я и написал - незачем хранить текст не обработанный типографом и каждый раз при выводе прогонять фильтром... пожалейте хостера :)


Опубликовано bodro в пн, 13/10/2008 - 13:44.

мдя...

итак, давайте разберемся как же работают фильтры...

При создании ноды:
1 – берем исходный текст, вычисляем для него MD5
2 – прогоняем через фильтры
3 – записываем в кеш MD5 и отфильтрованный текст

При вызове ноды:
1 – берем текст вычисляем для него MD5
2 – смотрим в кеш, MD5 совпадает..? тогда выводим текст из кеша, не запуская фильтры (исключение составляют фильтры которые юзают $op == 'no cache')


Опубликовано andypost@drupal.org в пн, 13/10/2008 - 13:54.

Небольшая поправка - при создании и правке ничего не вычисляется и не сохраняется кроме тела ноды и его формата.
Обычно сразу после правки нода выводится на экран и вот тут отрабатывают фильтры, причем очень важно, разрешено ли кеширование для фильтра, обычно оно выключено.

После редактирования списка фильтров или ноды кеш фильтров сбрасывается (по статистике drupal.ru кеш фильтра дает примерно 60-70% попаданий в кеш), но это после того, как руками почти всем Фильтрам разрешено кеширование!

Кеш хранится в виде (check_markup) <?php $cache_id $format .':'md5($text); ?>

При просмотре ноды он и проверяется, и это только в случае, если нода обрабатывается модулем node, а если нода делается своим модулем, то тут как указал разработчик...


Опубликовано bodro в пн, 13/10/2008 - 14:36.

сделал модуль фильтра под 5ку, он добавляет в конец ноды текущую дату и время с секундами, кеш в админке выключен, но дата при перезарузке ноды не меняется, вы что-то путаете...

модуль:
test_filter.rar (0,69 Kb)


Опубликовано andypost@drupal.org в пн, 13/10/2008 - 16:22.

Нужно смотреть таблицу filter_formats - там есть поле cache
Потом как влияет case 'prepare':
ну короче протись отладчиком и разобраться :)


Опубликовано HIgor1968 в пн, 13/10/2008 - 17:35.

В принципе действительно мне ничего не мешает избавится от фильтров и просто обрабатывать текст типографом перед отправкой на сайт. Это собственно я и имел в виду, когда говорил о прикручивании к FCK.


Опубликовано bodro в пн, 13/10/2008 - 18:17.

допустим, есть у нас страница с кучей кода которая сохранена в формате 'php' который не типографится, через некоторое время мы (или не мы ;-) меняем эту страницу и ставим другой формат ввода и в результате типограф бесповоротно испортил страницу...


Опубликовано HIgor1968 в пн, 13/10/2008 - 18:34.

Я не говорю о таких страницах. Простая секретарша не будет делать таких страниц, ей кнопка будет - самое то. Сам я в таком случае найду выход.


Опубликовано andypost@drupal.org в пн, 13/10/2008 - 22:38.

"HIgor1968" написал(а):

Простая секретарша не будет делать таких страниц, ей кнопка будет - самое то. Сам я в таком случае найду выход.

О чем и речь... Типограф более востребован при наборе текста нежели для обработки страниц кем-то отрендеренных...


Опубликовано bodro в пн, 13/10/2008 - 23:21.

"HIgor1968" написал(а):

Простая секретарша не будет делать таких страниц, ей кнопка будет - самое то.

я не переживу этой муки — объяснять секретарше для чего эта кнопка, типографика и т.д...
да и забудет она о ней ровно через 5 мин. :)


Опубликовано HIgor1968 в вт, 14/10/2008 - 18:09.

За ней 3-е "с топорами стоят" :) напомнят.
Просто на Агаве тариф Profy. При посещаемости сайта 200 челов в день днем врубались дикие тормоза. причем периодические. Пока не отрубил типограф. 2 дня никаких претензий клиент не высказывает.


Опубликовано bodro в вт, 14/10/2008 - 20:14.

сделал модуль - http://drupal.ru/node/20373 :)


Опубликовано SamDark в сб, 18/10/2008 - 19:37.

HIgor1968
Вообще верный подход. Ещё как альтернативу можно Devangari попользовать. Это реализация на JavaScript.


Опубликовано T-34 в пн, 23/02/2009 - 15:09.

Спасибо за модуль. Аналогично используемому на пятерке Typografica (http://drupal.ru/node/1614), пришлось поправить правила обработки тире.

было:

			// Знак дефиса или два знака дефиса подряд — на знак длинного тире.
			// + Нельзя разрывать строку перед тире, например: Знание — сила, Курить — здоровью вредить.
			'/(\s+)(--?|—|&mdash;)(?=\s)/' => $sym['nbsp'].$sym['mdash'],
		    '/(^)(--?|—|&mdash;)(?=\s)/' => $sym['mdash'],

В этом случае дефис в начале первой строки остается дефисом. А если перед дефисом стоит перевод строки, перед тире появляется еще и неразрывный пробел. В итоге типографика диалогов кривая.

исправил на:

			// Знак дефиса или два знака дефиса подряд — на знак длинного тире.
			// + Нельзя разрывать строку перед тире, например: Знание — сила, Курить — здоровью вредить.
			'/( )(--?|—|&mdash;)(?=\s)/' => $sym['nbsp'].$sym['mdash'],
			'/(--?|—|&mdash;)(?=\s)/' => $sym['mdash'],
		    '/(^)(--?|—|&mdash;)(?=\s)/' => $sym['mdash'],


Новое на сайте

Ссылки партнёров