Введение
21 февраля 2024 года состоялся релиз новой версии CMS Datalife Engine. О чём было объявлено на официальном сайте.
Изменения
1. Доп.поля
Для дополнительных полей типа "список" теперь доступна функция установки обязательности их заполнения, а также возможность выбирать несколько значений.
Затронутые файлы
- /upload/engine/ajax/editnews.php
- /upload/engine/ajax/rebuild.php
- /upload/engine/classes/templates.class.php
- /upload/engine/inc/xfields.php
- /upload/engine/modules/functions.php
- /upload/engine/modules/main.php
- /upload/engine/modules/show.custom.php
- /upload/engine/modules/show.full.php
- /upload/engine/modules/show.short.php
- /upload/engine/modules/topnews.php
2. SiteMap
В sitemap теперь можно добавлять изображения, эта функция активирована по умолчанию с момента установки.
Функция уведомления поисковых систем о обновлении файла sitemap была удалена.
Затронутые файлы
- /upload/engine/ajax/sitemap.php
- /upload/engine/classes/antivirus.class.php
- /upload/engine/classes/google.class.php
- /upload/engine/inc/googlemap.php
- /upload/install.php
3. Уведомления DLEPush
Введена новая система PUSH-уведомлений для информирования пользователей, заменившая DLEAlert.
Затронутые файлы
- /upload/engine/ajax/addcomments.php
- /upload/engine/ajax/editcomments.php
- /upload/engine/ajax/editnews.php
- /upload/engine/ajax/pm.php
- /upload/engine/classes/js/dle_js.js
- /upload/engine/classes/js/jqueryui.js
- /upload/engine/modules/addnews.php
- /upload/engine/modules/feedback.php
- /upload/engine/modules/pm.php
- /upload/engine/modules/profile.php
- /upload/engine/modules/register.php
- /upload/engine/modules/vote.php
4. Внешние хранилища
В админпанели реализована функция сортировки подключенных внешних хранилищ.
Затронутые файлы
- /upload/engine/ajax/adminfunction.php
- /upload/engine/classes/filesystem.class.php
- /upload/engine/inc/storage.php
5. Загрузка файлов
Внедрена функция обязательного добавления префикса к названию файла загруженного изображения, чтобы обеспечить отображение нового изображения пользователям вместо кешированного.
Также реализована возможность сохранения оригинального названия файла, то есть того названия, под которым файл был загружен на сервер.
Затронутые файлы
- /upload/engine/classes/uploads/upload.class.php
6. Система плагинов
На странице плагина в админпанели добавлены функциональные кнопки: "Проверить обновления", "Загрузить обновление", "Скачать" и "удалить".
В опции плагина добавлена ссылка на страницу его редактирования в новом окне.
Затронутые файлы
- /upload/engine/classes/uploads/upload.class.php
7. Комментарии
Теперь можно редактировать имя автора в комментариях, оставленных анонимными пользователями.
Кнопка "Пожаловаться" больше не показывается в комментариях, автором которых является пользователей.
Устранена проблема с отправкой ответов на комментарии при активированной капче reCAPTCHA v3.
Затронутые файлы
- /upload/engine/ajax/addcomments.php
- /upload/engine/inc/cmoderation.php
- /upload/engine/inc/comments.php
8. Протокол IndexNow
Теперь у вас есть возможность выбора провайдера для уведомления поисковых систем.
Выбрать можно из списка: IndexNow, Yandex,Microsoft Bing, Naver, Seznam.cz.
По умолчанию при установке, IndexNow.
Затронутые файлы
- /upload/engine/classes/seo.class.php
- /upload/engine/inc/addnews.php
- /upload/engine/inc/editnews.php
- /upload/engine/inc/options.php
- /upload/install.php
9. Адаптивный редактор
Теперь доступна опция использования адаптивного редактора с ограниченным набором кнопок при добавлении комментариев на мобильных устройствах.
Активация данной опции включена по умолчанию при установке.
Затронутые файлы
- /upload/engine/ajax/editcomments.php
- /upload/engine/ajax/replycomments.php
- /upload/engine/editor/comments.php
- /upload/engine/inc/options.php
- /upload/engine/modules/show.full.php
- /upload/install.php
10. TinyMCE
Возвращена возможность устанавливать размеры изображения непосредственно при редактировании свойств.
WYSIWYG-редактор обновлён до актуальной версии 6.8.3, ранее была 6.7.0.
Затронутые файлы
- /upload/engine/ajax/editcomments.php
- /upload/engine/ajax/editnews.php
- /upload/engine/ajax/pm.php
- /upload/engine/ajax/replycomments.php
- /upload/engine/editor/comments.php
- /upload/engine/editor/newsletter.php
- /upload/engine/editor/shortnews.php
- /upload/engine/editor/shortsite.php
- /upload/engine/editor/static.php
11. Fancybox
Обновлён с версии v5.0.24 до v5.0.32. Актуальная на текущий момент v5.0.33 от 3 января 2024 года почему то не задействована.
Затронутые файлы
- /upload/engine/classes/fancybox/fancybox.css
- /upload/engine/classes/fancybox/fancybox.js
12. jQuery
Обновлён jQuery с версии v3.7.0 до актуальной v3.7.1.
Обновлён jQuery UI с версии v1.13.1 до актуальной v1.13.2.
Затронутые файлы
- /upload/engine/classes/js/jquery3.js
- /upload/engine/classes/js/jqueryui3.js
13. PHPMailer
Изменено значение XMailer на "CMS DataLife Engine", ранее было "DLE CMS".
Обновлён класс для работы с почтой с версии 6.8.1 до актуальной 6.9.1.
Затронутые файлы
- /upload/engine/classes/mail.class.php
- /upload/engine/classes/mail/class.phpmailer.php
- /upload/engine/classes/mail/smtp.php
14. MySQL
Исправлены некоторые ошибки в коде.
Затронутые файлы
- /upload/engine/classes/mysql.php
Тэги
Глобальный
{lang text="LANG_PARAMETER"}
отображает информацию из языкового пакета, соответствующего выбранному языку с учетом указанного параметра.
shortstory.tpl и fullstory.tpl
{edit-date=формат даты}
выводит дату редактирования публикации в заданном формате.
[xfvalue_X format="Формат"]
выводит дату из доп.поля в заданном формате.
profile_popup.tpl
{usertitle}
логин пользователя
[banned] ... [/banned]
выводит данные, находящиеся между тегами, в случае, если пользователь находится в бане.
[not-banned] ... [not-banned]
выводит данные, находящиеся между тегами, в случае, если пользователь не находится в бане.
{ban-description}
выводит причину по которой пользователь забанен.
{ban-date}
выводит срок до которого пользователь забанен.
userinfo.tpl
[banned] ... [/banned]
выводит данные, находящиеся между тегами, в случае, если пользователь находится в бане.
[not-banned] ... [not-banned]
выводит данные, находящиеся между тегами, в случае, если пользователь не находится в бане.
{ban-description}
выводит причину по которой пользователь забанен.
{ban-date}
выводит срок до которого пользователь забанен.
Файлы
Естественно, я не могу охватить все внесенные изменения. В моем приватном GIT-репозитории я сохраняю исходное состояние кода, что помогает мне более детально отслеживать изменения в CMS с каждым релизом.
Итак, по статистике релиза 17.1: 468 изменённых файлов: 13155 добавлений и 5057 удалений.
Множество изменений связаны с исправлением указания года в копирайтах внутри кода, поэтому мы сразу исключаем их. Также мы игнорируем файлы не связанные с кодом напрямую, а также целиком директорию /upload/engine/classes/composer/vendor/ и ей подобные.
Таким образом, если говорить по существу, вот полный список файлов, которые действительно подверглись изменениям:
- /upload/engine/ajax/addcomments.php
- /upload/engine/ajax/adminfunction.php
- /upload/engine/ajax/complaint.php
- /upload/engine/ajax/editcomments.php
- /upload/engine/ajax/editnews.php
- /upload/engine/ajax/favorites.php
- /upload/engine/ajax/pm.php
- /upload/engine/ajax/profile.php
- /upload/engine/ajax/rating.php
- /upload/engine/ajax/ratingcomments.php
- /upload/engine/ajax/rebuild.php
- /upload/engine/ajax/replycomments.php
- /upload/engine/ajax/sitemap.php
- /upload/engine/ajax/upload.php
- /upload/engine/classes/antivirus.class.php
- /upload/engine/classes/comments.class.php
- /upload/engine/classes/filesystem.class.php
- /upload/engine/classes/google.class.php
- /upload/engine/classes/htmlpurifier/HTMLPurifier.standalone.php
- /upload/engine/classes/mail.class.php
- /upload/engine/classes/mail/class.phpmailer.php
- /upload/engine/classes/mail/smtp.php
- /upload/engine/classes/mysql.php
- /upload/engine/classes/parse.class.php
- /upload/engine/classes/seo.class.php
- /upload/engine/classes/templates.class.php
- /upload/engine/classes/thumb.class.php
- /upload/engine/classes/uploads/upload.class.php
- /upload/engine/editor/comments.php
- /upload/engine/editor/css/content.css
- /upload/engine/editor/newsletter.php
- /upload/engine/editor/shortnews.php
- /upload/engine/editor/shortsite.php
- /upload/engine/editor/static.php
- /upload/engine/go.php
- /upload/engine/inc/addnews.php
- /upload/engine/inc/blockip.php
- /upload/engine/inc/cmoderation.php
- /upload/engine/inc/comments.php
- /upload/engine/inc/complaint.php
- /upload/engine/inc/editnews.php
- /upload/engine/inc/editusers.php
- /upload/engine/inc/email.php
- /upload/engine/inc/googlemap.php
- /upload/engine/inc/include/functions.inc.php
- /upload/engine/inc/include/init.php
- /upload/engine/inc/main.php
- /upload/engine/inc/newsletter.php
- /upload/engine/inc/options.php
- /upload/engine/inc/plugins.php
- /upload/engine/inc/preview.php
- /upload/engine/inc/search.php
- /upload/engine/inc/static.php
- /upload/engine/inc/storage.php
- /upload/engine/inc/tagscloud.php
- /upload/engine/inc/upgrade.php
- /upload/engine/inc/upgrade/17.0.php
- /upload/engine/inc/userfields.php
- /upload/engine/inc/usergroup.php
- /upload/engine/inc/xfields.php
- /upload/engine/modules/addcomments.php
- /upload/engine/modules/addnews.php
- /upload/engine/modules/banned.php
- /upload/engine/modules/feedback.php
- /upload/engine/modules/functions.php
- /upload/engine/modules/main.php
- /upload/engine/modules/pm.php
- /upload/engine/modules/profile.php
- /upload/engine/modules/profile_innews.php
- /upload/engine/modules/register.php
- /upload/engine/modules/search.php
- /upload/engine/modules/show.custom.php
- /upload/engine/modules/show.full.php
- /upload/engine/modules/show.short.php
- /upload/engine/modules/static.php
- /upload/engine/modules/topnews.php
- /upload/engine/modules/vote.php
- /upload/engine/preview.php
- /upload/engine/skins/default.skin.php
- /upload/engine/skins/jаvascripts/application.js
- /upload/install.php
- /upload/language/English/adminpanel.lng
- /upload/language/English/website.lng
- /upload/language/Russian/adminpanel.lng
- /upload/language/Russian/website.lng
- /upload/language/Ukrainian/adminpanel.lng
- /upload/language/Ukrainian/website.lng
Итого: 1 файл новый, 1 файл удалён и 85 были изменены.
P.S. Из причуд найденных в процессе анализа:
Только сейчас узнали о чудесной php-функции валидации email...
/upload/engine/modules/profile.php
false
не null
...
upload/engine/classes/mysql.php
Оказывается пользователь noname был ранее повинен во множестве оценок выставленных гостями...
/upload/engine/ajax/rating.php
Неожиданно API-файт принадлежит не SoftNewsMediaGroup, а некому IT-Security (Asafov Sergey)...
/upload/engine/api/api.class.php
Лучшего способа конкретизировать игнорирования первого элемента массива не нашлось...
upload/engine/ajax/upload.php
Интересные ссылки в тему
Подробная информация о релизе на официальном сайте:
https://dle-news.ru/release/1901-datalife-engine-v171-final-release.html