【问题标题】:Respond to a change configuration event in joomla响应 joomla 中的更改配置事件
【发布时间】:2013-03-16 23:34:02
【问题描述】:

我正在为客户端开发 Joomla 2.5 组件,我们能够在后端的组件配置中更改背景颜色。此更改是使用颜色选择器进行的,因此几乎可以选择任何颜色。

简单地说,无需过多介绍,设置组件中的所有颜色更改(包括查找要加载的适当图像)是一个非常耗时的过程。我只想在组件参数中进行更改时才进行此编译,但是当 com_config 组件保存配置时,我看不到 Joomla 触发事件的任何地方,并且我不想更改客户端的位置有这个选项或访问方式。

由于无法更改 Joomla 源代码,是否有人知道我该如何响应此事件?

【问题讨论】:

  • 发布一些代码或演示。

标签: events plugins joomla


【解决方案1】:

有一个待处理的补丁程序包含onConfigurationBeforeSaveonConfigurationAfterSave 事件:#29769

在合并之前,我想到的唯一想法就是从组件本身观察组件的配置。

  1. 从缓存中加载最新的已知配置校验和
  2. 与当前配置校验和比较。

    a) 如果不同,则存储当前配置哈希并运行处理

现在,你可以在几个地方执行它:

  • 在每个组件执行时
  • 关于关闭配置模式框 (Joomla 1.5 - 2.5)
  • 使用 cron 作业

【讨论】:

  • 是的,这就是我使用的方法,只是我将配置保存在会话中,然后与每个组件执行时的当前配置值进行比较
  • 看起来补丁在这个答案之后不久就被合并了,并且自 3.1 起在 Joomla 中提供了事件
  • 不,onExtensionAfterSave 在保存配置本身时不会触发,它仅适用于保存特定组件的配置,例如com_content
猜你喜欢
  • 1970-01-01
  • 2014-05-16
  • 2013-03-28
  • 2011-01-22
  • 1970-01-01
  • 2018-10-12
  • 2016-05-30
  • 2017-10-09
  • 1970-01-01
相关资源
最近更新 更多