[BETA] Управление шрифтом контента через hook system

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

[BETA] Управление шрифтом контента через hook system

Сообщение c61 »

В 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:
Скачать:
content_fontsize_hook_v_1_0_0.zip
Скачать c ЯД: content_fontsize_hook_v_1_0_0.zip

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

v.1.0.2: добавлена возможность самостоятельной вставки блока кнопочек шаблон и отключения их в сообщениях
Скачать:
content_fontsize_hook_v_1_0_2.zip
Скачать 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"); });
}
или скачать прилагаемый архив
Скачать:
content_fontsize_hook_v_1_0_3.zip
Скачать c ЯД: content_fontsize_hook_v_1_0_3.zip

v.1.0.4: исправлена ошибка взаимодействия с модом cBB Blog 1.0.1, см. это сообщение
Скачать:
content_fontsize_hook_v_1_0_4.zip
Скачать c ЯД: content_fontsize_hook_v_1_0_4.zip

Скриншоты (стили на основе subsilver2 и prosilver, блок управления шрифтами обведен красным эллипсом):
s1.png
s2.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось c61 01.09.2013 15:07, всего редактировалось 4 раза.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

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

Сообщение Пчелкин »

Восхитительно!
Скажите пожалуйста, а есть ли возможность блок кнопок подвигать вверх-вниз, влево-вправо, а то попали прям на картинки вложений в верхний правый угол и на некоторых просто не видны если картинка в топике первая..? Блок можно задвинуть чуть выше, до уровня строки с названиями топиков?
snap1302.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Пчелкин писал(а):есть ли возможность блок кнопок подвигать вверх-вниз, влево-вправо
Да. В файле hook_content_fontsize.php ищите строку

Код: Выделить всё

			'<div width="100%" align="right" style="display:block-inline; font-size:1px; margin-left:4px; margin-top:2px; margin-bottom:4px;">'
и высталяете положение блока кнопочек относительно родительского элемента (relative), например так:

Код: Выделить всё

			'<div width="100%" align="right" style="display:block-inline; font-size:1px; margin-left:4px; margin-top:2px; margin-bottom:4px; position:relative; top:-10px;">'
где значение top задает смещение от верха родительского элемента. Отрицательные значения - вверх, положительные - вниз. См. http://htmlbook.ru/css/position, там расписано, что можно задать для relative.

Видел: прикрутили на фотовидеофоруме)
Последний раз редактировалось c61 12.04.2013 16:27, всего редактировалось 2 раза.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

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

Сообщение Пчелкин »

c61 писал(а):Видел: прикрутили на фотовидеофоруме)
Не...уже на все распихал...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Пчелкин, совсем забыл, в дополнение к relative еще z-index нужен, см. здесь http://htmlbook.ru/css/z-index
Иначе кнопочки могут быть закрыты родительскими элементами
Аватара пользователя
Romnik
phpBB 2.0.3
Сообщения: 387
Стаж: 15 лет 7 месяцев
Откуда: Москва/Выдропужск
Благодарил (а): 44 раза
Поблагодарили: 76 раз

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

Сообщение Romnik »

Спасибо за ценный продукт.
Я тоже прикрутил данный hook на 4 форума.
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Выпущена версия 1.0.1. Отличия - см. первый пост. Добавлена возможность сохранения настроек и "гашения" блока кнопочек управления размером шрифта.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

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

Сообщение Пчелкин »

Хм...на ХР В хроме стрелочки в подсказке вылазят квадратиками... Со старым файлом - тоже... на 7 - стрелочки
Замена на &#8595; и &#8593; тож не помогает...ЧЯДНТ?

Да!!! Выставленный размер шрифта сохраняется при гулянии по всему форуму... Это здорово!
Пысы...мож тогда ее рядом с принтером? Раз она сейчас глобальная...

ПыСы...гашения так и не дождался...

Да фиг с ними - со стрелочками..
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Пчелкин, спасибо за сообщение об исследованиях ! Ща с хромом буду разбираться... И посмотрю, как добавить "глобальное" изменение шрифтов - в верхнее меню.

Добавлено спустя 27 минут 17 секунд:
Проверил на хроме (версия 26.0.1410.64 m, то есть свежак):
- Со стрелочками все отлично. Может, была устаревшая версия ?
- Со скрытием блока кнопочек тоже нормально... Скрытие происходит когда курсор мыши покидает область сообщения, плавного гашения не делал, кнопочки просто "исчезают". И, как упомянул в комментариях, если при загрузке страницы курсор мыши находится в области сообщения, кнопочки не показываются до тех пор, пока мышку не убрать куда-то из области сообщения и не вернуть обратно.

Добавлено спустя 1 час 39 минут 48 секунд:
Пчелкин писал(а):Пысы...мож тогда ее рядом с принтером? Раз она сейчас глобальная...
Для этого все-таки придется редактировать шаблон) Такая возможность добавлена в v.1.0.2.
er107
phpBB 2.0.19
Сообщения: 1204
Стаж: 15 лет 6 месяцев
Благодарил (а): 331 раз
Поблагодарили: 93 раза

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

Сообщение er107 »

За мод спасибо!
Проверил у себя на Вин 7-32 опера, хром и IE гашения нет, в остальном отлично.
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

er107 писал(а):опера, хром и IE гашения нет
Посмотрел у Вас на конференции: код скрытия/показа блока управления шрифтами на страницах просмотра тем отсутствует, то есть 'hideshow' => false,. Пробовали ставить true ?
Аватара пользователя
Romnik
phpBB 2.0.3
Сообщения: 387
Стаж: 15 лет 7 месяцев
Откуда: Москва/Выдропужск
Благодарил (а): 44 раза
Поблагодарили: 76 раз

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

Сообщение Romnik »

В редакторе "Advanced BBCode Box 3" - некоторые bbcode перекрывают кнопочки.
Например - http://www.electric-house.ru/forum/view ... 538#p36538
Двигать не получается ... кругом всё корёжится.
В первой версии без проблем.
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Romnik, можно скриншотик и в каком браузере ? По ссылке посмотрел оперой и хромом - у меня не перекрывают...
Аватара пользователя
Romnik
phpBB 2.0.3
Сообщения: 387
Стаж: 15 лет 7 месяцев
Откуда: Москва/Выдропужск
Благодарил (а): 44 раза
Поблагодарили: 76 раз

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

Сообщение Romnik »

firefox.png
Mizilla Firefox ESR
Opera и Chrome тоже самое.


Поднять бы ...
При разных манипуляциях опускается текст в окне, а само белое окно на месте.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Romnik писал(а):Поднять бы
Поднять вверх вряд ли выйдет (во всяком случае у меня не получилось), а вот с z-index можно поиграть, тогда кнопочки не должны перекрываться. Попробуйте в строке 'imgaddstyle'=> 'padding-top: 2px; padding-bottom:4px;',добавить перед закрывающей кавычкой z-index:32000;. 32000 - потому, что в abbc3 используется z-index до 20000, какой реально у обсуждаемого элемента - не выяснял, но 32000 гарантированно больше. Наверно еще надо добавить position:relative... Здесь нужны знатоки css)

Вернуться в «Бета-версии модов для phpBB 3.0.x»