LINUX.ORG.RU

MyBB теги для постов с человеческим лицом

 mybb, , ,


0

1

Приветос!

Начал потихоньку разбираться с движком MyBB, встал вопрос сделать тематические теги для тем, примерно так, как это сделано на ЛОРе. Нашел MyBB Tags. Но у него есть два фатальных недостатка:

  • Он у меня почему-то с первой установки не заработал;
  • Плагин создаёт тег из каждого слова в названии темы.

    Что, естественно, меня не может устроить

Чего же я хочу от ЛОРа? Подскажите с чего концептуально начать разработку плагина управления и создания произвольных тегов к посту.

Дайте удачные примеры реализации.

Вроде все. Спасибо.

★★★★★

Пожалуй скастую Романа KRoN73, с чего бы начать, смотрел аналогичные решения для phpBB, но что-то запутался :-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Я уже заглядывал в тему с её создания, но ответить по существу нечего.

— MyBB отличный движок, мой основной фаворит среди сторонних до последнего времени. Но с тегами в нём никогда не работал. Да и сейчас особо не прикладываюсь к нему, всё жду MyBB2, в которой обещают поддержку Markdown, чтобы мне иметь унифицированную разметку в Infonesy.

Из интересных для меня альтернатив с тегами «из коробки»:

Vanilla forum. Интересный движок. Теги из коробки. Много плагинов. Markdown-разметка опциональная (вообще, в принципе, прикручивается любая разметка, индивидуально для каждого сообщения). Для меня основные минусы — не очень удобная архитектура БД и отсутствие привязки ответов.

Flarum. Очень красивый приятный движок. Не просто теги, а на тегах базируется (они вместо подфорумов). Markdown-разметка. Минус в том, что не хранит исходник сообщения, а сразу компилированный HTML. Для редактирования производит обратное преобразование html -> markdown. Из-за этого Markdown не расширяемый простыми средствами. Нет таблиц и т.п.

Вот, я тут набрасывал впечатления по движкам: http://forums.balancer.ru/tech/forum/2016/01/t88085--forumnye-dvizhki.4072.html

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

http://vanilla.docker.home.balancer.ru/
http://flarum.ultimon.wrk.ru/

Ещё есть FluxBB, но он совсем уже убогий:

http://fluxbb.ams.wrk.ru/

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Спасибо большое за отклик, пока ждал ответа тоже решил попробовать Vanilla, там все-таки composer рулит зависимости среди прочих плюсов движка.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Vanilla понравился, вроде даже вся базовая функциональность современного форума поставляется «из коробки».

Да и процесс установки еще проще, чем у вордпресс.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Злоупотребляя твоей отзывчивостью спрошу, а как в общих чертах, так сказать, концептуально реализуются теги для темы?

То есть, по пунктам на бумаге.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

В смысле, как они в Vanilla реализованы? Обычно — есть таблица тегов и таблица привязок тегов и топиков.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Нет, я не это имел ввиду. Общая архитектура. А именно, представление в БД: две таблицы? Если это представить в общем виде, безотносительно к Ванили: tag_id связывается с post_id. А как отслеживать дубли tag_name в таблице тегов, если таковые будут?

Я имел ввиду реализацию в общем виде.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

А именно, представление в БД: две таблицы?

Именно так. Загляни в БД :)

— GDN_Discussion — таблица с топиками. Ключевое поле DiscussionID
— GDN_Tag — таблица тегов. Ключевое поле TagID
— GDN_TagDiscussion — таблица связей топиков и ключевых слов. Имеет поля TagID и DiscussionID для указания привязки тегов и топиков.

А как отслеживать дубли

В таблице тегов имя тега — уникальный ключ. В БД чисто физически нельзя записать два тега с одним именем. В таблице привязок уникальный составной ключ TagID+DiscussionID. Аналогично, нельзя добавить две записи с одинаковыми TagID и DiscussionID. Это для физического ограничения на уровне БД. Если попытаться записать с нарушением, выскочит ошибка. Чтобы её не было, обычно делают и/или проверку на наличие уже в таблице таких записей, и/или вставку с модификаторами IGNORE (тогда при наличии уже записи вторая нарушающая уникальность просто не добавится) или REPLACE (тогда старая запись предварительно удалится). Как в Vanilla сделано не смотрел.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Спасибо, все понятно, пошел смотреть.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Фигня какая-то. Обновил контейнеры Docker'а (т.е. обновилась минорная версия у php5.6) — и Vanilla перестала работать. Просто белый экран, 0 байт с 200-м статусом и тишина. Стал ковыряться — в потрохах просто ад. Много порождающих предупреждения замаскированных кусков, несколько маскированных require/include... В общем, так и не смог понять, что не работает. Скачал с нуля новую версию 2.2.1 — там в архиве не хватает файлов, самое главное, index.php отсутствует :D Накатил 2.2.1 поверх старого 2.1.1 — инсталлятор работает, админка работает, попытка посмотреть главную — белый экран... В общем, пока сильно разочаровался :-/

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

У меня на VPS (Debian 7.3), PHP 5.6.25 из dotdeb, тоже обновлялся php, таких косяков не наблюдал. Ну, правда же, ставил начисто 2.2.1, да.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Ну, правда же, ставил начисто 2.2.1, да

Я ставил с уже имеющей базой, но с новым кодом — 2.2.1 не завёлся. Поставил master с github — при обновлении словил ошибку. Банальная опечатка в коде апдейта базы o_O. Поправил, выслал им пул-реквест. После запустилось и заработало. Но как-то кривовато. Кеширование списка тем глючит, после добавления темы нужно кеш ручками убивать.

В общем, Flarum пока выглядит намного приятнее :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Да-с!

Серебрянной пули нет, хоть Ванилла производит весьма приятное впечатление.

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.