DataLife Engine v.11.2 Press Release

Дорогі друзі,

Завершений основний етап розробки версії 11.2, реліз знаходиться на тестуванні і предрелизной підготовці, ну а поки ми пропонуємо вам ознайомитися з інформацією про те, що чекає вас з виходом нової версії.

Були підготовлені і реалізовані наступні зміни:


DataLife Engine v.11.2 Press Release
1. Додана можливість використання двофакторної авторизації на сайті. Включається дана можливість в налаштуваннях скрипта в панелі управління. Після її включення, всі користувачі зможуть включити двофакторну авторизацію на сайті в своєму профілі. При активації даного типу авторизації, користувачеві, після успішного введення свого логіна та паролю, на його E-mail адресу буде відправлений одноразовий пін-код, який він повинен буде ввести на сайті. У разі включення даної опції в профілі користувача, для нього також автоматично включається “контроль зміни IP” і “контроль використовуваного браузера і комп’ютера”. Ця можливість істотно збільшує безпеку для користувача даних. Наприклад, у випадку крадіжки у них доступу від сайту, їм неможливо буде скористатися без доступу до їх E-mail адресою.

2. Для шаблону виведення і редагування профілю користувача (userinfo.tpl) додано використання нового тегу {twofactor-auth}, який виводить чекбокс для включення або відключення двофакторної авторизації на сайті для користувача.


3. Додана можливість підрахунку кількості публікацій у кожній категорії. Підрахунок кількості публікацій у категорій ведеться з урахуванням різних налаштувань сайту і параметрів самої новини. Наприклад, якщо новина опублікована у підкатегорії і при цьому включений показ новин з підкатегорій в батьківських категоріях, то для всіх батьківських категорій також буде врахована ця новина, але якщо батьківська категорія вказана додатково і в списку категорій самої новини, то подвійного обліку вже не буде. Для підрахунку даної інформації був використаний найбільш ефективний механізм, покликаний знизити витрати пам’яті і навантаження, для цього частина підрахунків веде MySQL сервер, а відсутню частину PHP, при цьому якщо включено кешування на сайті, то підрахована кількість публікацій також кешується. Незважаючи на найбільш оптимальний механізм підрахунку, дана можливість збільшує навантаження на сервер, тому ви можете увімкнути або вимкнути в налаштуваннях скрипта в панелі управління. Дану інформацію можна виводити на сайті різними способами, які описані в описі даного релізу нижче.

4. Додана можливість виводити і формувати меню з категорій сайту в шаблонах. Для виведення меню категорій використовується тег {catmenu}. Даний тег ви можете використовувати в будь-якому файлі шаблонів, він є глобальним. Даний тег в свою чергу використовує і підключає файл шаблону categorymenu.tpl. В шаблоні categorymenu.tpl ви можете використовувати наступні теги для свого меню:

[root] текст [/root] – які виводять текст, ув’язнений в них при первісній генерації шаблонів меню. Дані теги можуть використовуватися для створення зовнішнього оформлення меню. Наприклад, для додавання зовнішніх HTML елементів або елементів меню не входять в список категорій.

[item] текст [/item] – виводять кожен елемент категорії при побудові списку меню категорій. У тексті укладеному в цьому теге виводиться HTML оформлення кожного пункту меню.

[sub-prefix] текст [/sub-prefix] – які виводять текст, укладених в них у вигляді префікса для підкатегорій, якщо категорія є батьківського і у неї є підкатегорії.

[sub-suffix] текст [/sub-suffix] – виводить текст ув’язнених, у них у вигляді суфікса для підкатегорій, якщо категорія є батьківського і у неї є підкатегорії.

{sub-item} – вказує місце для висновку підкатегорій батьківської категорії, у разі, якщо у неї є підкатегорії. Даний тег може використовуватися тільки всередині тегів [item] [/item].

{name} – виводить ім’я категорії. Даний тег може використовуватися тільки всередині тегів [item] [/item].

{url} – виводить URL категорії. Даний тег може використовуватися тільки всередині тегів [item] [/item].

{icon} – виводить іконку категорії. Даний тег може використовуватися тільки всередині тегів [item] [/item].

{news-count} – виводить кількість публікацій в категорії. Даний тег може використовуватися тільки всередині тегів [item] [/item].

[active] текст [/active] – виводить текст, ув’язнений в них, якщо переглядаючи на сайті категорія або новину, належить до категорії з меню. Даний тег може використовуватися тільки всередині тегів [item] [/item] і використовується наприклад для подветки активних категорій з меню.

[isparent] текст [/isparent] – виводить текст, ув’язнений в них, якщо категорія є батьківського і містить у собі підкатегорії Даний тег може використовуватися тільки всередині тегів [item] [/item].

Приклад найпростішого шаблону меню категорій на основі HTML тегів ul і li:
[root]

    [/root]
    [item]

  • {name}
    [sub-prefix]

      [/sub-prefix]{sub-item}[sub-suffix]

    [/sub-suffix]

  • [/item]
    [root]

[/root]

5. Крім виведення меню категорій за допомогою тегу {catmenu} додано також використання даного тега з користувацькими параметрами. Ви можете використати в даному тезі наступні параметри: {catmenu id=”1,2,3-5″ subcat=”yes” template=”custom” cache=”yes”}, де:

id=”1,2,3-5″ – список ID категорій які необхідно вивести в меню. Ви можете перерахувати кілька категорій через кому або вказати діапазон ID через тире.

subcat=”yes” – даний параметр приймає значення “yes” або “no” і використовується спільно з параметром id даного тега, і вказує, чи потрібно автоматично підключати підкатегорії для зазначеного списку категорій. Наприклад, є категорія з ID 1, у даної категорії є підкатегорії ID 2 і ID 3, то при використанні тегу {catmenu id=”1″ subcat=”yes”} буде виведена категорія 1 і її підкатегорії 2 і 3, а при використанні тегу {catmenu id=”1″ subcat=”no”} буде виведена тільки категорія з ID 1.

template=”custom” – вказується ім’я шаблону, яке буде використовуватися для формування меню замість стандартного categorymenu.tpl

cache=”yes” – даний параметр приймає значення “yes” або “no” і вказує кешувати даний блок чи ні. При включенні кешування, автоматично пропаде можливість керувати підсвічуванням активної показувалася категорії через теги [active] текст [/active] в шаблоні.

Тим самим завдяки даним вище можливостям ви можете сформувати меню на своєму сайті якої завгодно складності і оформлення, і оформив його один раз в шаблоні управляти їм вже в адмінпанелі, в розділі керування категоріями, не вдаючись до ручного редагування шаблонів.

6. Доданий новий глобальний тег {catnewscount id=”X”} для шаблонів. Який виводить кількість публікацій для зазначеної категорії, де X це ID потрібної вам категорії. Даний тег буде корисний для виведення кількості публікацій, у вже сформованих вручну в шаблонах меню на сайтах.

7. Додано використання абсолютно нового парсера коду HTML для публікації на сайті. Даний аналізатор використовується для фільтрації вхідного HTML коду, при написанні новин і статичних сторінок. Новий парсер на відміну від старого, не тільки фільтрує весь введений текст на предмет безпеки HTML коду, але і автоматично виправляє власні помилки в даному коді. Наприклад, закриваються незакриті HTML теги, видаляються помилкові або неправильні стилі CSS, а також виправляються помилки, пов’язані з валідністю введеного HTML коду. Незважаючи на безліч доданих можливостей у парсере, фільтрація HTML коду в ньому проводитися набагато швидше старого парсера (в порівнянні з попередньою версією 11.1)

8. Весь генерується в текстах новин HTML код, з використанням DLE, був переведений на відповідність специфікаціям HTML5 замість застарілого XHTML.

9. Додано повністю нова система зберігання паролів користувачів в базі даних MySQL. Раніше для зберігання хешів паролів використовувалися алгоритми md5, які вже застаріли дозволяють досить швидко підібрати вихідних пароль методом перебору, якщо зловмисники отримали доступ до хешу пароля. Нова система зберігання паролів використовує алгоритм хешування CRYPT_BLOWFISH, і є на даний момент дуже криптостійким алгоритмом. Дане нововведення покликане в першу чергу захистити вихідні паролі користувачів в разі компрометації бази даних, наприклад, у разі якщо зловмисник отримав прямий доступ до бази даних. Т. к. вихідні паролі спочатку не зберігаються в базі даних, заміна хешів паролів буде відбуватися в “м’якому режимі”, по мірі того як користувачі будуть входити на сайт під своїм логіном і паролем на сайт. Тим самим всі існуючі паролі користувачів будуть діяти, а по мірі першого входу на сайт, алгоритм хешування буде замінений. Також нова система зберігання паролів передбачає автоматичне оновлення алгоритмів хешування паролів, у разі появи нових криптостойких алгоритмів в PHP, тим самим хеши паролів завжди будуть зберігатися в безпечному вигляді.

10. Завдяки новій системі зберігання паролів, при об’єднанні аккаунта на сайті з аккаунтом соціальної мережі, вихідні паролі більше не скидаються. Якщо ви були раніше зареєстровані на сайті і авторизувались за допомогою соціальної мережі, то також можете продовжувати користуватися своїм старим паролем для входу на сайт.

11. Додана можливість більш спрощеною вставки флеш роликів і flash плеєрів. Тепер скрипт автоматично призведе код вставки флеша в безпечний вид, замість того видалення його з тексту новини. Незважаючи на те, що флеш вже застарів як технологія, багато сайтів ще їм продовжують користуватися.


12. Додана можливість відновлення забутого пароля безпосередньо на сторінці входу в панель управління скриптом. А також змінена логіка відновлення паролів. Раніше для груп, які мають доступ до адмінпанелі, можна було заборонити відновлення пароля на сайті, в цілях безпеки, маючи на увазі що адміністратори не забудуть паролів від свого ж сайту. Однак, як показала практика, ця категорія осіб все одно має властивість забувати паролі до свого сайту, що створювало проблеми з відновленням пароля і доводилося вручну правити базу даних. Тепер же для всіх користувачів, що мають доступ до панелі управління завжди заборонено відновлення пароля на сайті, однак вони це можуть зробити завжди безпосередньо на сторінці входу в панель управління скриптом. А для того щоб убезпечити від відновлення адміністраторських паролів у випадку, наприклад, крадіжки доступу до e-mail, адреса адмінпанелі завжди можна перейменувати на унікальне ім’я, тим самим доступ для звичайних осіб до цієї сторінці буде недоступний.


13. Для масової розсилки листів та повідомлень в адмінпанелі додана можливість вибору інтервалу дати реєстрацій користувачів, яким будуть відправлені листи. Тим самим ви можете більш гнучко вибрати цільову аудиторію для своїх повідомлень.

14. Для масової розсилки листів та повідомлень в адмінпанелі додана можливість вибору інтервалу дати останнього відвідування вашого сайту користувачем, і тільки підпадають під ці умови користувачам будуть відправлені листи. Тим самим ви можете більш гнучко вибрати цільову аудиторію для своїх повідомлень.

15. Для виведення публікацій в призначеному для користувача форматі тег {custom …} додана можливість вказувати порядок сортування публікацій за датою їх редагування. Для цього використовується параметр order=”editdate”. Наприклад, при використанні тег {custom order=”editdate” sort=”desc” limit=”5″} виведуться п’ять останніх відредагованих новини. Даний висновок буде корисний для виведення блоків новин з новою актуальною інформацією, наприклад, при оновленні посилань в них і т. д.


16. При створенні додаткових полів до публікацій, додана можливість додавати тексти підказок, які будуть виводиться користувачам при додаванні новин. Тим самим ви можете задати інструкції для користувачів, як їх необхідно заповнювати поля в публікації.

17. При створенні додаткових полів до публікацій, додана можливість вказувати яким групам користувачів дозволено заповнювати ці поля при публікації новин. Тим самим ви можете прив’язувати процес публікації полів в новинах не тільки до категорій, але і до груп користувачів.

18. При створенні додаткових полів до публікацій, додана можливість вказувати яким групам користувачів дозволено бачити ці поля в опублікованих новинах на сайті. Тим самим спрощується процес верстки шаблонів, якщо якимось групам заборонений перегляд певних дод. полів, і це можна легко включити і вимкнути безпосередньо в панелі управління.

19. Для шаблону RSS виведення новин (rss.tpl), додана підтримка тегів {image-x} [image-x]текст[/image-x], які виводять URL “X” картинки, і показують текст ув’язнених у них, якщо картинка присутній.

20. Для тегів {image-x} [image-x]текст[/image-x] додана підтримка тексту не тільки з короткого опису новини, але і з тексту додаткових полів у публікації. При цьому нумерація картинок йде спочатку з тексту короткого опису, потім з тексту додаткових полів. Дане нововведення буде корисне для вебмайстрів, які не використовують короткий опис публікації, а картинки публікують в текстах додаткових полів.

21. Для тегів {image-x} [image-x]текст[/image-x] додано ігнорування смайлів, опублікованих у текстах. Наприклад, якщо в тексті публікації були опубліковані смайли, то вони також враховувалися і виводилися цим тегом. Тепер вони повністю ігноруються та не враховуються, а ведеться висновок тільки саме зображень, опублікованих у тексті новин.

22. Додано автоматичне зняття новини з показу в схожий публікаціях, у разі якщо новина знімається з показу на сайті і відправляється на модерацію. Раніше для її зняття з даного блоку необхідно було робити скидання кешу схожих публікацій.

23. Додано автоматичне визначення режиму роботи інтерпретатора PHP на сервері. У разі якщо режим роботи був змінений в налаштуваннях сервера автоматично відключені не підтримувані їм можливості. Наприклад, якщо включений розширений режим авторизації в панелі управління скрипта, а PHP був переключений в режим CGI або FastCGI, в якому даний режим не підтримується сервером, то ця установка буде автоматично відключена, і адміністратор зможе без проблем авторизуватися на панелі управління.

24. Додана можливість підписуватися на коментарі до публікацій, без необхідності залишати коментар на сайті до даної публікації. Для цього в шаблонах виведення повної новини (fullstory.tpl) і додавання коментаря (addcomments.tpl), додані нові теги [comments-subscribe] текст [/comments-subscribe], які виводять текст, ув’язнений в них у вигляді посилання на підписку на повідомлення про нові коментарі. Тим самим відвідувачі сайту можуть підписуватися на коментарі до потрібної публікації, без необхідності написання власного коментаря.

25. Додана можливість використання додаткових полів в розділі зворотного зв’язку на сайті. Для того, щоб додати додаткове поле в форму зворотного зв’язку, вам необхідно лише розмістити необхідне поле з певним ім’ям у формі, після чого воно буде доступне для використання в шаблонах e-mail повідомлень. Для додавання поля в форму, для поля введення необхідно використовувати атрибут з ім’ям: name=”xfield[X]”, де X це ім’я поля, написане латинськими літерами. Наприклад, ви хочете розмістити у формі зворотного зв’язку поле для заповнення номера телефону, для цього в шаблоні feedback.tpl розміщуєте полі:
де tel це унікальне ім’я додаткового поля, а в шаблоні e-mail повідомлень в адмінпанелі розміщуєте тег: {%tel%}, після чого заповнений користувачем номер телефону буде також надсилатися разом з повідомленням. Допускається використання будь-якої кількості додаткових полів.


26. Для розділу керування рекламними матеріалами в адмінпанелі, додана можливість вказувати рекламних матеріалів, на яких пристроях їх потрібно показувати. Ви можете як окремо, так і разом вказати на яких користувацьких пристроях буде показана ваша реклама, це можуть бути комп’ютери, планшети або смартфони. Вказавши потрібні пристрої, ви можете спростити верстку шаблону, і трохи зменшити витрату трафіку, якщо на будь-яких пристроях рекламу дану показувати не потрібно.

27. Для шаблону E-mail повідомлення, яке відправляється при повідомленні про новий персональний повідомленні на сайті, додана підтримка нового тегу {%url%}, який виводить посилання на перегляд даного персонального повідомлення на сайті. Тим самим одержувач листа може відразу перейти за посиланням на перегляд потрібного йому повідомлення.

28. Для системи логування адміністраторських дій, додано логування успішних авторизація користувачів на сайті, що мають доступ до панелі управління скриптом. Раніше фіксувалися тільки невдалі спроби авторизації, і успішні авторизації при переході в панель управління.

29. Для завантаження файлів на сервер з використанням скрипта, додано обчислення розміру і контрольних сум для файлів і подальше їх збереження в базі даних разом з іншою інформацією про файли. І при показі на сайті вкладень для скачування, дана інформація береться з бази даних, а не обчислюється на льоту для кожного показуваного файлу. Дане нововведення істотно знижує навантаження на сервер при публікації великої кількості файлів.


30. Для візуального редактора FroalaEditor додана можливість задавати опису для зменшених копій зображень. Для завдання опису достатньо написати альтернативний текст для картинки по відповідній кнопці на зображенні. Дані описи будуть показуватися при збільшенні зменшених копій до оригінальних копій.

31. Для візуального редактора TinyMCE змінена вставка зменшених копій завантажених зображень. Тепер замість використання ББ тегів в даному редакторі, вставити HTML-код для показу зменшеній копії. Тим самим у редакторі відразу відображається вставлена картинка, і над нею можна робити дії використовуючи можливості візуального редактора, наприклад, задати опис і т. д.

32. В цілях забезпечення більш якісної SEO оптимізації сайту внесено зміни у формування тег [img …]. Тепер для цього тега alt буде заповняться автоматично (у разі відсутності ручного опису) заголовком новини тільки для першої картинки в поле тексту, для всіх інших картинок в даному полі він буде залишатися порожнім. Використання однакових описів для різних картинок може негативно впливати на пошукову оптимізацію, тому якщо треба максимально її поліпшити, задавайте картинок ручні опису. Для вступу цих змін для старих раніше опублікованих новин, необхідно буде запустити перестроювання публікацій в панелі управління скриптом.

33. В цілях забезпечення більш якісної SEO оптимізації сайту і позбавлення від надлишкового коду, для генерації показ зменшених копій зображень внесені зміни. Тепер опис до картинок буде братися автоматично з атрибута alt, даний атрибут не буде автоматично заповнюватися назвою новини у разі відсутності ручного опису. Для вступу цих змін для старих раніше опублікованих новин, необхідно буде запустити перестроювання публікацій в панелі управління скриптом.

34. Для генерованого коду зменшених копій зображень, в цілях забезпечення валідності генерованого коду, прибрано використання атрибуту “rel”.

35. При скачуванні файлів, завантажених через скрипт, додана перевірка параметрів доступу встановлених для різних груп, безпосередньо в налаштуваннях самої публікації у вкладці “Доступ”. Наприклад, якщо для новини заборонений перегляд для певної групи, то і скачування файлів, прикріплених до цієї новини буде заборонено для цієї групи.

36. При скачуванні файлів, завантажених через скрипт, додана перевірка параметрів доступу до різних категорій публікацій, встановлених для даної групи користувачів. Наприклад, якщо користувачам певної групи, заборонена до перегляду якась категорія, то й скачування прикріплених файлів з публікацій даної категорії також буде автоматично заборонено для даних користувачів.

37. Для модуля перехресних посилань покращена система визначення посилань на самих себе, при яких автозаміна не проводиться. Раніше посилання потрібно було писати в повному форматі, включаючи домен, наприклад http://site.com/test/1-test.html і тільки тоді заміна на такий сторінці не проводилася, тепер достатньо написати скорочений її варіант, без вказівки домену /test/1-test.html і при відвідуванні цієї сторінки, заміни для ключового слова проводиться не буде. Дане нововведення буде корисно при використанні на сайті одночасно різних протоколів http та https, а також при використанні на сайті декількох доменів дзеркал.

38. При додаванні нової категорії в масових діях, в розділі управління публікаціями в адмінпанелі, доданий контроль присутній додається категорія вже в публікації, якщо так, то її повторне додавання не здійснюється. Дане нововведення дозволяє уникнути помилкового повторного додати категорії для публікації.

39. Покращена система обробки додаткових полів публікацій, при їх виведенні на сайті в шаблонах. Тепер для того щоб поля оброблялися, необов’язково виводити значення цих полів шаблонів. Дане нововведення буде зручно для вебмайстрів, які використовують різні умови, зазначені в полях, для формування потрібної верстки шаблону, а не сам висновок цих полів у шаблоні.

40. Покращена робота випадає меню в адмінпанелі, таким чином, щоб вони не виходили за межі екрану при недостатньому місці по висоті.

41. Внесені зміни в порядок сортування завантажених зображень на сервер. Раніше при завантаженні зображень на сервер, вони сортувалися в порядку їх завантаження на сервер, а після видалення будь-якого з картинок вони отсортировывались в алфавітному в порядку, що призводило до плутанини, у разі якщо картинок для публікації дуже багато, і ускладнювало їх пошук для вставки в публікацію. Тепер при завантаженні зображень на сервер, вони також відображаються у тому ж порядку, що і були завантажені на сервер, а при видаленні будь-який з картинок даний порядок також повністю зберігається.

42. Покращена система контролю невірних ЧПУ. У разі якщо посилання, що вказує розбиття на сторінки, при перегляді головною або категорій, не закінчується слешем, то буде зробить редирект на неї ж, але з закриттям слешем. Наприклад, раніше при некоректній посиланням на перегляд категорії: website.com/test/page/3 без закриває слеша редирект здійснювався на website.com/test/, то тепер редирект буде здійснено на website.com/test/page/3/ і користувач залишиться на потрібній сторінці.

43. Покращена сумісність скрипта з MySQL лінійки 5.7.x

44. Оновлені візуальні редактори TinyMCE і FroalaEditor до актуальних версій. Були виправлені численні помилки в роботі даних редакторів, з різними браузерами.

45. Виправлена проблема, при якій не зберігався повний шлях до завантаженого аватару, при використанні авторизації через соціальні мережі, що могло призводити до проблем при показі аватара якщо використовується декілька різних доменів і сайтів з єдиною реєстрацією користувачів.

46. Виправлена проблема, при якій могла іноді відбуватися невірна вибірка публікацій, якщо використовується тег {custom …} в комбінації різних декількох параметрів.

47. Виправлена проблема, при якій могло відбувається некоректне відображення додаткових полів “Галерея зображень”, у разі якщо різні дод. поля виводяться одночасно шаблону повної новини (fullstory.tpl) і загальному шаблоні (main.tpl)

48. Виправлена проблема, при якій могла виникати помилка “Надто довге значення поля” для полів, які автоматично генеруються скриптом. Наприклад, для метатегів опису.

49. Виправлена проблема, при якій не оновлювався код рекаптчи після успішного додавання коментаря на сайт.

50. Виправлені виявлені і заявлені раніше невеликі помилки в скрипті.
51