/ / Простой форум средствами DLE
январь 19 2019

Простой форум средствами DLE


После перерыва в работе с DLE в несколько лет снова понадобилось развернуть информационный сайт про электромобили - и выбор движка был очевиден. И захотел я прикрутить к нему форум. Но вспоминая, сколько проблем сулит установка форума (помню и бесконечные кривые интеграции, которые надо было править с обновлением скриптов, и дырявые самописные форумы, после установки которых приходилось часами вычищать от вирусни сервер), подумал: а ведь можно запилить форум, используя стандартные возможности DLE. А их нехватку именно в контексте форума можно восполнить, дописав плагин. Решил так и сделать.

Для тех, кто не сильно в теме, опишу плюсы и минусы такого подхода по сравнению с устновкой полноценного движка форума.

Сначала минусы:
  • небольшая функциональность. Понятное дело, монстры типа vBulletin и IPB имеют куда больше функций;

Что-то больше одного пункта в голову не пришло).

А теперь плюсы:
  • не требуется написание интеграций и использованрие двух отдельных баз данных, дружить разные авторизации и т.д.;
  • исходя из предыдущего: не требуется переписывание этих интеграций после выхода и обновления DLE или движка форума;
  • все заботы о безопасности лежат на DLЕ и его разработчике;
  • быстродействием DLE не может похвастаться ни один форумный движок. А наш может :);
  • для настройки дизайна используются шаблоны TPL, ничего нового изучать не нужно (плагин добавляет некоторые новые теги);
  • кэшированием также занимается DLE;
  • нагрузка на сервер почти не увеличивается. Единственное - обновляется дата последнего комментария в новости - плюс один запрос при оставлении комментария;
  • за этот плагин не нужно платить. Вы покупаете лицензию DLE, а плагин бесплатный.
Скриншоты того, что у меня получилось в самой первой версии. Ссылка на демо внизу статьи. Сайту на момент создания этой публикации меньше двух месяцев, поэтому форум пока пустой.





Функционал плагина:
  • Сортировка новостей (тем форума) в категории (разделе форума) по последнему комментарию и дате создания темы;
  • возврат в раздел после создания темы;
  • отдельный шаблон для создания темы на форуме;
  • вывод аватарки автора темы;
  • добавление тегов [before][/before] и [after][/after] в шаблон короткой новости, отображающие html код перед списком новостей и после него. Удобно, когда надо отобразить новости (темы) в таблице. Будет работать на всём сайте!
  • тег - ссылка на сорздание темы из раздела;

Я планирую потихоньку дописывать функционал форума и актуализировать плагин под новые версии движка. Если какие-то вопросы - вэлкам в комментарии.

Версия DLE: 13.2.
Демо: Форум об электромобилях.
Скачать модуль: https://vk.cc/9fxaKD.

Комментарии

Zdraff

Zdraff

20 января 2019 11:08 Клиенты
1
Сразу сделал маленький фиксик. Архив обновил.
TCSE

TCSE

20 января 2019 12:00 Клиенты
2
Полезная штука!

Позволю себе пару советов:

Модуль для DLE 13.1 лучше собирать в виде архива
скрипшот https://yadi.sk/i/rW0tTs_ttbN2ug
тогда можно загружать архив через стандартный диалог
Утилиты - Управления плагинами - Загрузить плагин

при этом файлы форума автоматически попадут в папку активного шаблона по умолчанию.
Zdraff

Zdraff

20 января 2019 12:07 Клиенты
0
TCSE,
Спасибо! Учту в новых версиях.
kamensk

kamensk

20 января 2019 19:04 Клиенты
0
TCSE,
Не понял. Так а сейчас, что не получится загрузить плагин?
fortuna

fortuna

20 января 2019 21:04 Клиенты
0
Привет! А что необходимо и где заменить, что бы не forum было, а допустим vopros-otvet?
Я создал папку в шаблоне именно vopros-otvet и в созданных категориях указал
modules/vopros-otvet/main_shortstory
modules/vopros-otvet/topic_shortstory
modules/vopros-otvet/topic_fullstory
fortuna

fortuna

20 января 2019 21:35 Клиенты
0
И здесь точно все правильно?
https://prnt.sc/m9s393
Zdraff

Zdraff

21 января 2019 04:01 Клиенты
0
kamensk,
Получится.

Цитата: fortuna
необходимо и где заменить, что бы не forum было, а допустим vopros-otvet

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

А что смущает?
alexpsp

alexpsp

21 января 2019 11:32 Клиенты
1
Можно ещё либо в раках версий, либо отдельно интегрировать всё с DLE UserBox от LazyDev
Zdraff

Zdraff

22 января 2019 06:24 Клиенты
1
Внимание! Внес некоторые изменения, у некоторых были проблемы с добавлением тем. В архив добавил два ридми: для обновления и установки. Актуальная версия: 0.2: https://vk.cc/8WOKcW
Lexxs

Lexxs

22 января 2019 10:54 Клиенты
0
Цитата: Zdraff
Актуальная версия: 0.2: https://vk.cc/8WOKcW

404
Not Found

The resource requested could not be found on this server!
так же как и первая ссылка.

Очень полезное дополнение, давно такое искал, но его небыло.
Благодарность автору !
Zdraff

Zdraff

22 января 2019 11:10 Клиенты
0
Спасибо, ссылку поправил. И спасибо админам, что обновили ссылку в новости.
alexpsp

alexpsp

22 января 2019 19:21 Клиенты
2
Идёт конфликт с хаком https://pafnuty.name/statyi/145-more-addnews.html =(

ранее добавленные шаблоны слетают и ошибка из-за:
Далее находим:
$tpl->load_template( 'addnews.tpl' );

Заменяем на:
$tpl->load_template( $addnewsTemplate.'.tpl' );


Вот она, проблема плагинов дле, если несколько похожих плагинов, то всё слетает.
celsoft

celsoft

22 января 2019 19:32 Администраторы
3
Цитата: alexpsp
Вот она, проблема плагинов дле, если несколько похожих плагинов, то всё слетает.

Это не проблема системы плагинов как таковой, просто для одного и того же места и функциональности стандартного DLE, делается взаимоисключающая функциональность. Такие конфликты при любой системе плагинов. Тут нужно просто плагины писать с учетом функциональности обеих плагинов.
Mek

Mek

24 января 2019 19:57 Клиенты
1
Цитата: celsoft
Тут нужно просто плагины писать с учетом функциональности обеих плагинов.

То есть, разработчик, перед написанием плагина, должен изучить все остальные плагины от других разработчиков, на предмет наличия конфликтов кода?
celsoft

celsoft

24 января 2019 23:44 Администраторы
1
Цитата: Mek
То есть, разработчик, перед написанием плагина, должен изучить все остальные плагины от других разработчиков, на предмет наличия конфликтов кода?

Разработчик не должен. Но если желает, то может. Я лишь сказал, что если один плагин говорит: "загрузи этот шаблон", а другой в этом же месте и в этой же ситации говорит: "загрузи другой шаблон", то конфликт неизбежен при любой системе плагинов. А вы написали что это недостаток именно системы плагинов, что не соответствует действительности.
Lexxs

Lexxs

25 января 2019 08:11 Клиенты
0
Именно поэтому, каждый плагин должен работать по своему уникальному префиксу, и различаться системой плагинов, чтобы не вызывать конфликтов.
Это мог бы быть как уникальный префикс, как система распознавания, или чтоб не воротить большой огород, разработчикам давать уникальные названия файлам для использования, чтоб не пересекаться.
Мда. Надеюсь смысл мною сказанного более-менее понятен.
Видимо это не моё, чтоб доступно и понятно описать свою мысль )))
celsoft

celsoft

25 января 2019 12:13 Администраторы
4
Цитата: Lexxs
Мда. Надеюсь смысл мною сказанного более-менее понятен.
Видимо это не моё, чтоб доступно и понятно описать свою мысль )))

Ваша проблема не в этом. Понять вас легко, а проблема заключается в том вы пишите и рассуждаете о решениях, не понимая самой сути вопроса. Причем здесь система префиксов и что должна различать система плагинов, если суть вопроса в конфликте одновременно выполняемых действий. Это конфликт действий, а не конфликт плагинов. Два плагина хотят чтобы одновременно выполнились противоположные действия, в одном и том же месте в одно и то же время. Это тоже самое что я вам скажу одновременно прыгнуть и лечь. Сделайте эти два действия в один и тот же промежуток времени, а не последовательно, можно через систему префиксов smiley
Kino-man

Kino-man

31 января 2019 10:05 Клиенты
0
alexpsp,
Аналогичные конфликты плагинов наблюдаются и в Ксенфоро, т.ч. DLE тут не при чём.

П.С. В подвале пора поменять год на 2019 wink
YuriBtr

YuriBtr

15 февраля 2019 20:31 Клиенты
1
Цитата: celsoft
Это конфликт действий, а не конфликт плагинов. Два плагина хотят чтобы одновременно выполнились противоположные действия, в одном и том же месте в одно и то же время.

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

IgorA100

28 февраля 2019 21:50 Клиенты
0
Цитата: YuriBtr
Вот именно поэтому я и предложил в соответствующей ветке не именовать Плагином то, что по сути является Хаком.

Тут двояко....
На данный момент все гораздо лучше, чем когда не было системы плагинов... Текущая система плагинов позволяет очень, очень гибко настроить систему. Как побочный эффект - имеет место быть несовместимость плагинов. Причем чем больше плагинов написано/установлено, тем больше процент несовместимости.
При системе плагинов с использованием классов, событий не получится так гибко настроить все в системе, меньше гибкости, но зато совместимость будет намного выше. К тому-же для этого нужно переписать наверное 90% кода, и DLE станет медленней.
Все ИМХО.
celsoft

celsoft

1 марта 2019 08:13 Администраторы
1
Цитата: IgorA100
Причем чем больше плагинов написано/установлено, тем больше процент несовместимости.

Повторю еще раз. Не путайте конфликт действий с конфликтом плагинов. В данном случае который приведен здесь, происходит конфликт действий, который произойдет при любой!!!! системе плагинов, в любой системе а не только в DLE. Какая бы система плагинов не было, в случае конфликта действий возникает проблема, потому как я уже писал выше, что нельзя одновременно "лечь и прыгнуть".
NlCKRUS

NlCKRUS

7 марта 2019 10:30 Посетители
0
после установки плагина ошибка:
Имя файла: engine/modules/show.short.php
Ошибка: Не удалось найти код:
if( !$news_found AND !$allow_userinfo AND $do != 'newposts' AND $do != 'favorites') {

моя версия DLE 13.1
NlCKRUS

NlCKRUS

7 марта 2019 11:15 Посетители
0
Цитата: NlCKRUS
favorites

сравнил, оказывается мой show.short.php отличается от того, что идет в дистрибутиве 13.1. почему так, не пойму
NlCKRUS

NlCKRUS

7 марта 2019 11:43 Посетители
0
а где addtopic.html взять?
NlCKRUS

NlCKRUS

9 марта 2019 11:25 Посетители
0
и сортировка по посл.комментариям работает не верно.
был бы признателен за шаблон topic_shortstory.tpl, который используется у автора на форуме
https://efut.ru/forum/techno/
Zdraff

Zdraff

13 марта 2019 11:41 Клиенты
0
Цитата: NlCKRUS
где addtopic.html взять?

Его нигде не нужно брать. Вы в .htaccess добавляли строку из мануала, что в архиве?
Цитата: NlCKRUS
и сортировка по посл.комментариям работает не верно.

что именно неверно? В сортировке участвет дата последнего комментария и дата создания темы. То есть новая тема без комментариев должна ранжироваться выше.
Скоро сделаю версию 0.3 после обновления до 13.2. Там будут шаблоны.
NlCKRUS

NlCKRUS

13 марта 2019 12:11 Посетители
0
Его нигде не нужно брать. Вы в .htaccess добавляли строку из мануала, что в архиве?

добавлял, ничего не менялось, попробую выше в файл вставить стрчоку

что именно неверно? В сортировке участвет дата последнего комментария и дата создания темы. То есть новая тема без комментариев должна ранжироваться выше.

У меня первая тема была правильно отсортирована, а затем следующие с конца. Каша была какая то в сортировке.

Скоро сделаю версию 0.3 после обновления до 13.2. Там будут шаблоны.

Подожду 0,3 версии, я уже на 13,2 перешел, там и проверю еще раз ваш модуль.

спасибо за старания.
Zdraff

Zdraff

13 марта 2019 14:30 Клиенты
0
Цитата: NlCKRUS
Каша была какая то в сортировке.

А вы в настройках раздела настроили сортировку?
Цитата: NlCKRUS
спасибо за старания

Пожалуйста.
NlCKRUS

NlCKRUS

14 марта 2019 11:03 Посетители
0
А вы в настройках раздела настроили сортировку?

да, ставил сортировать по последнему комментарию
Zombieee.iNfo

Zombieee.iNfo

25 марта 2019 13:27 Клиенты
0
Установил, но что-то при создании темы выдаёт

Помогите пожалуйста решить данную проблему!

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Август 2019    »
ПнВтСрЧтПтСбВс
 1234
567891011
12131415161718
19202122232425
262728293031 
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Май 2019 (3)
Апрель 2019 (1)
Март 2019 (3)
Февраль 2019 (2)
Январь 2019 (2)
Декабрь 2018 (1)