你可能永远也用不到的Typecho判断语法
判断程序后台语言
因为typecho后台其实是支持多语言的,而我的TeAdmin插件只支持中文,所以研究了下对于语言的判断if(Typecho_Widget::widget('Widget_Options')->lang=='zh_CN'||empty(Typecho_Widget::widget('Widget_Options')->lang)){
echo '当前中文环境!';
}
其中Typecho_Widget::widget('Widget_Options')->lang就是语言参数,为空时就是没有设置语言默认状态,恰巧typecho是国产程序,所以为空或者为zh_CN就是中文状态。判断路由是否存在
查看源码发现print_r(Helper::options()->routingTable);可以输出全部路由信息数组,所以判断就简单了if(empty(Helper::options()->routingTable '路由名字' )){
echo '不存在该路由';
}
我主要用来判断没有路由就自动增加路由,用于TeAdmin插件3.0.0之后的版本上,这样只要用户进入插件某个需要路由的地方,如果不存在该路由就会自动建立路由,这样用户升级的时候直接覆盖升级就行,路由也可生效!无需禁用重启插件。判断插件是否用了某接口
判断插件某插件已经启动方法如下,估计跟多人都见过了if (array_key_exists('插件名', Typecho_Plugin::export() 'activated' )){echo '已启动某某插件'; }
其实我是想引入Typecho_Plugin::export(),他是个数组,而Typecho_Plugin::export() 'activated' 就是已启动的插件数组,数组中包含插件都用了哪些接口!比如判断Widget_Contents_Post_Edit的write接口是否被插件启用if(empty(Typecho_Plugin::export() 'activated' '插件名' 'Widget_Contents_Post_Edit:write' )){
echo '没启用';
}
判断没启用后也可以参考上边路由的思路,热更新插件接口!无需禁用重启插件!