phpBB: Управление шрифтом контента через hook system

Клиентское и серверное программное обеспечение

phpBB: Управление шрифтом контента через hook system

Сообщение Serg » Чт апр 11, 2013 11:34

Изменить размер шрифта ↓ВернутьИзменить размер шрифта ↑В phpBB изменения размера шрифтов реализованы неудачно, и только для стиля prosilver. Причем в версии 3.1 разработчики хотят отказаться от возможности изменения шрифтов использовавшимся ранее способом.

Этот мод предназначен для изменения свойств классов блоков "content" (для стилей, основанных на prosilver) и "postbody" (для стилей, основанных на subsilver2). То есть для любых корректно созданных стилей, в которых используются вышеуказанные классы блоков контента.

Изменяется только шрифт блоков контента сообщений тем, всё "окружение" (названия тем, сообщений и др.), а также цитаты и др. вложенные в блоки конструкции с явным указание размера шрифта остаются неизменными.

В каждое сообщение добвляется справа вверху блок управления шрифтом. Его можно увеличить, уменьшить, сбросить в исходное состояние. При этом изменяется шрифт во всех сообщениях для данного сеанса просмотра страницы (в версии 1.0.0 настройки не сохраняются, в следующих версиях эту возможность можно настроить).

При нажатии на элементы блока управления шрифтом после изменения шрифта происходит автоматический скроллинг содержимого в окне браузера. Если удаётся оставить курсор мыши в той же позиции (на элементе управления), это выполняется, но, к сожалению, в javascript нет возможности управления перемещением курсора мыши, а только управление скроллингом.

Для добавления необходимого кода в шаблоны используется hook system, поэтому нет никакой необходимости в их редактировании. Файлы css стилей также редактировать не требуется. Для мобильных стилей добавление кода отключено.

В старых браузерах (в том числе IE версии ниже 9) мод вероятно работать не будет.

Установка:
  1. При желании внести изменения в файл root.content_fontsize_hook/includes/hooks/hook_content_fontsize.php, изменив минимальный и максимальный допустимые шрифты, шаг изменения, текст подсказок и прочие параметры, см. ниже:
    Код: Выделить всё
             // Минимальный размер шрифта в пикселах
             'min_fontsize' => 12,
             // Максимальный размер шрифта в пикселах
             'max_fontsize' => 26,
             // Шаг изменения шрифта в пикселах
             'delta'        =>  1,
             // Подсказка к иконке управления уменьшением размера шрифта
             'decreasetext' => $user->lang['CHANGE_FONT_SIZE'] . ' ↓',
             // Подсказка к иконке управления восстановлением размера шрифта
             'resettext'    => $user->lang['RESET'],
             // Подсказка к иконке управления увеличением размера шрифта
             'increasetext' => $user->lang['CHANGE_FONT_SIZE'] . ' ↑',
             // Использовать cookies для сохранения установленного размер шрифта (true - да, false - нет)
             // Примечание: cookie сохраняется всегда и содержит относительное изменение размера шрифта,
             // но если задать false, всегда сохраняется нулевое значение
             'cookies'      => true,
             // Префикс имени cookies конференции
             'cookiesname'  => $config['cookie_name'] . '_cfs_delta',
             // Добавить только S_CFS_BUTTONS для того, чтобы пользователь сам определил
             // "глобальное" расположение блока управления изменением размера шрифта (true - да, false - нет)
             // Примечание: для изображений кнопок всегда используется атрибут align="right"
             'useronly'     => false,
             // Использовать скрытие блока управления изменением размера шрифта (true - да, false - нет)
             // в области сообщений, когда курсор мыши вне области сообщений
             // Если включено, это вызывает неудобства при использовании планшетных компьютеров !
             // Примечание: если при загрузке страницы курсор мыши находится в области сообщений,
             // блок управления скрыт; для его появления следует вывести мышь за пределы
             // сообщения и затем вернуть обратно
             'hideshow'     => false,
             // Дополнительные поля стиля изображений кнопок блока управления изменением размера шрифта
             'imgaddstyle'=> 'padding-top: 2px; padding-bottom:4px;',
    Примечания: a) относительно версии 1.0.0 внесены изменения в стиль блока и кнопок управления, после апгрейда следует проверить результат,
    b) если пользователь очень хочет установить блок кнопок управления размерами шрифта вверху страницы, ему придется редактировать шаблоны и вручную добавлять подстановку {S_CFS_BUTTONS} в желаемое место, кроме того, задав для 'useronly' значение true, можно отключить присутствие блока кнопок в сообщениях.
  2. Копировать файл root.content_fontsize_hook/includes/hooks/hook_content_fontsize.php в папку includes/hooks/
  3. Копировать папку root.content_fontsize_hook/images/fontsize/ в папку images/fontsize/
  4. Очистить кэш.
Удаление:
  1. Удалить файл includes/hooks/hook_content_fontsize.php
  2. Удалить папку images/fontsize/
  3. Очистить кэш.

v.1.0.0:
Скачать c ЯД: content_fontsize_hook_v_1_0_0.zip

v.1.0.1: добавлена возможность сохранения изменений шрифтов, скрытия блока кнопочек
Скачать c ЯД: content_fontsize_hook_v_1_0_1.zip

v.1.0.2: добавлена возможность самостоятельной вставки блока кнопочек шаблон и отключения их в сообщениях
Скачать c ЯД: content_fontsize_hook_v_1_0_2.zip

v.1.0.3: исправлена ошибка при использовании Prime Trash Bin, можно внести исправления в файл hook_content_fontsize.php предыдущей версии, для чего найти:
Код: Выделить всё
var CFSouter' . $id . ' = document.getElementById("CFSdiv' . $id . '");
CFSouter' . $id . '.onmouseout = CFShandleMouseLeave(function(e) { CFSvisibility(' . $id . ', "hidden"); });
CFSouter' . $id . '.onmouseover = CFShandleMouseEnter(function(e) { CFSvisibility(' . $id . ', "visible"); });
заменить на
Код: Выделить всё
var CFSouter' . $id . ' = document.getElementById("CFSdiv' . $id . '");
if(CFSouter' . $id . ') {
   CFSouter' . $id . '.onmouseout = CFShandleMouseLeave(function(e) { CFSvisibility(' . $id . ', "hidden"); });
   CFSouter' . $id . '.onmouseover = CFShandleMouseEnter(function(e) { CFSvisibility(' . $id . ', "visible"); });
}
или скачать прилагаемый архив
Скачать c ЯД: content_fontsize_hook_v_1_0_3.zip

v.1.0.4: исправлена ошибка взаимодействия с модом cBB Blog 1.0.1, см. сообщение на phpBBguru
Скачать c ЯД: content_fontsize_hook_v_1_0_4.zip
Аватара пользователя
Serg
Администратор
 
Сообщения: 88
Зарегистрирован: Ср янв 14, 2009 13:50
Имя: Сергей Юрьевич

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2