DEV: Новая структура сайта (темы)
Новая структура сайта, новые возможности (по темам), оптимизация запрос по формированию ленты, рекомендованные темы. Плюс:
- Удаление пространств
- Добавление в темы: автора темы, темы дня (поле для базы)…
- Рекомендованные посты в рамках темы (поле для базы)
- Переписан поиск (в том числе и без
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.
Эти три сайта хорошо показывают возможность «Тем» (расширенных тегов).
Я тогда с GitHub поставлю, чтобы было с нуля всё и список ошибок сегодня подготовлю.
Да, я специально в репозиторий добавил, чтобы можно было тестировать.