如何在不更改现有组件文件的情况下通过插件将日期类型更改为下拉列表
Posted
技术标签:
【中文标题】如何在不更改现有组件文件的情况下通过插件将日期类型更改为下拉列表【英文标题】:How to change date type to dropdown by plugin without change in existing component files 【发布时间】:2017-03-22 02:00:57 【问题描述】:我想将日期更改为下拉菜单。让我举例说明 更好地理解。我有一个组件是 com_abc。在这个 我在 XML 中使用日期字段的组件。现在我想更改此日期 字段到所有日期的下拉列表,而不涉及任何组件 文件。我以为我会为此创建一个系统插件,但我是 困惑我如何在网站的所有页面中调用事件或搜索日期字段 并转换它。这可能吗。如果可能的话,请提出建议。
【问题讨论】:
我认为在组件对插件事件有任何触发之前,没有办法为此使用插件。我建议你使用 jQuery 来替换下拉日期字段 【参考方案1】:尝试在插件中使用 onAfterRender() 事件。您可以像这样获取页面正文:
$output = JResponse::getBody();
使用 preg_match() 找到带有原始日期字段的代码,将其替换为您的代码,然后像这样设置新的页面正文:
JResponse::setBody($output);
【讨论】:
以上是关于如何在不更改现有组件文件的情况下通过插件将日期类型更改为下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在不包含新列名和类型的情况下更改现有 Hive 表中的列注释?
如何在不更改现有数据位置的情况下添加新的 SQL Server 分区范围来容纳未来的数据?