我一直在尝试在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 */有人能告诉我为什么吗?
发布于 2014-01-29 20:36:59
显然,您曲解了elgg_get_context函数的预期行为。
检查:http://reference.elgg.org/pageowner_8php.html#a25fe73eb19442b4a4476f18e63abf382它使用字符串作为上下文名称(它必须首先被推送,通常是在pagesetup事件之前设置的)
由于缓存的原因,elgg/css的条件扩展将无法正常工作。您可能希望改用elgg_register_css和elg_load_css。
发布于 2014-01-29 20:42:33
elgg_get_context()返回字符串或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,请检查您是否更新了代码。
发布于 2014-02-02 11:02:47
最好的方法是比较你的插件的上下文,因为elgg总是会维护一些上下文。
所以要像这样做:
if(elgg_get_context() == 'myplugin'){
elgg_extend_view('css/elgg', 'myplugin/css');
}https://stackoverflow.com/questions/21378036
复制相似问题