Json intitle datalife engine панель управления. Установка DLE. Данные для доступа к MySQL серверу

Новость на DLE без загрузки и без обновления страницы!
Особенности модуля:
Не требует каких-либо правок движка. Учёт прав доступа к новости. Если пользователю по каким то причинам запрещено просматривать полную новость в настройках - он не сможет её посмотреть. Подсчёт количества просмотров. Модуль учитывает настройки DLE и если требуется - засчитывает просмотр новости. Корректная очистка кеша модуля. Кеш модуля очищается в соответствии с правилами автоочистки кеша DLE, поэтому в быстром просмотре новость будет всегда актуального содержания. Поддержка всех тегов. Модуль поддерживает все теги шаблона fullstory.tpl. Если тег не нужен в быстром просмотре - вместо него будет пустота. (форма добавления комментариев, сами комментарии). Кеширование на стороне клиента. Модуль отдаёт правильные заголовки. Если включено кеширование на сайте и пользователь повторно вызовет быстрый просмотр новости - браузер получит в ответ 304 статус и отдаст пользователю закешированную (в браузере) страницу. Установка:
Распаковать содержимое папки upload в корень сайта.
В нужном месте любого шаблона вставить минимальный код: Быстрый просмотр

Где {news-id} - ID новости (обязательный параметр).
Так же можно использовать дополнительные атрибуты:
Быстрый просмотр
data-afs-template="mytemplate" - путь к шаблону модуля относительно текущей папки с шаблоном сайта.

По умолчанию: **{THEME}/ajax/fullstory**. (Необязательный параметр).
data-afs-preset="mypreset" - путь к файлу с настройками модуля. По умолчанию не используется.
3. В js файл шаблона вставить:
$(document).on("click", "", function () { var $this = $(this), $data = $this.data(); $.ajax({ url: dle_root + "engine/ajax/full-story.php", type: "GET", dataType: "html", data: { newsId: $data.afsId, // Обязательная переменная preset: ($data.afsPreset) ? $data.afsPreset: "", // Название файла с настройками (необязательно) template: ($data.afsTemplate) ? $data.afsTemplate: "", // Название файла с шаблоном (необязательно) }, }) .done(function (data) { var $html = $(data); // Данные получены, можно заняться разбором и показать их в диалоге // Ниже простейший пример вывода контента в стандартном модальном окне DLE var modalId = "afs-" + $data.afsId + "-" + $data.afsPreset + "-" + $data.afsTemplate; modalId = modalId.replace(///g, "-"); var $modalBlock = $("

"); $modalBlock .appendTo("body") // Добавляем блок на страницу.find("#" + modalId) // Ищем интересующий нас селектор.html($html) // Вставляем в него полученный код.dialog({ // Показываем модальное окно width: 800 }); }) .fail(function () { console.log("full-story error"); }); }); 4. В CSS-файл шаблона вставить код для стилизации выводимых ошибок:
.afs-error { /*Общий стиль для всех ошибок*/ padding: 20px; background: #fff; color: #424242; } .afs-news-error { /*Стиль ошибки, если новость не найдена*/ background: #eceff1; } .afs-tpl-error { /*Стиль ошибки, если не найден шаблон*/ color: #b71c1c; } .afs-perm-error { /*Стиль ошибки, если не достаточно прав для просмотра полной новости*/ background: #e65100; color: #F5F5F5; }
Готово! Не забудьте подправить JS и CSS код под оформление своего сайта.
Параметры, принимаемые модулем:
Модуль принимает через GET-запросы следующие параметры:
newsId - обязательный параметр. ID новости для показа.
template - путь к шаблону модуля относительно текущей папки с шаблоном сайта.
Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта.
По умолчанию: {THEME}/ajax/fullstory
preset - путь к файлу с настройками модуля. По умолчанию не используется.
Настройки модуля:
Настройки модуля хранятся в отдельном файле, это сделано для безопасной передачи настроек и уменьшения нагрузки на хостинг.
Для хранения настроек был выбран формат шаблона т.к. его можно отредактировать через админпанель.
При формировании настроек необходимо соблюдать следующий синтаксис:
- Параметры необходимо писать по одному в строке.
- Имя параметра и его значение необходимо разделять знаком равенства.
На данный момент возможно использование следующих параметров:
fields - поля, отбираемые из БД.
Доступны следующие поля для запроса: short_story, full_story, xfields, comm_num, fixed, tags.
Так же можно использовать поле all, тогда будут отобраны все возможные поля новости из БД. Аналогичный результат будет, если не передавать в модуль переменную preset или передать её пустой.
cachePrefix - префикс кеша, создаваемого модулем. По умолчанию full. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот парамер.

The following changes have been prepared and implemented:

1. Control Panel has been completely redesigned. We made it modern, readable and contrasting. Besides visual changes the new design also has a number of functional features. The new control panel has ten color schemes to choose from, not just one, and a special night template designed in dark colors for comfortable work in the dark. You can adjust the width of the sections side bar and width of the whole control panel. You also can enable a full-screen mode when working on devices with small screen sizes, hiding the browser bar and tabs to increase the working space of the panel. Each user of the Administration Panel can configure its custom look, its parameters and the color scheme. A special dual system for settings storage is used to save parameters of the panel. The settings are saved both on the server and locally in a browser providing unique features when using the control panel settings. Server-based saving of settings allows to avoid the "flickering" effect when applying the user"s custom design, and also to automatically apply selected settings when using another browser. Whereas storing the settings locally allows you to restore the selected settings after a parameters reset on the server, for example, in case of engine re-installation or after its global update. We hope that you will enjoy the new control panel. You can see a small demo of the new panel in the video above.

2. A short preview of the latest personal messages has been added to the control panel . Thus, the user can quickly open the message directly from the control panel.3. This feature allows you to choose the action right after the article is published. You can choose between: "Add another article," "Edit article," "Go to articles list." It allows you to go to the most frequently used actions in one click.

4. This feature allows you to choose the action during the editing right after the article is saved. You can choose between: "Back to article edit" and "Go to articles list." Thus, users who frequently save text of the article during editing can quickly go on edit after saving.

5. Now you can enable a function in Static Pages section of Control Panel which allows you save the location of a user on a website before editing or adding the page. It allows to return user back to the previous location. This feature is useful when there is a large number of pages or setting any search parameters. After editing the user will not have to search or go back to the needed page manually.

6. This feature allows you to choose the action right after you saved a page. You can choose between: "Add another page", "Edit page", "Go to list of pages". It allows you to go to the most frequently used actions in one click.

7. This feature allows you to choose the action during the editing right after the page is saved. You can choose between: "Back to page edit" and "Go to pages list." Thus, users who frequently save text of the page during editing can quickly go on edit after saving.

8. A new feature of highlighting of articles, comments, static pages, etc. In Administration Panel is added to perform mass actions on them. It allows to easily distinguish chosen elements.

9. User profiles edit has been completely redesigned in Administration Panel. Now you can edit all the profile parameters which previously were available only through profile edit on the website.

10. A new Meta Tags module is added. This module allows you to reassign title, description, keywords meta tags for certain pages of the site in the Administration Panel. DLE engine automatically generates meta tags for all pages of the site, however you can reassign meta tags for any pages. For example, you can assign specific values for meta tags for the feedback page, rather than use general values from the engine settings. Now, with this module, you can do it in Administration Panel of your website. In this module you specify the URL of the page for which you want to reassign the meta tags and specify new values for these tags. After that, the specified values will be applied to this page. You can reassign all the tags together and separately. For example, if you leave the keywords field empty, the default values ​​for that field and for that page will be applied. You can specify the address of the page for which you want to change meta tags, and also you can specify a URL group using the "*" character which stands for search by any set of characters. E.g., if you specify /page/*/, then specified meta tags will be used for pages /page/1/, /page/2/, /page/any text/, etc.

11. Now you can export users from the website. If you use third-party services or programs for organizing mailings for users, then with using the export you can quickly generate the necessary data. Users export is done in Administration Panel in User Edit section. You can export both all users and users selected by criteria. You can export the list either in CSV or Exel format.12. You can transfer articles to other categories at the certain time. To do this you need to choose "Move to another category" action in "Expiration before" option when adding or editing an article, and assign one or more categories where you want to move articles to when the given time is reached.13. You can exclude certain articles from the site search results. When adding or editing articles in Administration Panel, you can check "Exclude from search" option for each publication separately. Thus, you can exclude article from search results.

14. Now you assign a password or a list of passwords for each article to view it. If a password is set for an article, then it will be asked to be entered to get an access to a full version of the article and the article will be shown only if the correct password is entered. The entered password will remain in effect until the user closes the browser, and the password will not be requested again within the same session on the site.

15. You can exclude certain static pages from the site search results. When adding or editing a page in Administration Panel, you can check "Exclude from search results" option for each static page separately.

16. Now you assign a password or a list of passwords for each static page to view it. If a password is set for a static page, then password will be asked to open the page and it will be opened only if the correct password is entered. The entered password will remain in effect until the user closes the browser, and the password will not be requested again within the same session on the site.

17. Autosuggestion for extra fields which have the type of "cross-references" when adding and editing publications is added. Words list for autosuggestion is obtained from the database. It makes it easier to fill these fields in, and also reduces the probability of an error in words.

18. You can use masks to specify a template for redirects in Redirects module. When specifying URL to perform redirect from, you can specify the "*" character which means that any set of symbols may be instead of "*". E.g., you can specify /page/*/ to set redirect from pages like /page/1/, /page/2/, /page/any text/, etc.

19. Now you can quickly switch to editing a group of a specific user.

20. For static page templates (static.tpl and other assigned pages), the new tag text is added, which displays the enclosed text as a link to edit the static page for user groups who are allowed to edit static pages. This allows to quickly move to editing the needed page, when there is a large number of static pages.

21. A new parameter "id_as_list" is added for custom articles tag {custom...} that works in conjunction with the "id" parameter, and sorts the publications as they appear in the list. For example, the tag {custom id = "3,4,1,2" order = "id_as_list"} will display articles first with ID 3, then 4, then 1, and 2. This feature is useful when you want to display the required articles in a strictly defined order.

22. A new parameter "id_as_list" is added for custom comments tag {customcomments...} that works in conjunction with the "id" parameter, and sorts the comments as they appear in the list. For example, the tag {customcomments id = "3,4,1,2" order = "id_as_list"} will display comments with ID 3, then 4, then 1, and then 2. This feature is useful when you want to display the required comments in a strictly defined order.

23. You can allow to attach video in comments using the tags in user group settings . This option is used to allow or deny certain user groups to attach video in comments.

24. You can allow to attach media widgets in comments using the tags in user group settings . This option is used to allow or deny certain user groups to attach media widgets in comments.

25. Changes have been made to quick editing of articles. Now in quick editing mode only those fields are shown that were previously filled in during article adding or full editing mode. This applies to both the article annotation and full article fields. If the article annotation and full article fields have not been filled in, they will not be displayed in quick edit mode. This feature is useful for those who use only extra fields in articles. They will not see unnecessary fields.

26. You can remove such fields as "article annotation" and "full article" from the article addition template , while retaining all other functionality of editors. This feature will be useful for those who use just extra fields to add articles.

27. A new global tag for the {category-id} templates is added which allows to display the ID of the category viewed by the visitor. This tag will be useful when organizing the menu on the site and when you need to quickly reassign any CSS classes or the names of template files, when you edit articles display templates.

28. A new global tag {category-title} is added for templates , which allows to display the name of the category viewed by the visitor. This tag will be useful when you need to display the name of the category you are viewing.

29. You can specify a full description for categories. The description is created in the Administration Panel when adding or editing categories in the corresponding section. In the description of the category you can use both BBCODES tags and HTML tags. A new global template tag {category-description} is used to display the description on the site when the user views the category. It is also available when displaying full descriptions. Thus, you can display the category name and its description using a simple expression, for example: {category-title}
{category-description} You can limit the output of this information using additional tags , for example, only on the first page of the category.

30. You can use a new "only" value for the "subcat" parameter of the output tag {catmenu ...} of the category menu , which allows to display only subcategories of the specified category. For example, if you use the {catmenu id = "1" subcat = "only"} tag, only the subcategories of the category with ID "1" will be displayed. This feature is useful to display only subcategories of a certain category. For example, you can automatically display a list of subcategories from the viewed category using the simple expression {catmenu id = "{category-id}" subcat = "only"} .

31. Now you can exclude the selected category from search results in the Category Settings of Control Panel . Thus, you can set visibility of each category in search results. If the category is excluded from the search results, then articles from this category will not be displayed there when you search for articles.

32. Now you can display the uploaded images separately for extra fields of "Image Gallery" type . For this the tag is used in templates, where "X" is the name of the extra field, and "Nr" is the number of image from the gallery. For example, if you apply , then image number two will be displayed and loaded into an additional field named "test". Thus, you can use one field, and at the same time display a preview from the gallery in one picture in article annotation, and full gallery when viewing the full article.

33. Now you can safely use {titlе} tag in HTML attributes when displaying articles. For example, you can use alt="{titlе}" and the text will preserve the validity of the document if the header contains quotation marks.

34. Support for attaching videos and posts from Facebook has been added for tag .

35. Gzip compression for CSS files used by the engine is added , which allows to significantly reduce the size of CSS files, and therefore to speed up the loading of pages. Compression can be enabled together with the compression of JS files in the engine settings. When you enable compression, only DLE engine’s own CSS files are compressed. To compress your own CSS files of your template, see our article https://dle-news.ru/tips/917-szhatie-css-fajlov-shablona.html

36. Now you can enable automatic reset of the browser cache for CSS and JS files used by the engine after its update . This feature allows the browser to use the newest files after the engine update, not use the old ones from the browser cache.

37. Tag {THEME} is now supported in promotional materials preview in the engine control panel.

38. A visual highlight is added for the number of characters entered into the field, and the number of allowed symbols left when adding any data in Administration Panel . This feature allows to visually see the maximum amount of symbols available for the field.

39. If the protocol of your site is not specified in the engine settings , DLE will use a secure SSL connection and will generate links to HTTPS protocol starting from this engine version.

40. Preventive measures are added to protect the site from "endless" redirects if only HTTPS protocol is enabled in the engine settings and the server is not configured properly and does not transmit information about the used protocol.

41. Preventive measures are added for the word filter section to protect against accidental deletion of words from the word filter in Administration Panel . Now this action requires confirmation.

42. 403 HTTP code (access is denied) is sent to the browser for personal article bookmarks pages if an unregistered user goes to the bookmark address. Thus the page’s data will not be indexed by the search engines. Search engines are not indexing a page with just one access error.

43. The database load has been significantly reduced when displaying the latest comments on websites with a large number of comments.

44. The display of the tag cloud block is optimized for databases with a large number of articles on the site. The database query is improved and speeded-up.

45. Support for curly braces "{" and "}" in the "Word Filter" module is added and now you can use words containing these symbols in the filter.

46. Articles from the site map are automatically hidden from search engines if access to the article is denied for guests in "Access" tab of the article.

47. Froala and TinyMCE editors have been updated. Previously found issues are fixed in both of them.

48. HTML code parser for published articles is updated .

49. An issue with the incorrect CRON notification of search engines about the site map updates is fixed when the site name was specified without a protocol in the engine settings.

50. An issue is fixed where visual editors could not be displayed on the article publication page if there were "custom" tags on the page.

51. An issue is fixed where the visual editor could not load during quick editing if articles display was done only by {custom …} tag, without using the main {content} tag.

52. An issue is fixed where the merged text was sent without line breaks in e-mail notifications about new comments or personal messages.

53. An issue is fixed where line breaks were lost in empty lines when using the TinyMCE editor for articles.

54. An issue is fixed where some template tags for static pages were displayed incorrectly when displaying static pages in search results.

55. All previously declared and found small errors are fixed.

Information on the engine installation for clients:

Attention! This information is only available to users with a valid license for DataLife Engine. If you have already purchased the script, you must log in with your account.


If you are not a customer, you can on our website.

Были подготовлены и реализованы следующие изменения:


1. Добавлена возможность загружать на сервер изображения к публикуемым на сайте комментариям. Данная возможность включается и настраивается в настройках групп. Для каждой группы пользователей вы можете разрешить или запретить загрузку изображений к комментариям. Также для каждой группы вы можете задать различные отдельные параметры для загружаемых изображений, например, максимальное количество загружаемых изображений к комментариям, их размеры и вес и т.д. При загрузке изображений к комментарям пользователю доступна упрощенная форма загрузки комментариев, и изображения загружаются согласно заданным в настройках групп параметрам. Пользователю при этом доступно управление своими загруженными изображениями. Он может их удалить или заменить, если ему разрешено редактировать свои комментарии.

2. Добавлена поддержка движка InnoDB для базы данных MySQL. При установке скрипта вы можете выбрать, какой тип хранения использовать. Для выбора доступно использование либо InnoDB либо MyISAM . При выборе движка мы рекомендуем руководствоваться следующими критериями. Если ваш сайт будет редко обновляться новым контентом (регистрация большого количества пользователей, активное добавление новых комментариев и т.д.) т.е. сайт "справочник", то рекомендуется использовать MyISAM тип, он быстрее при выборке из базы данных. Если на сайте планируется активное обсуждение чего-либо большим количеством пользователей, то рекомендуется использовать InnoDB тип. Для большинства сайтов оптимальным выбором будет именно InnoDB, т.к. в будущем он более легко масштабируется. Выбор движка базы данных доступен только если на вашем сервере установлена версия MySQL не ниже чем 5.6.4. Если версия MySQL сервера ниже, то доступно использование только MyISAM.

3. Добавлена возможность создания и использования плейлистов при воспроизведении видео на сайте. Для этого видеофайлы просто перечисляется в теге video через запятую. Например:
4. Добавлена возможность создания описания, для видео которое будет видно при показе в плеере, для этого в теге вставки видео используется следующий формат: , тоже самое можно задать для всех файлов если используется плейлист файлов, добавленный через запятую. Пример отображения вы можете увидеть на скриншоте выше.

5. Добавлена возможность использовать в теге , также ссылки на видео в сервисе Youtube. Тем самым вы можете организовывать смешанные плейлисты включающие в себя ваше видео и видео на сервисе Youtube.

6. Добавлена возможность создания и использования плейлистов при воспроизведении аудио на сайте. Для этого аудиофайлы просто перечисляется в теге audio через запятую. Например:
7. Добавлена возможность создания описания , для аудио которое будет видно при воспроизведении музыки в плеере, для этого в теге вставки аудио используется следующий формат: . Пример отображения вы можете увидеть на скриншоте выше.

8. Для аудио проигрывателя добавлена возможность добавления ссылок для воспроизведения потокового аудио. Тем самым вы можете задавать и выводить плейлисты для прослушивания на своем сайте радиостанций.

9. В настройки проигрывателей, в админпанели, добавлена возможность выбора темы для плеера. Для выбора доступна либо темная, либо светлая тема для плеера, что делает отображение плеера на вашем сайте более органичным.

10. Улучшена процедура вставки видео и аудио материалов в редакторах. При добавлении видео, вы можете сразу создавать плейлисты, а также вы можете сразу задать в окне ввода не только ссылку на видео и аудио, но и ссылки к постерам для них, и описание для видео и аудио файлов.

11. В состав DataLife Engine добавлен новый WYSIWYG редактор. Название нового редактора FroalaEditor. Данный редактор обладает легким и понятным интерфейсом (на наш взгляд лучшим интерфейсом) для создания и редактирования контента, HTML код генерируемый им является одним из самых чистых и не имеет практически ничего лишнего, имеет относительно небольшой вес обладает быстрым рендерингом редактора на странице.

12. Добавлен новый тип для дополнительных полей публикаций: "Загружаемая галерея изображений". При создании данного типа поля вы можете задать параметры для загружаемых изображений, а также максимальное количество изображений, которое может быть загружено для данной галереи. При добавлении публикации в админпанели или на сайте изображение можно будет загружать в один клик. При выводе данного поля на сайте, изображения будут группироваться в галерею картинок, которые также можно перелистывать между собой при просмотре, в случае если для картинок были созданы уменьшенные копии.

13. Для дополнительных полей, имеющих тип "Загружаемое изображение" и "Загружаемый файл", добавлен автоматический запрет на повторную загрузку изображений и файлов, до тех пор, пока предыдущее загруженное изображение или файл не будут удалены. Тем самым снижается вероятность прикрепления к новости, не использующихся файлов и изображений.

14. Для дополнительных полей, имеющих тип "Загружаемое изображение" добавлены новые теги: и , которые выводят только URL для уменьшенной копии загруженного изображения и URL для полного изображения соответственно, где "X" это имя дополнительного поля. Данные теги будут полезны для вебмастеров, которые хотят персонального оформления загруженных публикаций на сайте, например, совместно с другими дополнительными полями.

15. Для дополнительный полей, имеющих тип "Переключатель Да или Нет", добавлена возможность назначения состояния «Включено» или «Выключено» по умолчанию, которое будет использоваться при добавлении новой публикации.

16. Добавлена возможность онлайн просмотра документов, загружаемых на сайт через скрипт DataLife Engine. Для этого в шаблон вывода загруженных файлов (attachment.tpl) были добавлены следующие теги: {online-view-link} который выводит ссылку URL на просмотр документа онлайн в браузере, а также теги текст , которые выводят заключенный в них текст, если загруженный документ имеет поддерживаемый для просмотра формат. Для онлайн просмотра поддерживаются следующие типы документов: Adobe PDF, Microsoft Word, Microsoft Excel. Просмотр документов происходит непосредственно в браузере посетителя, при помощи сервиса Google Docs Viewer, поэтому посетителям не нужно иметь установленные программы от Microsoft или Adobe.

17. В связи с тем, что разработчики WYSIWYG редактора LiveEditor решили прекратить какие-либо работы по данному редактору, и он уже не получал несколько лет каких-либо обновлений, было принято решение убрать данный редактор из состава DataLife Engine. Сайты, которые ранее использовали данный редактор, будут автоматически переключены на использование редактора FroalaEditor.

18. Добавлена возможность задать описание изображений (атрибут alt) при массовой вставке изображений в новость. Для этого вам нужно выбрать нужные изображения, и кликнув по любому из них, задать описание. После чего нажать на кнопку "Вставить выбранное". Заданное описание будет также добавлено для всех картинок при вставке.

19. Добавлен автоматический сброс кэша Zend OPCache при изменении настроек сайта. Тем самым, при включенном данном кешировании в настройках сервера, вам не нужно самостоятельно сбрасывать кэш, или ждать пока изменения вступят в силу.

20. При просмотре списка категорий в админпанели, в разделе редактирования категорий, изменен вид отображения списка категорий. Теперь все подкатегории показываются в свернутом виде, и могут быть открыты непосредственно при необходимости для конкретной родительской категории. А также добавлены кнопки, благодаря которым можно быстро в один клик развернуть или свернуть все категории в списке. Добавление новой категории осуществляется в всплывающем окне. Тем самым упрощается работа с большим количеством категорий и подкатегорий в админпанели.

21. Добавлена возможность отписать всех пользователей, подписанных на комментарии, для каждой новости отдельно. В случае если у новости есть подписанные пользователи, то при редактировании данной новости в панели управления, во вкладке "Дополнительно", вы можете увидеть количество подписчиков и отписать их от комментариев к данной конкретной публикации. Данное нововведение будет полезно, например, если новость закрывается от дальнейшего комментирования.

22. Добавлена возможность подписываться на комментарии к новости, при публикации комментария, даже когда комментарий уходит на модерацию.

23. В профиле пользователя на сайте, добавлена возможность отписаться от подписанных комментариев к публикациям, с указанием количества публикаций, на которые подписан пользователь. Для этого в шаблоне userinfo.tpl {unsubscribe} , который выводит чекбокс на отписку от комментариев, и количество подписанных публикаций.

24. В профиле пользователя на сайте, добавлена возможность автоматически подписаться на получение уведомлений о новых комментариях, которые добавляются к новостям, автором которых он является. Тем самым пользователю не нужно подписываться отдельно на каждую свою новость, достаточно отменить соответствующий чекбокс в настройках своего профиля. Для вывода чекбокса, в шаблоне userinfo.tpl добавлено использование нового тега {news-subscribe} .

25. В профиле пользователя на сайте, добавлена возможность автоматически подписаться на получение уведомлений о новых комментариях, которые являются ответами на его собственные комментарии. Для этого достаточно отменить соответствующий чекбокс в настройках своего профиля. Для вывода чекбокса, в шаблоне userinfo.tpl добавлено использование нового тега {comments-reply-subscribe} .

26. Добавлена поддержка расширения PHP Memcached. Скрипт DLE автоматически определяет какое именно расширение PHP установлено, Memcache или Memcached на сервере, и в зависимости от этого использует то или иное PHP расширение, в случае если в настройках скрипта включено Memcache кеширование. Тем самым больше нет необходимости ставить на сервер именно расширение PHP Memcache.

27. В админпанели, в разделе редактирования публикаций, в список массовых действий над публикациями, добавлена возможность добавления категорий к публикациям. В отличии от существующего пункт "Изменить категории", пункт "Добавить категорию", позволяет массово назначить публикациям новые выбранные категории, без изменения старых, ранее добавленных категорий.

28. Для шаблонного тега Текст добавлена возможность указать диапазон новостей с использованием символа тире. Например, вы можете указать Текст Текст . Тем самым облегчается создание нужного вам оформления, и не нет необходимости прописывать все ID нужный публикаций через запятую.

29. Для шаблонного тега Текст добавлена возможность указать диапазон нужных страниц с использованием символа тире. Например, вы можете указать Текст . Аналогично диапазон можно задать и для противоположного тега Текст . Тем самым облегчается создание нужного вам оформления, и не нет необходимости прописывать все номера нужных вам страниц через запятую.

30. Добавлена возможность отписываться пользователям сайта от рассылок писем, которые отправляются с раздела "Рассылка сообщений" админпанели. Для этого при рассылке писем, вы можете задать либо в шаблоне, либо непосредственно в тексте сообщения тег {%unsubscribe%}, который выводит в отправляемом письме URL на отписку от получения рассылки для пользователя. При переходе по данной ссылке, для профиля пользователя, устанавливается статус "Не получать писем с сайта". При этом, пользователю достаточно просто пройти по ссылке, ему не нужно авторизовываться или производить какие-либо другие действия на сайте. Тем самым он может легко отписаться от писем с сайта, если он давно потерял интерес к сайту. Несмотря на то что рассылка писем позволяет все равно отправить сообщение пользователю, даже если он изъявил желание не получать писем. Мы настоятельно рекомендуем вебмастерам, во избежание попадания сервера в спам фильтры, всегда при рассылке сообщений учитывать статус, который пользователь установил в своем профиле.

31. Добавлено автоматическое добавление для всех внешних ссылок, которые публикуются в новостях и комментариях, атрибута rel , содержащего в себе параметры "external noopener noreferrer" . Данный атрибут позволяет снизить вероятность возможной атаки на сайт с использованием механизмов социальной инженерии.

32. В настройки скрипта, добавлена возможность указания количества дней, в течение которых кешировать полную новость после ее публикации. Создание и обновление кэша, эта тоже ресурсоемкая операция. По истечении времени, публикация также теряет свою популярность, и если она не часто читается, то создавать и контролировать кэш постоянно для нее нецелесообразно. Если на вашем сайте публикуется мало новостей, то вы можете увеличить количество дней в течении которых кешировать, если много, то уменьшить. В любом случае мы не рекомендуем устанавливать время кеширования менее 30 дней. Небольшое количество дней используйте только если есть проблемы с свободным местом на жестком диске сервера, либо если публикуете очень большое количество новостей в месяц. А вот тем, у кого немного новостей на сайте, мы рекомендуем увеличить это значение.

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

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

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

36. Улучшено быстродействие работы вывода новостей при использовании сортировок по рейтингу и просмотрам. Также улучшено быстродействие вывода комментариев, использующих сортировку по рейтингу.

37. Улучшена система учета количества комментариев пользователя в статистике его профиля. При массовом удалении новостей происходит также автоматический пересчет и комментариев пользователей. Тем самым отпадает необходимость периодического пересчета статистики.

38. Проведена оптимизация отображения админпанели DataLife Engine на мобильных устройствах в портретной ориентации. Тем самым панель управления стала более удобной при ее использовании на смартфонах.

39. Библиотека Jquery была обновлена до линейки 2.xx

40. Обновлен редактор TinyMCE до актуальной версии.

41. Исправлена проблема, при которой было невозможно использовать точку в доп. полях, имеющих тип перекрестных ссылок.

42. Исправлена проблема, при которой формировалась невалидная верстка HTML комментариев при использовании древовидных комментариев.

43. Исправлена проблема, при которой для тега {category-url} выводился URL на категорию с использованием ЧПУ, независимо от настроек ЧПУ в админпанели скрипта.

44. Исправлена проблема, при которой происходило дублирование индексов дополнительных полей, имеющий опцию перекрестных ссылок, в случае если новость публикуется в несколько категорий.

45. Исправлена проблема, при которой некорректно работали теги текст и текст для главной страницы, в случае если в настройках скрипта была включен показ статической страницы на главной в качестве основной.

46. Исправлена проблема, при которой если в разделе редактирования публикаций производилась очистка новости от комментариев, то происходил всегда возврат на первую страницу раздела редактирования новостей, независимо от выставленных фильтров поиска и показа публикаций для редактирования.

47. Исправлена проблема, при которой невозможно было ввести правильный ответ на систему "Вопрос-Ответ", в случае если пользователь отвечает на комментарий, а не добавляет новый.

48. Исправлены обнаруженные и заявленные ранее небольшие ошибки в скрипте.

Информация к скачиванию скрипта для клиентов:

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

Если вы еще не являетесь нашим клиентом, то вы можете на нашем сайте.

Обсудить релиз вы можете на

Здравствуйте. Данный топик хочу посветить созданию простейшего модуля для популярной CMS Datalife Engine . В России, как впрочем и в странах СНГ она пользуется достаточно большой популярностью, однако на хабре статей об этой cms почему-то до сих пор нету. Я попытаюсь исправить это недоразумение. В этой статье вы узнаете о том, как сделать простейший модуль для этой CMS, а также познакомитесь со структурой движка.

Введение

Хотелось бы отметить, что система пользуется спросом у сайтов развлекательной тематики. Оно и понятно, система проста в использовании, имеет достаточное количество модулей и шаблонов. Да и почти все нужное есть «из коробки». Однако бывает, что чего-нибудь не хватает. Эту проблему мы постараемся решить.

Почему DLE?

Вы наверняка заинтересуетесь, почему я выбрал именно эту CMS. Ответ простой: достаточно логичная структура самого движка, отделение шаблонов от кода, довольно простой шаблонизатор, опять же довольно логичное размещение всего внутри - легко разобраться что к чему. Плюс к этому система остается относительно легкой и удобной. Она не так функциональна как, например, Друпал, но все же мне она нравится.

Структура

Для начала нам нужно знать кое-что о структуре движка. Нельзя творить на сервере бардак, поэтому мы будем хранить все в своих папках.

Модули для работы движка принято помещать в папку /engine/modules/ .

В папке /engine/inc/ находятся файлы панели администратора.

Начиная с версии 8.х появилось подключать модули прямо в шаблоне. Шаблон находится в папке /templates/имя_шаблона/. В этой папке есть файл main.tpl Это корневой файл шаблона, обычно в нем расположена основная структура шаблона. Обычно модуль можно подключить так:

{include file=«engine/modules/mod_category.php»}

Где mod_category.php – файл, находящийся в категории /engine/modules/. Думаю с этим все понятно, поехали дальше.

Давайте сделаем модуль для вывода последних комментариев с кэшированием. Для этого создадим файл в папке /engine/modules/ и назовем его mod_lastcomm.php Далее я привожу листинг кода этого файла с подробными комментариями.

Код

DATALIFEENGINE". Эта константа определяется в index.php и ее значение TRUE символизирует о том, что файл подключен с помощью include/require, а не просто запущен. */ if(!defined("DATALIFEENGINE")) { die("Hacking attempt!"); } /* Подключаем класс api, для того чтобы нам можно было использовать функции для работы с кэшем. */ include ("engine/api/api.class.php"); /* Пытаемся прочетать информацию, сохраненную в кэше с именем lastcomm. Рекомендую давать осмысленные имена всему тому, что мы сохраняем в кэше. По сути lastcomm – это файл в папке /engine/cache/, а 60 – это время жизни кэша в секундах. В данном случае, если с создания файла прошло больше времени, чем 60 секунд, то нам снова придется лезть в бд. */ $lastcomm=$dle_api->load_from_cache("lastcomm", 60); /* Проверяем – есть у нас кэш или нету. Если нету, то лезем в бд. */ if (!$lastcomm) { /* Собственно запрос в бд. Он выполняется с помощью функции класса $db. Константа PREFIX содержит префикс, указанный при установки cms. Названия столбцов названы вполне нормально, я думаю не нужно объяснять что они делают. Индефикатор запроса заносим в переменную $sql. */ $sql = $db->query("SELECT comments.post_id, comments.text, comments.autor, post.id, post.flag, post.category, post.date as newsdate, post.title, post.alt_name FROM " . PREFIX . "_comments as comments, " . PREFIX . "_post as post WHERE post.id=comments.post_id ORDER BY comments.date DESC LIMIT 0,20"); /* С помощью функции get_row() класса $db считываем последовательно каждую строку из результатов выборки. Информация заносится в массив $row с индексами равными именам полей таблиц */ while ($row = $db->get_row($sql)) { /* Если нужно обрезаем заголовок новости */ if (strlen($row["title"]) > 50) { $title = substr($row["title"], 0, 50)."..."; } else { $title = $row["title"]; } /* Формируем ссылку на профиль пользователя. Аналогично */ $aname=urlencode($row["autor"]); $name= "". $row["autor"] .""; /* Формируем текст комментария и если надо обрезаем его */ $text = htmlspecialchars($row["text"]); if (strlen($text) > 1024) $text= substr($text, 0, 1024)."..."; /* Формируем ссылку на новость. Массив $config содержит все настройки системы. В частности $config["http_home_url"] - это урл домена. */ $newslink = $config["http_home_url"].$row["post_id"]."-".$row["alt_name"].".html"; $hint = "onMouseover=\"showhint("$text", this, event, "");\""; $title = "".stripslashes($title).""; /* Итоговая запись для одного комментария */ $lastcomm.="От $name в новости:
$title

"; } $db->free(); /* Кэшируем полученные данные. Чтобы получше разобраться с функциями кэширования, откройте файл "engine/api/api.class.php" там отлично все закомментировано */ $dle_api->save_to_cache ("lastcomm", $lastcomm); } /* Выводим полученный результат */ echo $lastcomm; ?>

Заключение

Данный код полностью рабочий. И в нем конечно же есть недостатки. Например не проверяется для ссылок - включено ли ЧПУ. Или при переходе по ссылке на профиль пользователя мы попадаем сразу в его профиль, а не на окошечко jQuery с краткой информацией. Вообщем есть что доработать. Но все эти вещи не были включены сюда только по одной причине - не дать запутаться новичку. Также советую проанализировать другие файлы, например topnews.php. Если у вас возникнут вопросы по написанию модулей или вообще по системе - я с радостью отвечу на них.

На этом у меня все, если эта тема кому-нибудь покажется интересной, то я сделаю цикл статей про cms Datalide Engine (DLE).

Ах да, это моя первая статья на хабре, поэтому извините если что не так.

Были подготовлены и реализованы следующие изменения:


1. Полностью принципиально новая панель управления скриптом DLE. Дорогие друзья, в данной версии скрипта мы хотим вам предоставить полностью обновлённую панель управления скриптом. Данная панель была разработана с использованием всех последних новейших технологий, которые позволяют сделать процесс управления новостями и другими разделами скрипта, более удобными и информативно понятными. Помимо нового современного дизайна, данная панель управления является адаптивной и способной самостоятельно подстраиваться под используемые устройства, тем самым обеспечивается более удобное управление как с использованием десктопного компьютера, так и с использованием планшетов и смартфонов. Учитывая важность таких моментов как мышечная и зрительная память, а также привычка, мы постарались создать новую панель управления такой, чтобы все для вас оставалось на привычных местах, и вам не пришлось затрачивать много времени на освоение и изучение новой панели управления. Мы очень надеемся, что новая панель вам понравится, и вы оцените ее по достоинству. В связи с тем, что в новой панели управления активно используются HTML5 и CSS3 стандарты, мы были вынуждены отказаться от поддержки устаревших браузеров IE, для работы в новой панели вам понадобится IE10 и выше, а также актуальные версии браузеров Chrome, Firefox и Opera.

2. Все javascript файлы административной панели DLE теперь отделены от пользовательской части сайта и работают независимо. Например, если вы захотите самостоятельно обновить библиотеки сайта, например такие как Jquery и Jquery UI, вы можете это делать не опасаясь за совместимость с работой административной панели.

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

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

5. Внесены изменения в логику показа рекламных материалов в админпанели , теперь вместо показа добавленного рекламного кода, показывается подсвеченный его исходный код, тем самым при добавлении каких-либо фрагментов HTML тегов, не будет нарушаться верстка админпанели, и вы всегда сможете управлять и редактировать код, непосредственно панели управления.

6. Существенно улучшен и переработан модуль редактирования комментариев в админпанели скрипта. Добавлена возможность одиночного удаления комментариев при помощи технологии AJAX, а также добавлена возможность пометки комментария как "Спам" и как следствие автоматического бана спамера и удаления всех его комментариев, и уведомление облачного сервиса о спамере, если это включено в настройках скрипта.

7. Добавлена функция динамической загрузки комментариев по мере просмотра посетителем страницы с полной новостью и чтения им комментариев. Данная функциональность основана на принципе: и применяется с использованием технологии AJAX. Например, вы установили показывать 30 комментариев на каждую страницу, а у новости 100 комментариев, то при заходе на страницу с новостью, для пользователя будет показано первые 30 комментариев, по мере скроллинга страницы вниз и чтения комментариев, по окончании списка комментариев, вместо навигации по комментариям, на страницу будут автоматически подгружены следующие 30 комментариев и т.д. по мере скроллинга страницы, пока не будут показаны все комментарии к новости. Данная функциональность включается и отключается в настройках скрипта.

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

9. Для вывода новостей с использованием пользовательского тега {custom ...} добавлена возможность вывода навигации по страницам. Для этого добавлен новый параметр тега navigation="yes" . При добавлении данного параметра к пользовательскому тегу, будет выводится постраничная навигация по новостям, выводимым данным тегом. Тем самым вы можете осуществлять вывод новостей именно по вашим параметрам и при этом сохранять навигацию по страницам, если новостей по данным параметрами много. Навигация выводится только для страниц сайта, которые поддерживают навигацию для тега {content} , например, главная страница, страницы категорий и т.д. Если же страница не поддерживает навигации, например, вывод полной новости, или статической страницы, то для данного тега навигация автоматически также будет отключена.

10. Для тега пользовательского вывода новостей {custom ...} добавлен новый параметр fixed="without" , который выводит только новости, которые не были зафиксированы при публикации.

11. Обновлен HTML5 плеер до актуальной версии , добавлена поддержка полноэкранного режима в браузере IE11.

12. В модуле перекрестных ссылок добавлена возможность использования ссылок, содержащих в себе URL кодированные символы.

13. Добавлена проверка e-mail пользователя при его смене в профиле на то, находится ли данный адрес или пул адресов в списке адресов, запрещенных администратором к регистрации на сайте. Ранее данная проверка проводилась только при первоначальной регистрации посетителя на сайте.

14. Добавлено указание логина пользователя в e-mail письме , которое отправляется пользователю, в случае смены им своего e-mail адреса в профиле. Данное нововведение будет полезным также администраторам сайтов, в случае если e-mail адрес пытается сменить бот на несуществующий, в результате администраторам приходят письма о недоставке, и они могут видеть кто меняет данные, и соответственно принять меры к данному пользователю.

15. Добавлена удобная система добавления и редактирования дополнительных полей новости в админпанели, имеющих свойство "Использовать как гиперссылки". Теперь можно удалить ненужные значение в один клик.

16. Добавлена возможность разрешать в управлении рекламными материалами на сайте , вставку рекламных тегов непосредственно в текст новостей. Данная возможность устанавливается отдельного для каждого баннера. Вы можете разрешить или запретить вставку рекламного тега в текст новости. Если для тега будет разрешена вставка в текст новости, то при написании данного тега в тексте новостей, рекламный блок будет опубликован на сайте на месте данного тега. Тем самым вы можете размещать рекламу непосредственно в тексте новостей в удобном для вас месте.

17. Добавлена возможность предосмотра рекламных материалов , добавленных в админпанели при помощи отдельного всплывающего окна.

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

19. В модуле управления перекрестными ссылками в админпанели , добавлена проверка на уже существующие в базе данных ключевые слова. Тем самым избегается появление дубликатов ключевых слов.

20. Для модуля управления перекрестными ссылками добавлена возможность использование множественного склонения слов в пределах ключевой фразы, с указанием склонения для нескольких слов одновременно. Например, вы можете указать для замены фразу Иван(ов|ова|ову) Ива(н|на|ну) Иванови(ч|ча|чу) . А также добавлена возможность комбинирования фразы из нескольких слов, как содержащий склонения, так и не содержащий, например, фраза: Ремон(т|та|ту) мебели .

21. Изменен алгоритм вывода информации при помощи тега {title} в шаблоне вывода похожих новостей (relatednews.tpl ). При использовании данного тега будет выводится полный заголовок новости без его обрезания до 75 символов как ранее.

22. Для шаблона вывода похожих новостей (relatednews.tpl) добавлена поддержка нового тега {title limit="x"} , который выводит заголовок новости, сокращенный до указанного количества в теге X символов. При этом сокращение заголовка производится до завершения логического слова, а не обрывается посередине.

23. Для шаблона вывода кратких новостей (shortstory.tpl) добавлена поддержка новых тегов текст текст , и выводят текст заключенный в данные теги при показе любых по счету новостей, кроме указанных X новостей. Данный тег будет полезен, если вы хотите выводить какие-либо элементы оформления во всех новостях при показе кратких новостей, кроме вышеуказанных. Например, что-либо не показывать в первой по списку новости.

24. Для шаблона вывода комментариев (comments.tpl) добавлена поддержка новых тегов текст , которые является противоположностью уже существующих тегов текст , и выводят текст заключенный в данные теги при показе любых по счету комментариев, кроме указанных