Ура, первая новость спустя долгий промежуток времени! Разработка ведётся, движок потихоньку развивается. Если новостей нет, то это вовсе не значит, что все причастные к разработке движка уже давно умерли :)
Что сделано:
[движок]: привёл в порядок core.php: выкинул всё лишнее, раскидал функции по отдельным файлам, добавил кучу нового. Из важного:
- внедрены опционально включаемые подготавливаемые запросы к БД во всех модулях;
- добавлены мультиязычные формы для названия сайта, описания внизу страницы, режима обслуживания и т.д.;
- главная страница теперь умеет отображать не только новости, но и любую другую выбранную в настройках страницу;
- обработчик изображений выведен в отдельную универсальную функцию;
- оптимизированы все файлы движка;
+ многое другое, о чём я сейчас просто не в состоянии вспомнить :)
[модуль новостей]: добавлено поле описания новости. Гугл (да и вообще все) требует, чтобы у каждой страницы было своё описание - сделано!
[модуль страниц]: добавлено поле описания страницы (всё по той же причине) + теперь можно стыковать страницы друг к другу, образовывая дерево страниц. Для пояснения, раньше было так:
Страница 1
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
А теперь можно делать вот так:
Страница 4
└ Страница 1
└ Страница 3
└ Страница 2
└ Страница 5
Страница 6
[модуль ссылок]: начато внедрение дерева ссылок (стыковка ссылок друг к другу). Раз страницы умеют друг к другу стыковаться, то и ссылки должны уметь тоже!
[модуль пользователей]: внедрены карточки пользователей с выводом информации.
В планах много всего, но т.к. разработку веду я один - новости будут выходить не часто :)
Модуль журналирования: теперь записывает события бэкапера БД.
Модуль бэкапа БД: начал работу над модулем бэкапа БД. На данный момент, модуль умеет создавать бэкапы таблиц (всех или только тех, что были выбраны) и умеет сжимать бэкапы в gzip. Модуль предлагает сохранить файл бэкапа на ПК пользователя, а так же делает скрытую копию файла в специальной директории на сервере. В процессе разработке - функция восстановления таблиц из файла бэкапа.
Движок: переработана функция "правильного склонения существительных с числительными" (пример её работы: 0 лет, 1 год, 2 года, 3 года, 4 года, 5 лет, ..., 11 лет, 12 лет, ..., 21 год.) - теперь она поддерживает не только русский язык, а 114 (!) языков.
+ исправлены мелкие косяки в работе движка ("умная" функция даты оказалась не слишком умной :) ).
Движок: добавил "умную" функцию даты, которая показывает - сколько секунд/минут/часов назад было совершено то или иное действие :)
Обновлены все модули для поддержки записи ошибок в модуль журналирования.
Модуль журналирования: теперь фиксирует и ошибки. Добавлен фильтр сообщений, который отображает выбранный тип сообщений: ошибки, информационные сообщения, системные события.
Добавлен модуль редактирования файла robots.txt. Этот файл нужен для поисковых движков. Чтобы увидеть этот модуль, супер админам нужно обновить свои права в модуле администраторов :)
Движок: добавлена опция чередования цветов в таблице - ее в любой момент можно отключить в "основных установках" сайта.
Дизайн: слегка поменял базовую тему сайта :)
Движок: добавлена функция обрезки длинных текстов/названий/заголовков. Работу этой функции можно наблюдать практически во всех модулях в панели управления. Если создать, к примеру, новость с длинным заголовком - в модуле новостей, в таблице, этот заголовок будет обрезан.
Модуль пользователей: завершил работу над редактором пользовательских групп :)
Модуль администраторов: полностью переписан код. Теперь добавлять админов, на мой взгляд, стало намного удобнее :) появилась функция обновления прав для супер-админов - на тот случай, если в систему добавился новый модуль или в БД поменялись права. Раньше права обновлялись вручную - путем внесения изменений в БД каждому пользователю.
Панель администратора: модуль журнала перенещен в раздел пользователей.
Панель администратора: модуль панелей перенещен в раздел контента.
Модуль пользователей: теперь, при добавлении/редактировании пользователей, в случае возникновения ошибки (например - пустой пароль или неправильный e-mail адрес), модуль показывает все ошибки и подсвечивает поля, в которых они возникли. Добавлен редактор пользовательских групп, но, пока что - без возможности добавления пользователей в группы (в процессе разработки). Причину бана теперь можно указывать на нескольких языках - это чтобы забаненный пользователь знал - куда и за что его послали, на всех языках :) сам редактор банов пока-что тоже в процессе доработки.
Панель администратора: в некоторые модули (новости, страницы, администраторы, пользователи, журнал) добавлена функция, позволяющая разбивать большое количество записей на страницы. Т.е. теперь, если количество записей (например - новостей) превысит заданное число (по умолчанию - 10, выставляется в "основных установках" сайта), движок будет выводить только заданное число записей, остальные записи можно просматривать, щелкая на номера страниц.
Местами проведена оптимизация кода некоторых модулей + исправление мелких ошибок в работе движка.
Вот такое вот обновление :)
Дизайн: сменил дизайн кнопки "наверх" - теперь она не мешает просмотру сайта, особенно на смартфоне :)
Модуль панелей: раньше, при добавлении новых панелей, отображался список всех панелей - которые были подключены к движку и которые не были. Теперь модуль проверяет - все ли панели подключены к движку, если нет - выводит список тех панелей, что не подключены к движку, а если таких панелей нет - пишет, что новых панелей нет.
Модуль страниц: теперь, при создании страниц, в модуле ссылок автоматически создаются ссылки на новые страницы; при редактировании страницы - редактируется ссылка на эту страницу; при удалении страницы - удаляется ссылка на эту страницу; при включении/выключении страницы - включается/выключается ссылка на эту страницу.
Движок: добавлены кнопки "редактировать" к каждой новости и к каждой странице на сайте (при условии, что пользователь - админ, и у него есть права на редактирование новостей или страниц; если пользователь не админ, либо у него нет прав - кнопка не показывается).
Движок: текущие страницы теперь подсвечиваются в подзаголовке и в навигационной панели (меню сайта).
Движок: время генерации страницы и время обработки данных теперь рассчитываются по-новому (современными функциями).
Движок: теперь в БД посылается один запрос вместо двух для вывода левых и правых панелей сайта. Чем меньше запросов - тем меньше нагрузка на сервер и выше производительность :)
Панель администратора: модуль ссылок перемещен в раздел контента.
Панель администратора: ссылки боковой панели (меню администрирования) теперь имеют свой собственный стиль в admin.css - раньше их стиль был таким же, как у боковых панелей на сайте. Т.е. теперь можно менять внешний вид ссылок боковой панели администратора, не затрагивая внешний вид ссылок в боковых панелях на сайте.
Модуль пользователей: полностью переписан код, но внешне практически ничего не изменилось :) исправлены многочисленные ошибки (в т.ч. "самобан", бан главного супер-админа(!) и т.д.), оптимизированы запросы в БД, добавлена функция журналирования. В планах - переработать внешний вид модуля.
+ исправлены мелкие ошибки в работе движка и в некоторых модулях.
Модуль новостей: добавлена функция заполнения высоты изображения (чекбокс "не обрезать") - с этой функцией изображения всегда будут заданной формы (по умолчанию - 110 на 110 пикселей).
Модуль страниц: теперь можно добавлять, удалять и обрезать главные картинки страниц :) так же добавлена новая функция заполнения высоты изображения.
Дизайн сайта: добавлен файл page.css со стилями для модуля страниц.
Движок: функция журналирования теперь фиксирует действия в модуле администраторов.
Модуль журнала: добавил опцию включения/выключения журнала.
+ исправил некоторые косяки в работе движка.
Движок: начал внедрение функции журналирования, сейчас она работает в тестовом режиме и фиксирует действия в модуле новостей, в модуле страниц, в модуле ссылок, в модуле панелей и в модуле основных настроек.
+ исправил некоторые косяки в работе движка и отдельных модулей.
Движок: закончил внедрение ЧПУ, проверить его работу можно перейдя по ссылке https://core-cms.ru/page/1/ ;)
Движок: начал внедрение ЧПУ (аббревиатура от "Человеку Понятный Урл", где "урл" - жаргонное название URL) - веб-адреса, удобные для восприятия человеком (а также систем и методов построения таких адресов). Т.е. вместо адресов типа http://core.cms/page.php?id=1 будут адреса http://core.cms/page/1/, где 1 - это номер страницы в базе. То же самое и с новостями - из адреса http://core.cms/news.php?id=1 будет адрес http://core.cms/news/1/, где 1 - это номер новости в базе, а если ввести адрес http://core.cms/news/ - то откроется весь список новостей, что есть на сайте. Адреса в примере пока не работают - все еще только внедряется :)
Модуль администраторов: теперь назначать супер-админов может не только первый супер-админ (т.е. главный), но и новоиспеченные супер-админы. Первого супер-админа по-прежнему никто не может удалить или отредактировать. Так же, все админы (в т.ч. супер-админы) не могут удалять сами себя и редактировать самим себе права - для этого нужно просить другого админа, чтобы тот удалил их, либо отредактировал права - это сделано в целях безопасности. Так же, простые админы, отныне, не могут удалять и редактировать супер-админов - только первый супер-админ и сами супер-админы могут удалять и редактировать супер-админов :) зато админы могут назначать других пользователей админами, но при этом, как было сказано выше, админы не смогут удалить самих себя или отредактировать свои права в целях безопасности.
В планах: внедрение функции журналирования - какой админ, когда и что делал в панели администратора (т.е. фиксация в журнале всех действий в панели администратора). Так будет видно - какой админ, например, создал новость, отредактировал страничку и удалил другого админа :)
Модуль новостей: теперь выполняется один запрос в БД на все новости и связанные с ними категории, раньше - выполнялся один запрос на новости + по одному запросу на категорию с каждой новости (т.е. если в БД три новости - выполнялся бы один общий запрос на все новости + еще три запроса на категорию каждой новости - в сумме 4 запроса, с ростом количества новостей росло бы и количество запросов на категории, что значительно снизило бы производительность движка и увеличило нагрузку на сервер).
Дизайн сайта: общий файл style.css был поделен на два файла - admin.css и news.css. В admin.css переместились все стили, что нужны для работы в панели администратора, а в news.css - стили для отображения новостей. Движок теперь подключает нужные стили в нужных местах (в панели администратора - admin.css, в новостях - news.css), что позволило уменьшить размер общего файла style.css и немного увеличить производительность.
+ исправил некоторые косяки в работе движка и отдельных модулей.
Модуль новостей: теперь можно добавлять, удалять и обрезать главные картинки новостей :)
Модуль бэкапа БД: бэкап теперь создается только с таблицами движка, а не со всеми, что есть в БД.
Модуль оптимизатора БД: оптимизатор теперь работает только с таблицами движка, а не со всеми, что есть в БД.
Панель администратора: в тех местах, где есть переключатели "включить/выключить" (это модули: новости, страницы, ссылки и панели), положение включено/выключено в опциях теперь выделяется цветом: если включено - зеленым, если выключено - красным.
Панель администратора: группы пользователей теперь выделяются цветами: зеленым - гости, синим - пользователи, оранжевым - администраторы, красным - супер-администраторы.
Базовый стиль сайта: все кнопки теперь подсвечиваются при наведении на них.
+ куча мелких исправлений.