Посмотрел много материалов по теме типографики на этом сайте и понял, что не все в этом деле хорошо (правда все материалы 1,5 и более летней давности - может что с той поры изменилось?)
В принципе правильные кавычки и длинное тире - это замечательно (если хорошо работает), но меня больше интересует, то, чего не видел ни на одном русскоязычном сайте, а именно грамотный перенос слов по слогам, если даже не на этапе вывода в столбец произвольной ширины, то и на этапе ввода текста в столбец, ширина которого в ЕМах задана фиксированно в некоторых случаях было бы очень полезно (типа колокольчика на печатной машинке).
Если ничего подобного до сих пор не реализовано, то не видел ли кто в инете русского словаря с делением слов по слогам?
Комментарии
Вот чего нашел. http://quittance.ru/blog/index.php?category=6
Интересно, а этот алгоритм к Друпалу никто еще не пытался подключить?
Вроде никто не пытался. Но сделать это не сложно -- почитайте о фильтрах друпала. Даже если вы не знакомы с архитектурой друпала написание модуля займёт у Вас не более одного дня (знание PHP таки нужно).
Спасибо за идею. Вроде с механизмом фильтров разобрался - ничего сложного в нем нет. Действительно подобное написать очень просто, однако, если я все правильно понял, то фильтр работает с текстом перед его помещением в базу данных, мне же кажется более логичным в данном случае обработку проводить после извлечения текста из базы данных,перед показом пользователю. А чтобы в базе он лежал как есть. Как это сделать прописав в соответствующие .tpl.php темы тоже понятно. Хочется услышать в чем плюсы и минусы подобного варианта, по сравнению с созданием фильтра?
Нет, данные сохраняются в БД в том виде, в котором их ввёл пользователь. Текст, обработанный фильтрами попадает в кэш, откуда потом и отдаётся.
Спасибо! с этим разобрался. Сделал фильтр - не заработало.
Решил проверить как вообще работает функция, в папке темы сосздал папку 'perenos' и скопировал в нее файлы дистрибутива функции.
В папке темы создал файл test.php. Вставил в него 3 строчки
<?php require_once 'perenos/hypher.php';
$hy_ru = new phpHypher('perenos/hyph_ru_RU.conf');
print $hy_ru->hyphenate('В этой строке должны быть расставлены знаки переноса по правилам русского языка.', 'UTF-8') ;
?>
Все работает нормально, и при запуске этого файла в строке расставляются переносы, следвательно функция работает.
Пытаюсь вставить эти же три строчки в page.tpl.php данной темы непосредственно перед выводом контента,
строчка на страницу выводится, но знаков переноса в ней уже нет. Похоже то же происходит и в сделанном мной фильтре. Но вот в чем моя ошибка моих знаний Друпала и PHP видимо недостаточно.
Разобрался, точнее "методом тыка" добился результата.
В page.tpl.php перед путями необходимо ставить обратный слэш, а в теле модуля у меня вообще получилось только написав полный путь 'sits/all/modules/...../perenos/hyph_ru_RU.conf'.
Следовательно возник вопрос, а как в теле модуля узнать в какой директории он установлен?
И еще вопрос
Функция позволяет настраивать символ мягкого перевода и вместо стандартного "­" ставить другой.
Я плохо представляю зачем это может понадобиться. Имеет ли смысл давать возможность это настраивать в настройках фильтра? Кто нибудь может показать пример зачем это может быть нужно?
Не понимаю, как связан фильтр с темизацией?
Никак не связан. Просто функцию можно подключить в разных местах. Сперва подключил в новом фильтре - не заработала. Начал разбираться, создал просто Php файл - заработала. Воткнул в тему, опять не работает, добавил в пути слэш - заработала.
Добавил слэш в фильтре - все равно не работает. прописал полный путь 'sites/all/.....' - заработало.
Удалил все лишнее из темы и сейчас модуль фильтра работает.
Осталось два вопроса, которые на работоспособность его лично у меня не влияют:
1. почему нужно прописывать полный путь?
2. как его (путь) узнать? Ведь модуль может быть установлен по разным путям...
Ну и совсем не важный вопрос я задал в предыдущем комменте.
Не в курсе.
Вот в теме её точно не можно подключать. Это надо делать модулем и подключать в модуле, а не теме.
1. Потому что модули могут опрашиваться из разных мест.
2. [ru-api=drupal_get_path]drupal_get_path[/ru-api]
Спасибо! Все работает!
На днях выложу готовый фильтр (как доделаю страницу настроек). Вдруг кому-нибудь пригодится.
Еще возник вопрос, а как поисковики относятся к наличию ­ внутри слов? Умеют они их игнорировать? не повлияет подобное форматирование текста на индексацию?