开源世界

DataLife Engine v.21.0 升级功能列表

作者: 来源: 文章标签:DataLife Engine

亲爱的朋友们,

21.0版本的主要开发阶段已经完成,目前正在进行测试和发布前准备工作,但与此同时,我们邀请您了解一下新版本发布后将为您带来哪些功能。

已制定并实施以下变更:

1. DataLife Engine 软件包包含一个替换DataLife Engine 自带演示模板的全新模板。这些新模板采用最新的 HTML 布局原则开发,极其轻量级,不使用任何会增加页面体积的第三方框架。我们力求创建风格尽可能中性的模板,使其与网站主题无关。所有模板均已完全集成到 DLE 的各项功能中,以用于演示。不同的模板展示了多列发布展示的各种组合。所有模板均内置浅色和深色主题适配,并可在两种模式之间切换。此外,每个模板还开发了多种强调色,可根据需要进行更改。所有模板均完全响应式,可适配从移动设备到大型桌面显示器的任何屏幕尺寸。

2. DataLife Engine 控制面板中的电子邮件新闻通讯模块已完全重写。它现在不再只是一个简单的邮件发送器,而是一个功能全面的新闻通讯管理模块。您可以创建和管理多个新闻通讯。创建新闻通讯时,您可以指定其开始日期,从而创建定时发送的新闻通讯,使其在指定日期自动启动。创建新闻通讯时,您可以指定新闻通讯的发送方式。您可以选择在用户访问网站时自动发送(即当用户访问网站时),或者将发送任务分配给服务器定时任务,以避免网站加载延迟。新闻通讯可以启用、禁用、编辑和批量管理。

3. 新增了通过 Telegram 进行网站授权的支持。您可以在控制面板的脚本设置中启用 Telegram 授权支持,并配置应用程序参数。此外,为了支持此授权,模板(main.tpl、login.tpl)中已添加以下标签:[telegram] text [/telegram],如果已启用 Telegram 授权支持,则会显示标签内包含的文本;以及 {telegram_url} ,会显示通过 Telegram 进行授权的 URL 链接。个人资料管理模板(userinfo.tpl)也支持以下标签:[attached-telegram] text [/attached-telegram],如果帐户已关联到 Telegram,则会显示标签内包含的文本;以及[detach-telegram] text [/detach-telegram],如果用户的帐户已关联到 Telegram,则会显示标签内包含的文本链接,用于取消帐户与 Telegram 的关联。

4. 自定义字段系统新增了动态自定义字段功能。动态字段允许您在添加或编辑发布内容时直接添加指定类型的新字段。在自定义字段选项中,您可以指定字段是否为动态字段,如果使用通用字段输出标签,还可以设置用于在网站上显示的分隔符,并指定用户在单个发布内容中可为该自定义字段创建的最大字段数。为了支持动态字段信息的显示,新增了对以下模板标签的支持:

[xfvalue_имя_поля item="X"] — Выводит значение дополнительного поля под номером X.
[xfvalue_имя_поля limit="X2" item="X"] — Выводит значение дополнительного поля под номером X, очищенное от HTML и обрезанное до X2 символов.

Изображения (для типа «Изображение»)
[xfvalue_thumb_url_имя_поля item="X"] — Выводит URL уменьшенной копии изображения дополнительного поля под номером X.
[xfvalue_image_url_имя_поля item="X"] — Выводит URL полного изображения дополнительного поля под номером X.
[xfvalue_image_description_имя_поля item="X"] — Выводит описание изображения дополнительного поля под номером X.

Галерея (для типа «Галерея»)
Позволяет выводить конкретное изображение Nr из галереи, загруженной в элемент X:

[xfvalue_имя_поля image="Nr" item="X"] — Выводит полный код HTML изображения Nr для галереи из дополнительного поля под номером X.
[xfvalue_имя_поля image-url="Nr" item="X"] — Выводит URL полного изображения Nr из галереи дополнительного поля под номером X.
[xfvalue_имя_поля image-thumb-url="Nr" item="X"] — Выводит URL уменьшенной копии изображения Nr из галереи дополнительного поля под номером X.
[xfvalue_имя_поля image-description="Nr" item="X"] — Выводит описание изображения Nr из галереи дополнительного поля под номером X.

Видео:
[xfvalue_имя_поля video="Nr" item="X"] — Выводит плеер для видео Nr из плейлиста дополнительного поля под номером X.
[xfvalue_имя_поля video-url="Nr" item="X"] — Выводит URL видео Nr из плейлиста дополнительного поля под номером X.
[xfvalue_имя_поля video-description="Nr" item="X"] — Выводит описание видео Nr из плейлиста дополнительного поля под номером X.

Аудио:
[xfvalue_имя_поля audio="Nr" item="X"] — Выводит плеер для аудио Nr из плейлиста дополнительного поля под номером X.
[xfvalue_имя_поля audio-url="Nr" item="X"] — Выводит URL аудио Nr из плейлиста дополнительного поля под номером X.
[xfvalue_имя_поля audio-description="Nr" item="X"] — Выводит описание аудио Nr из плейлиста дополнительного поля под номером X.

Дата и время (для типа «Дата и время»)
[xfvalue_имя_поля format="Формат" item="X"] — Выводит дату дополнительного поля под номером X по заданному PHP-формату времени (например, format="j F Y H:i").

[xfgiven_имя_поля item="X"] текст [/xfgiven_имя_поля] — Выводит текст заключенный в тегах, если дополнительное поле под номером X имеет значение.
[xfnotgiven_имя_поля item="X"] текст [/xfnotgiven_имя_поля] — Выводит текст заключенный в тегах, если дополнительное поле под номером X не имеет значений.

[ifxfset fields="имя_поля" item="X"] текст [/ifxfset] — Выводит текст заключенный в тегах, если дополнительное поле под номером X было задано для новости.
[ifxfnotset fields="имя_поля" item="X"] текст [/ifxfnotset] — Выводит текст заключенный в тегах, если дополнительное поле под номером X не было задано для новости.

[ifxfvalue имя_поля="значение" item="X"] текст [/ifxfvalue] — Выводит текст заключенный в тегах, если значение дополнительного поля под номером X совпадает с указанным.
[ifxfvalue имя_поля!="значение" item="X"] текст [/ifxfvalue] — Выводит текст заключенный в тегах, если значение дополнительного поля под номером X не совпадает с указанным.

5. 同样,用户个人资料中也新增了对动态字段的支持。动态字段还新增了对以下模板标签的支持:

1. Теги для шаблонов профиля пользователя (userinfo.tpl, profile_popup.tpl, comments.tpl и др.)
[xfvalue_имя_поля item="X"] — Выводит значение дополнительного поля по его порядковому номеру X (нумерация начинается с 1).
[xfvalue_имя_поля format="Y-m-d" item="X"] — Выводит значение дополнительного поля по его порядковому номеру X (для полей типа «Дата») в указанном формате даты.

[xfgiven_имя_поля item="X"]Текст[/xfgiven_имя_поля] — Выводит содержимое блока, если значение дополнительного поля по его порядковому номеру X динамического поля заполнено.
[xfnotgiven_имя_поля item="X"]Текст[/xfnotgiven_имя_поля] — Выводит содержимое блока, если значение дополнительного поля по его порядковому номеру X динамического поля пустое.

[ifxfvalue имя_поля="значение" item="X"]Текст[/ifxfvalue] — Выводит содержимое блока, если значение дополнительного поля по его порядковому номеру X динамического поля равно указанному. Также поддерживается оператор сравнения !=.

[ifxfset fields="имя_поля" item="X"]Текст[/ifxfset] — Выводит содержимое блока, если все перечисленные поля (включая конкретные элементы динамических полей) заполнены..
[ifxfnotset fields="имя_поля" item="X"]Текст[/ifxfnotset] — Выводит содержимое блока, если все перечисленные поля (включая конкретные элементы динамических полей) не заполнены.

2. Теги для глобальных шаблонов (login.tpl, main.tpl) и вывода автора публикации (shortstory.tpl, fullstory.tpl)
[profile_xfvalue_имя_поля item="X"] — Выводит значение динамического поля с номером X пользователя.
[profile_xfvalue_имя_поля format="Y-m-d" item="X"] — Выводит значение динамического поля с номером X с типом «Дата» в указанном формате.

[profile_xfgiven_имя_поля item="X"]Текст[/profile_xfgiven_имя_поля] — Выводит блок, если динамическое поле с номером X пользователя заполнено.
[profile_xfnotgiven_имя_поля item="X"]Текст[/profile_xfnotgiven_имя_поля] — Выводит блок, если динамическое поле с номером X пользователя не заполнено.

[ifprofilexfset fields="имя_поля" item="X"]...[/ifprofilexfset] — Выводят текст заключённый в них если дополнительное поле с именем X было задано и заполнено для профиля автора публикации. При этом вы можете перечислить несколько имён полей через запятую. Например [ifprofilexfset fields="test1,test2"] оба поля с именем test1 и test2 заполнены[/ifprofilexfset] выведет текст если оба поля были заполнены..
[ifprofilexfnotset fields="test_itemX"]...[/ifprofilexfnotset] — Выводят текст заключённый в них если поле с именем X не было задано и заполнено. При этом вы также можете перечислить несколько имён полей через запятую. Например, [ifprofilexfnotset fields="test1,test2"]оба поля с именем test1 и test2 не были заполнены[/ifprofilexfnotset] выведет текст если оба поля не были заполнены.

6. 本网站新增了“分享文章”功能。该功能利用浏览器和设备操作系统的原生功能,根据用户设备打开包含分享选项的菜单。例如,如果用户使用手机并安装了即时通讯应用和社交媒体,他们可以快速将文章链接发送到所需的即时通讯应用或社交网络,以此类推。为了实现此功能,我们在短篇和完整文章输出模板(shortstory.tpl 和 fullstory.tpl)中添加了对以下标签的支持:[share] text [/share],该标签会将标签内的文本显示为分享链接。此功能要求网站使用 HTTPS 协议;这是浏览器 API 对这些功能的限制。

7. 对数据库中的各种索引进行了大规模审计,并在表中添加了大量额外的复合索引,旨在降低网站上显示出版物时 MySQL 服务器的负载。这在很多情况下显著加快了数据库选择速度。

对于拥有超大型数据库的用户,以下信息非常重要:

仅在服务器负载较低的时段执行升级。升级前,请移除服务器响应超时和脚本执行时间的限制,因为向大型表添加新索引可能需要在 MySQL 服务器端花费很长时间。

8. Datalife Engine 控制面板新增了一个版块,用于管理 oEmbed 提供商。这些提供商用于在出版物中嵌入媒体内容。在此版块中,您可以编辑任何提供商,添加所需的联系方式(如有变更),移除不必要的提供商,甚至可以添加您自己的提供商。

9. 我们新增了一个通过 IP 地址确定国家/地区的数据库。该数据库由我们自主构建,使用了四个独立的数据源和数据库提供商的数据。所有提供商的数据均根据相关性和时效性进行整合,最终合并成一个单一的数据库。这使得该数据库成为目前最全面的国家/地区数据库。我们使用的数据源包括:IPLocate.io、IP2Location、MaxMind 的 GeoLite2 和 db-ip.com。

10. 新增了一种基于自治系统编号 (ASN) 的搜索引擎机器人检测系统。该系统在按国家/地区屏蔽访问并允许搜索引擎访问时,通过验证 IP 地址是否属于特定组织,提高了检测的准确性。此外,该系统还能有效防止伪造用户代理 (User Agent) 标头并伪装成合法的搜索引擎机器人,从而有效阻止恶意网站解析器。

11. 人工智能驱动的自动评论审核系统现在除了可以检测侮辱性言论外,还可以检测公开和隐蔽的广告、彻头彻尾的垃圾邮件、刷屏以及毫无意义的杂乱文本。

12. 撰写文章时,可视化编辑器现在允许您快速创建新段落并插入所需的代码块。当光标位于编辑器中的新行时,旁边会出现一个快捷操作按钮。展开该按钮,即可快速插入所需的代码块。例如,您可以一键插入标题、列表、上传图片、嵌入视频等等。这省去了在主编辑器面板中查找所需按钮的步骤,显著简化并加快了写作过程,使其更加便捷。

13. 对于可视化编辑器中使用的 DataLife Engine 代码块,新增了快速将光标置于代码块之前或之后并开始输入的功能。例如,当某个代码块位于末尾,难以将光标置于其后,或者多个代码块相邻且连接在一起时,此功能非常有用。

14. 新增了在编辑器中添加和编辑出版物时,直接在编辑器中以可视化方式检索和管理从媒体服务接收的块的功能。不再需要使用 BB [media=…] 标签。当您插入指向需要从中检索视频、音频或其他内容的页面的链接时,您可以立即看到来自服务的结果。生成的代码完全隔离在编辑器中,方便您进行管理。例如,您可以调整其大小、将其从一个位置移动到另一个位置、一键删除等等。双击块即可根据需要快速更改服务链接。

15. 通过 oEmbed 协议与媒体提供商交换数据以插入出版物的列表已完全更新;现在包含 oembed.com 网站上的所有提供商列表。

16. 新增了对 VK Video 的支持,可用于嵌入来自视频服务的视频。虽然该服务仍然提供公开的 oEmbed 链接,但现在它会自动将链接转换为网站所需的视频嵌入格式。这样,您就可以快速地将 VK Video 中的视频嵌入到您的网站中。

17. 发布编辑器现在提供视频插入和编辑的可视化控制。视频不再使用 BB 标签。您可以立即预览视频播放器模块。您可以直观地调整播放器大小、设置所需的对齐方式、移动播放器,以及一键删除该模块。双击播放器即可便捷地对整个播放列表进行可视化控制;您可以一键快速添加或删除不需要的内容。

18. 同样,音频播放器也添加了完整的可视化控制功能,其选项与视频播放器相同。

19. 视频播放器现在可以根据视频文件帧自动生成视频预览,以便在未明确指定海报的情况下将其作为海报插入。这意味着视频播放器不会显示空白;如果未通过单独的链接指定海报,它将显示视频中的一帧。自动预览生成功能仅在管理面板的播放器设置中启用视频元数据预加载后才会启用。

20. 视频播放器的视觉外观经过大幅重新设计和优化,旨在提升播放器在网站上的易用性并优化其占用空间。播放器采用了全新、改进且更现代的设计,同时保持了其原有的辨识度。播放过程中,视频时长将完整显示。默认播放器对 YouTube 链接的自动检测功能也得到了提升。其性能得到了显著优化,并修复了多个错误。

21. 新增了在视频播放器中播放 HLS 视频流时手动选择视频质量的功能。如果自动质量选择功能无法正常工作,此功能将非常有用。

22. 新增了在 DataLife Engine 播放器中播放 HLS 视频流时选择音轨的功能。这意味着,如果视频流包含多个音轨(例如不同的配音或语言),您可以直接在播放器中选择所需的音轨。

23. 为 DataLife Engine 视频播放器添加了字幕支持。如果视频流包含字幕数据,则可以直接在视频播放器中启用和选择字幕。

24. 视频播放器新增了对播放间接文件链接视频流的支持。这意味着您可以指定不包含视频文件扩展名(mp4、m3u8 等)的链接。关键在于您指定的链接必须包含视频流;DataLife Engine 将自动检测该视频流。这样,您就可以发布直播或指向使用特殊格式 URL 的服务的链接。

25. 现在,发布编辑器允许您以可视化的方式管理从已批准来源插入到编辑器中的 iframe 标签。您可以直观地选择某个块,将其拖动到编辑器中的所需位置,设置其对齐方式,只需拖动其角点即可调整其大小,并通过在编辑器中选中该块并单击将其删除。

26. 在 DataLife Engine 控制面板中,新增了便捷的国家/地区选择功能,方便您选择要阻止或允许访问的国家/地区。现在,您无需输入任何 ISO 国家/地区代码,也无需了解或查找它们。选择时,您会看到一个包含所有国家/地区的下拉列表,并提供快速搜索选项,您可以直接从列表中选择所需的国家/地区。

27. 控制面板中的类别选择模块在添加和编辑出版物时进行了重新设计。搜索类别时,如果目标类别是子类别,搜索结果现在会显示其所有父类别的完整树状结构。这意味着,如果子类别名称相同,您可以轻松查看特定类别所属的父类别。此外,还修复了移动设备上类别选择的一些问题。

28. 插件系统控制面板新增了使用拖放功能对文件中的操作进行排序的功能。现在,您只需将操作拖放到文件中即可更改操作顺序。

29. 新增了自动跟踪系统,用于检测用户在撰写或编辑帖子时是否失去授权。例如,如果用户开始撰写帖子并持续撰写很长时间,但由于某种原因(例如会话过期、IP 地址变更、启用 IP 地址变更控制等)导致其授权失效,系统会在用户撰写帖子时推送通知,告知其已失去授权,尝试保存时数据可能会丢失。这项新功能有助于防止数据丢失,并提前通知用户其已退出登录,以便用户提前保存数据和更改。

30. 控制面板 RSS 新闻导入部分的发布预览已重新设计。现在,它与添加和编辑发布部分的预览完全一致。控制面板的这一部分的外观也进行了重新设计和改进。

31. 网站上用于设置用户自定义新闻排序的算法已重新设计。现在,更改排序顺序是通过 AJAX 请求完成的,无需向服务器发送 POST 数据。这意味着,如果访客想要返回上一页,设置排序顺序不再会影响浏览器的“后退”按钮。

32. 新增了在查看包含特定附加字段(交叉引用)的出版物时,在 main.tpl 模板中显示用于搜索出版物数据的附加字段值的功能。为此,该模板文件已添加了对{xfsearchtag}标签的支持。此功能可用于显示页面标题。

33. 新增了对全局 [tv]Text[/tv] 标签的支持,该标签会在网站通过电视浏览时显示标签内的文本。同时新增了反向的[not-tv]Text[/not-tv]标签,该标签会在设备并非电视时显示标签内的文本。这些标签只有在设备本身提供此信息时才能正常工作。

34.在类别菜单输出模板 (categorymenu.tpl) 和其他类别菜单输出标签的参数中指定其他模板时,添加了对 [declination=X] 文本 [/declination] 标签的支持。

35. 评论输出模板 (comments.tpl) 现在支持两个新标签:[has-avatar]Text[/has-avatar][not-has-avatar]Text[/not-has-avatar]。如果用户已上传头像,则该标签会显示其包含的文本;如果用户未上传头像,则该标签会显示其包含的文本。这些标签有助于在用户未上传头像的情况下实现不同的模板设计。这些标签充分展示了 DLE 软件包中的新标准模板,该模板采用独特的技术,可为未上传头像的评论用户生成独特的头像。

36.在可视化编辑器中编辑旧内容时,增加了将用 BB 标签编写的旧引用标签自动转换为原生 HTML 的功能。

37. 编辑器弹出菜单的显示系统已得到改进,现在无论选中多少文本,菜单都会出现在光标所在位置。这确保了快捷菜单能够即时、便捷地弹出,方便用户快速执行操作。

38. 编辑器对引用和剧透的处理系统进行了改进。现在,除非选中文本,否则点击这些按钮不会弹出窗口。编辑器会立即插入所需的代码块并将光标置于其中,允许您在可视化区域中开始输入这些代码块。

39. 对于可视化编辑器而言,如果出版物分为多个页面,则插入指向出版物页面的链接将完全从使用 BBCodes 标签转换为常规的视觉链接。

40. 我们进行了大量工作,以优化可视化编辑器中源代码的操作体验。现在,在源代码编辑器和可视化编辑器之间切换时,定位更加精准。代码块的位置更加精确,光标滚动到代码块的位置也更加准确。这大大简化了大型代码块的操作。此外,我们还修复了从源代码编辑器切换到可视化编辑器时可能出现的空代码块问题。

41. 新增了 SEF 规则管理系统通过自定义脚本将自定义规则添加到所需位置的功能DLEUrl::AddRule('test', '/test/', '/?do=test');。此功能对第三方插件开发者非常有用,使他们能够立即调整规则的位置。要将自定义规则添加到所需位置,请使用以下函数:基本放置于规则末尾、DLEUrl::AddRule('test1', '/test1/', '/?do=test1', 'before showfull.page.news');插入到规则之前showfull.page.news, DLEUrl::AddRule('test2', '/test2/', '/?do=test2', 'after showfull.page.news');以及插入到 showfull.page.news 规则之后。

42.如果待删除的文件已分配给某个插件,并且是 DLE 发行版的标准文件,则插件系统已添加自动保护机制,防止删除已包含在发行版中的文件。例如,如果某个文件随插件一起下载,但之前并未包含在发行版中,然后在更新(例如,更新到新版本)期间,发行版中出现了一个同名文件。当从系统中移除该插件时,这个现在已成为系统文件的文件将被保留,而不会被删除。

43. DataLife Engine 防病毒软件现在允许您直接从控制面板一键删除未包含在安装包中的文件。如果您添加了大量无关文件并希望快速清理它们,这将是一个非常便捷的功能。

44. DataLife Engine 防病毒算法得到了改进,使其能够检测更多可疑文件,并且快照现在具有新的、改进的存储格式和针对静默内容替换的特征码保护。

45. 已取消编辑模板时对制表符长度的限制。这样在使用较长的文件夹和文件名或多个嵌套文件夹时,可以更清楚地知道正在编辑哪个文件。

46. 已经进行了优化,以提高使用网站搜索引擎查找资料时的性能。

47.对交叉引用算法进行了内部优化,在某些情况下和配置中,这提高了性能并降低了内存消耗。

48. 内存消耗减少了,并且在某些情况下,创建搜索引擎站点地图的工作速度显著加快。

49. 新增了对通过 http/https 协议从外部来源上传图片到服务器时进行重定向的支持。这意味着,如果使用重定向来显示图片,上传者将能够获取到实际的图片。

50.为启用评论的 AJAX 导航时,添加了对浏览器“后退”和“前进”按钮的支持。

51. 已移除对已弃用的“分享选定文本”Masha JS脚本的支持。如有需要,您可以通过将其添加到模板并包含在模板文件中来恢复此脚本在您的网站上的功能。

52. 已移除为手机启用独立智能手机模板的功能。这项技术已经过时,而且鉴于目前的移动网络速度,它已无实际用途,还会增加网站维护的复杂性。

53. 修复了即使用户尚未开始播放视频,也可能出现过度预下载视频和音频的问题,这可能会导致发布视频和音频材料的页面流量消耗增加。

54. 修复了视频播放器中无法在 YouTube 流和 HLS 流之间切换视频的问题。

55. 之前发现并报告的剧本中的一些小错误已经得到纠正。

收藏文章

评论交流