在前端访问Joomla 1.6和1.7中的com_users组件时,应用程序会自动导入来自'用户'组的所有插件。显然,如果你不想创建一个组件来简单地将一些变量传递给一个插件,这是非常有用的。Joomla 1.5 com_user和导入用户插件,如Joomla 1.6和更高版本
好的。让我们更简单:
- 用户获得激活链接:http://example.com/index.php?option=com_users&task=edit&emailactivation=1&u=63&d077b8106=1并点击它。
- 当然,组件将省略emailactivation和其他参数,简单地显示“编辑个人资料表格”(或登录表格)。
- 然后JApplication进口所有插件从 '用户' 组,这将触发__constructors
基本上,插件的__constructor一个可以设置简单的动作像下面这样:
class plgUserAccountactivation extends JPlugin
{
public function __construct(& $subject, $config)
{
parent::__construct($subject, $config);
if(isset($_GET['emailactivation'])) {
// check token
// activate account, email or whatever
// redirect with message
}
}
}
哇!它工作,没有必要创建一个完整的控制器来处理一个简单的任务。
但是等一下...
- 在链路变化的index.php?选择= com_users到index.php?选择= com_user
- 而且,我们尝试的Joomla 1.5 ...
嘿,嘿,没有任何反应com_user根本没有导入任何东西,__constructor也没有调用。
我很担心这个在Joomla 1.5中,我不想写整个组件。
如果有人有一些明智的想法,请让我知道。
编辑:
HTTP:: 我已经通过发送以下形式的联系解决我的问题/example.com/index.php选项= com_user & 任务=注销 & emailactivation = 1 & U = 63 & d077b8106 = 1
这样用户插件被包括和__constructors被执行。但是,这是如此无趣,任务=注销并不真正鼓励点击链接。
我需要它作为用户插件,除了你的代码将在所有子网页被执行,即使在“com_content” – WooDzu
其实我已经解决我的问题暂时的,看到更新的问题 – WooDzu
是,插件总是执行。但计算工作量并不大,因为它会彻底检查它是否在正确的位置,例如在“com_content”中立即从执行中返回。 – hbit