Расширение, позволяющее добавить на форум список последних тем.

Изображение


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

Выглядеть наша модификация будет так:
Recent Topics - Список последних тем форума для phpBB 3.2 и 3.3 - recent.png

Для модификации нам понадобятся сами расширения.
Расширение Recent Topics можно скачать на официальном сайте phpbb здесь.
А так же расширение Topic Preview - здесь.

Если у вас не было этих расширений - ставьте оба. Если уже стоят, то сразу переходим к модификациям.

Чтобы не утомлять своими правками, что править, что удалять, сразу добавлю правки.
Скачиваем:
recenttopics-columns.zip
3.63 КБ 1317 скачиваний
topicpreview_for_recenttopics-column.zip
2.55 КБ 1328 скачиваний
Разархивируем оба архива. В каждом архиве по цепочке папок, как в расширении по нужному пути, лежат нужные нам файлы. Если вы используете prosilver стилем по умолчанию, то просто копируете содержимое архива в папку ext, соглашаетесь на объединение и у вас в папке styles расширения добавляется ещё одна папка prosilver. Если вы используете другой стиль, то просто переименуйте папку на название вашего стиля.

Кому интересно как это работает.
Расширение предпросмотра тем выводит содержимое через определённое условие в шаблоне, мы подменяем это условие своим и выводим уже не через всплывающее окно, а напрямую на страницу.

Цветовое оформление поправить/изменить под используемый стиль можно в стилевом файле в модификации Recent Topics.

Если стиль использует всю ширину экрана, то трёх колонок может быть мало и потребуются дополнительные стили, а так же увеличение количества выводимых тем.
Комментарии: 55

CabinetAdmin 15 дек 2020, 16:07 Сообщение

Пробовал.
Я закинул его на тестовый форум, включил, захожу в форум со списком тем и начинается бесконечная загрузка, через минуту/две белый экран... Список форумов открывается без проблем. Дальше даже разбираться не стал.
  • 1
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 15 дек 2020, 16:29 Сообщение

Странно. У меня на тестовом форуме это расширение нормально работает.
  • 0

Leo Angel 19 апр 2024, 15:43 Сообщение

Приветствую!
Поставил у себя данную модификацию.
Всё работает как и хотелось, кроме одной детали - аватарки показываются только автора темы. Если в теме есть ответы от других, то всё равно видна только аватарка автора темы.
У меня нет регистрации, пользователь только один, все остальные - гости с правом писать. У гостя аватарка задана, аватар "no_avatar" тоже лежит в папке image. Но всё равно, не показывается аватарка автора последнего поста. Можно ли это изменить? Где-что исправить?
  • 0
Последний раз редактировалось Leo Angel 19 апр 2024, 23:18, всего редактировалось 1 раз.

CabinetAdmin 19 апр 2024, 17:58 Сообщение

Попробуйте с правками из последних версий, всё таки четыре года прошло, есть изменения:

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

<div class="topic_preview_content">
	{% if preview.TOPIC_PREVIEW_LAST_POST %}
		{%- if preview.TOPIC_PREVIEW_LAST_AVATAR != constant('\\vse\\topicpreview\\core\\display::NO_AVATAR') -%}
			<div class="rt_ilrb-avatar">{{ preview.TOPIC_PREVIEW_LAST_AVATAR }}</div>
		{%- else -%}
			<div class="rt_ilrb-avatar"><img class="avatar" src="{{ T_THEME_PATH }}/images/no_avatar.gif" alt="{{ lang('USER_AVATAR') }}" /></div>
		{%- endif -%}
		<div class="rt_ilrb-post">{{ preview.TOPIC_PREVIEW_LAST_POST }}</div>
	{% else %}
		{%- if preview.TOPIC_PREVIEW_FIRST_AVATAR != constant('\\vse\\topicpreview\\core\\display::NO_AVATAR') -%}
			<div class="rt_ilrb-avatar">{{ preview.TOPIC_PREVIEW_FIRST_AVATAR }}</div>
		{%- else -%}
			<div class="rt_ilrb-avatar"><img class="avatar" src="{{ T_THEME_PATH }}/images/no_avatar.gif" alt="{{ lang('USER_AVATAR') }}" /></div>
		{%- endif -%}
		<div class="rt_ilrb-post">{{ preview.TOPIC_PREVIEW_FIRST_POST }}</div>
	{% endif %}
</div>
на это надо поменять всё содержимое в файле topicpreview_recenttopics.html в расширении Topic Preview.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Leo Angel 19 апр 2024, 19:57 Сообщение

Нет, не работает! :sorry:
  • 0

Leo Angel 19 апр 2024, 22:59 Сообщение

Всё равно показывает только аватарку автора темы.
Промаргивает аватарка гостя (автора последнего сообщения), и после этого появляется аватарка автора темы.
Перепробовал разные условия, результата нет.
Не пойму куда копать дальше... :scratch:

Если можно, покажите файлы расширения на Вашем сайте. :oops:
  • 0

Leo Angel 20 апр 2024, 11:38 Сообщение

Подскажите, плиз, какими должны быть условия (файл topicpreview_recenttopics.html) при таких вводных:
  1. Первый пост всегда от Основателя (id=2), аватарка должна быть его как автора первого поста,
  2. Последний пост:
    • или от Основателя и аватарка должна быть его,
    • или от Гостя (id=1) и аватарка должна быть его (у гостей своя заранее определённая аватарка).
Заранее спасибо!
  • 0

Leo Angel 20 апр 2024, 17:36 Сообщение

Всё! Разобрался! В настройках расширения Topic Preview не стояла галочка в поле Дополнительно отображать «Последнее сообщение»:. Поставил галочку и всё заработало и стало отображаться как нужно!
Все просьбы снимаются! Спасибо за такую модификацию!
  • 1

Leo Angel 25 апр 2024, 16:36 Сообщение

Заметил, что после перегрузки страницы аватарки промаргивают. Сначала видна дефолтная аватарка (no_avatar.gif), а потом уже подхватывается нужная. Кстати, на вашем сайте тоже есть такой эффект.
Не подскажите, можно ли это промаргивание убрать? А-то как-то не очень смотрится...
  • 0

CabinetAdmin 25 апр 2024, 19:43 Сообщение

Да есть такое. Это так называемая ленивая загрузка так отрабатывает.
Попробуйте в файле vse/topicpreview/core/display.php найти:

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

$avatar = phpbb_get_user_avatar($map, 'USER_AVATAR', false, true);
и заменить true на false:

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

$avatar = phpbb_get_user_avatar($map, 'USER_AVATAR', false, false);
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Leo Angel 26 апр 2024, 09:46 Сообщение

CabinetAdmin, да, помогло! Спасибо!
  • 0

Похожие темы