我正在使用joomla 3 ++。
我正在系统插件中调用我的组件类的方法。在调用此方法之前,我希望检查它是否已被调用?
public function onAfterInitialise()
{
MyClass::initialize();
}
if (class_exists('MyClass'))
//在不同组件之间导航时始终为真
if (method_exists('MyClass', 'initialize'))
//也总是如此
var_dump(MyClass::initialize());
//真
我面临的问题:
如果我不调用此MyClass::initialize()
,我的系统插件未在其他组件上运行。
同时,其中一个组件说如果我在MyClass::initialize()
调用onAfterInitialize()
所以我想可能要避免
已加载xx.js文件,
我可以先检查这个MyClass::initialize()
是否被调用。
答案 0 :(得分:1)
你正在调用MyClass :: initialize()方法吗?在那个方法中使用
JFactory ::的getSession() - >设置( 'init_called',1 'your_component');
在系统插件中,您可以检查
public function onAfterInitialise()
{
$is_called = JFactory::getSession()->get('init_called','','your_component');
if($is_called){
//already called, do any other code
}else{
// Not yet called, do any other code
}
}
现在您可以检查已调用的函数,确保在注销之前会话不会清除。任何其他地方清除会话使用此
JFactory::getSession()->clear('init_called','your_component');