Главная страница / Сторонние модули / Простой форум средствами 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.

Комментарии

  1. Zdraff (Клиенты)

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

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

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

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

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

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

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

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

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

    21 января 2019 04:01 67 комментариев
    kamensk,
    Получится.

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

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

    А что смущает?
  8. alexpsp (Клиенты)

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

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

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

    404
    Not Found

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

    П.С. В подвале пора поменять год на 2019 wink
  19. YuriBtr (Клиенты)

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

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

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

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

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

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

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

    моя версия DLE 13.1
  23. NlCKRUS (Клиенты)

    7 марта 2019 11:15 22 комментария
    Цитата: NlCKRUS
    favorites

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

    7 марта 2019 11:43 22 комментария
    а где addtopic.html взять?
  25. NlCKRUS (Клиенты)

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

    13 марта 2019 11:41 67 комментариев
    Цитата: NlCKRUS
    где addtopic.html взять?

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

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

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

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

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

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

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

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

    спасибо за старания.
  28. Zdraff (Клиенты)

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

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

    Пожалуйста.
  29. NlCKRUS (Клиенты)

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

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

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

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

Информация

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

Календарь

«    Август 2020    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
31 

Опрос на сайте

Совершаете ли вы покупки в интернет?