我一直在尝试在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 */
有人可以告诉我为什么吗?
答案 0 :(得分:0)
显然,你误解了elgg_get_context
函数的预期行为。
检查:http://reference.elgg.org/pageowner_8php.html#a25fe73eb19442b4a4476f18e63abf382它使用字符串作为上下文名称(必须先将其推送,并且通常在pagesetup事件之前设置)
由于缓存,elgg/css
的条件扩展无法正常工作。您可能希望改为使用elgg_register_css
和elg_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');
}