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

Изображение


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

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

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

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

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

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

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

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

romaamor 30 авг 2020, 19:58 Сообщение

Установил. Всё отображается как надо. НО, при нажатии на последнее сообщение, выдаёт ошибку 404. И не везде кнопка перейти к последнему сообщению присутствует. Посмотреть можно здесь https://satelitray.ru/
  • 0

romaamor 30 авг 2020, 20:25 Сообщение

С ошибкой 404 разобрался. Конфликт с одним SEO расширением. А вот стрелки для перехода к последнему сообщению не везде показываются.
Функция -
Число тем в списке:
Количество тем, отображаемых на главной странице.

тоже не работает.
  • 0

CabinetAdmin 30 авг 2020, 20:42 Сообщение

Стрелки не везде? Я их вообще не закладывал в модификацию :)

зы. На вкус конечно, но я бы добавил блокам цвета, к .ca_rt-item добавил бы background: var(--forumbg);
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 30 авг 2020, 21:33 Сообщение

Может лучше вообще добавить цвет ? К примеру background: #a5dcec
А можно сделать что бы прочитанные сообщения и не прочитанные отличались ? Цветом названия темы к примеру.
  • 0

CabinetAdmin 31 авг 2020, 16:48 Сообщение

romaamor писал(а): 30 авг 2020, 21:33К примеру
Можно хоть какой, лишь бы нравилось и читать информацию было удобно. Но я, имхо, сделал бы посветлее, например так: rgba(165, 220, 236, .4), хотя бы.
romaamor писал(а): 30 авг 2020, 21:33 Цветом названия темы к примеру.
Есть такой класс, как раз заложил, но не стал его использовать, подумал что кому-то может быть неудобно. Класс этот называется ca_rt-header-title-unread и использовать его можно так:

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

.ca_rt-header-title-unread a {
	color: #bc2a4d;
}
цвет я просто наугад ткнул, это красный, тут кому какой больше по душе.
  • 1
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 31 авг 2020, 17:11 Сообщение

CabinetAdmin писал(а): 31 авг 2020, 16:48 Но я, имхо, сделал бы посветлее, например так:
Или так - linear-gradient(#eaaf87,#7dc5da) :)
  • 0

CabinetAdmin 31 авг 2020, 18:55 Сообщение

:shock:
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 31 авг 2020, 22:45 Сообщение

А почему бы не добавить фиксированную высоту блока к .ca_rt-item { ? Например height: 250px;
Я добавил, по высоте выровнялись, но выглядит не очень. Нижние блоки не правильно стоят. Вот если бы их было 9 штук и вряд... Но расширение не реагирует на изменения в админке.

Изображение
  • 0

romaamor 31 авг 2020, 22:54 Сообщение

Аааа, понял почему так смещается. Каждый может настроить количество отображаемых последних сообщений в личном кабинете. Можно как то сделать, что бы одним махом изменить у всех на 9 сообщений ?
  • 0

romaamor 31 авг 2020, 23:04 Сообщение

romaamor писал(а): 31 авг 2020, 22:54 Можно как то сделать, что бы одним махом изменить у всех на 9 сообщений ?
Сам спросил - сам отвечу.
Recent Topics - Список последних тем форума для phpBB 3.2 и 3.3 - Clip2net_200831230353.png
  • 0

romaamor 01 сен 2020, 13:27 Сообщение

И всё таки, как прикрутить стрелку - перейти к последнему сообщению в теме ? Можно и такую как и на этом форуме. А то люди не понимают что надо нажать на время.
  • 0

CabinetAdmin 01 сен 2020, 18:28 Сообщение

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

							<a href="{{ recent_topics.U_LAST_POST }}" title="{{ lang('GOTO_LAST_POST') }}">{{ recent_topics.LAST_POST_TIME }}</a>
							{% if recent_topics.S_UNREAD_TOPIC and not S_IS_BOT %}
								<a href="{{ recent_topics.U_NEWEST_POST }}" title="{{ lang('GOTO_LAST_POST') }}">
									<i class="icon fa-external-link-square fa-fw icon-red icon-md" aria-hidden="true"></i>
									<span class="sr-only">{{ lang('GOTO_LAST_POST') }}</span>
								</a>
							{% endif %}
поменять на:

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

							{{ recent_topics.LAST_POST_TIME }}
							{% if not S_IS_BOT %}
								<a href="{% if recent_topics.S_UNREAD_TOPIC %}{{ recent_topics.U_NEWEST_POST }}{% else %}{{ recent_topics.U_LAST_POST }}{% endif %}" title="{{ lang('GOTO_LAST_POST') }}">
									<i class="icon fa-external-link-square fa-fw {% if recent_topics.S_UNREAD_TOPIC %}icon-red{% else %}icon-lightgray{% endif %} icon-md" aria-hidden="true"></i>
									<span class="sr-only">{{ lang('GOTO_LAST_POST') }}</span>
								</a>
							{% endif %}
romaamor писал(а): 31 авг 2020, 22:45 А почему бы не добавить фиксированную высоту блока
Смысл модификации не создать плиточную структуру, грубо говоря как на ютубе, а в том чтобы блоки имели разную высоту и располагались в колонках независимо друг от друга. Если пытаться добиться именно одинаковой высоты, блок к блоку, то это надо использовать другой метод.
  • 1
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 01 сен 2020, 19:47 Сообщение

Получилось. Спасибо. :Yahoo!:
  • 0

romaamor 02 сен 2020, 08:44 Сообщение

romaamor писал(а): 01 сен 2020, 19:47 Получилось. Спасибо.
Поспешил радоваться. Заметил, что при нажатии на стрелку последнее сообщение в теме, перебрасывает на сообщения примерно на середине темы. Тобиш, если в теме 50 страниц по 10 сообщений на странице, то перекидывает не в конец, а на страницу 25. Как исправить ?
  • 0

Похожие темы