elgg_get_context()不起作用

时间:2014-01-27 10:10:26

标签: 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 file
     elgg_extend_view('css/elgg', 'myplugin/no_css');
 }/*This is not working */

有人可以告诉我为什么吗?

3 个答案:

答案 0 :(得分:0)

显然,你误解了elgg_get_context函数的预期行为。

检查:http://reference.elgg.org/pageowner_8php.html#a25fe73eb19442b4a4476f18e63abf382它使用字符串作为上下文名称(必须先将其推送,并且通常在pagesetup事件之前设置)

由于缓存,elgg/css的条件扩展无法正常工作。您可能希望改为使用elgg_register_csselg_load_css

答案 1 :(得分:0)

elgg_get_context()返回STRING或NULL

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

尝试:

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

如果有任何问题试图看到函数返回的内容,请参阅:

var_dump(elgg_get_context());

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

答案 2 :(得分:0)

执行此操作的最佳方法是比较插件的上下文,因为elgg将始终保留一些上下文。

所以这样做:

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