Php elgg_get_context()不工作

Php elgg_get_context()不工作,php,social-networking,elgg,Php,Social Networking,Elgg,我一直在尝试在elgg框架上编写插件。因此,我尝试使用elgg_extend_view()函数调用特定页面的特定css,但该函数不起作用。比如说 if(elgg_get_context()){ elgg_extend_view('css/elgg', 'myplugin/css'); }/*This works*/ 但是下面的方法似乎不起作用 if(!elgg_get_context()){ //If there is not elggcontext call no_css fi

我一直在尝试在elgg框架上编写插件。因此,我尝试使用elgg_extend_view()函数调用特定页面的特定css,但该函数不起作用。比如说

 if(elgg_get_context()){
     elgg_extend_view('css/elgg', 'myplugin/css');
 }/*This works*/
但是下面的方法似乎不起作用

if(!elgg_get_context()){ //If there is not elggcontext call no_css file
     elgg_extend_view('css/elgg', 'myplugin/no_css');
 }/*This is not working */

有人能告诉我为什么吗?

显然,您误解了
elgg\u get\u context
函数的预期行为

检查:它使用字符串作为上下文名称(必须先推送它,通常在pagesetup事件之前设置)

由于缓存原因,
elgg/css
的条件扩展无法正常工作。您可能想使用
elgg\u register\u css
elg\u load\u css
来代替。

elgg\u get\u context()
返回字符串或空值

在这种情况下,感叹号(!)不好

尝试:

如果试图可视化函数返回的内容时出现任何问题,请参阅:

var_dump(elgg_get_context())


注意:elgg版本为1.8.18,请检查您是否更新了代码。

最好的方法是比较插件的上下文,因为elgg始终会维护一些上下文

因此,它喜欢:

 if(elgg_get_context() == 'myplugin'){
     elgg_extend_view('css/elgg', 'myplugin/css');
 }
 if(elgg_get_context() == 'myplugin'){
     elgg_extend_view('css/elgg', 'myplugin/css');
 }