DEV: Новая структура сайта (темы)

Evg Evg 19 Октября 2021

Новая структура сайта, новые возможности (по темам), оптимизация запрос по формированию ленты, рекомендованные темы. Плюс:

  • Удаление пространств
  • Добавление в темы: автора темы, темы дня (поле для базы)…
  • Рекомендованные посты в рамках темы (поле для базы)
  • Переписан поиск (в том числе и без sphinx)
  • Множественные изменения и улучшения структуры…

Как обновить сайт?

Важно! Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных.

В базу данных, через PhpMyAdmin добавим 4 поля:

ALTER TABLE `topics` ADD `topic_is_deleted` TINYINT(1) NOT NULL DEFAULT '0' AFTER `topic_count`; 

ALTER TABLE `topics` ADD `topic_user_id` INT(11) NOT NULL DEFAULT '1' AFTER `topic_is_parent`; 

ALTER TABLE `topics` ADD `topic_the_day` TINYINT(1) NOT NULL DEFAULT '0' AFTER `topic_space_related`;

ALTER TABLE `posts` ADD `post_is_recommend` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Рекомендованные посты' AFTER `post_merged_id`; 

Для чего?

  • Темы могут быть «удалены»
  • Кто добавил тему
  • Тема дня
  • Рекомендованные посты внутри любой темы

Примечание: на сайте нет физического удаления. «Удаление» только подразумевает, что данный для TL < 5 скрываются. Любые данные можно восстановить. Есть много объяснений почему выбирают такое поведение (Stack Exchange, Zhihu, Quora, Вики… и т.д.) от: так делают другие / в системе должны оставаться данные с которыми можно работать далее (история важна) / чтобы не нарушать целостность базы. Можно выбрать любое.

Далее. Удалим 2 таблицы и 2 поля:

DROP TABLE `spaces`, `spaces_signed`;

ALTER TABLE `posts`
  DROP `post_space_id`; 

ALTER TABLE `links`
  DROP `link_category_id`;  

Удалим директории (папки):

  • config
  • app
  • resources
  • routes
  • public/uploads/spaces (файлы для пространств)

Если залить новую версию сайта поверх, то работать будет, но в папках останутся файлы от старой версии, которые сейчас не используются. Появятся «лишние» файлы.

Пропишем данные в файлах конфигурации (директория config):

  • dbase.config.php (доступ к базе)
  • general.php (некоторые основные настройки)
  • meta.php (мета- теги)

Заменим css и js в директориях на новые файлы с GitHub:

  • public/assets/js
  • public/assets/css

Готово. Всё должно работать.

P.S. Дополнительно по темам (возможности, управление), — будет отдельный пост.

На GitHub изменения внесены: 1,719 additions and 3,031 deletions.

В README.md написал:

We like the classification system based on labels (tags), how it works in the example: Stack Exchange, Zhihu, Quora and a number of others.

Эти три сайта хорошо показывают возможность «Тем» (расширенных тегов).

3 Ответа

  1. German German 19 Октября 2021

    Я тогда с GitHub поставлю, чтобы было с нуля всё и список ошибок сегодня подготовлю.

    1. Evg Evg 19 Октября 2021

      Да, я специально в репозиторий добавил, чтобы можно было тестировать.

  1. Dev Dev 19 Октября 2021

    Отлично. Всегда хотел пощупать сообщество с одной навигацией и ясной системой подписки. Квора в этом плане хороша.