判断程序后台语言
因为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之后的版本上,这样只要用户进入插件某个需要路由的地方,如果不存在该路由就会自动建立路由,这样用户升级的时候直接覆盖升级就行,路由也可生效!无需禁用重启插件。
判断插件是否用了某接口
判断插件某插件已经启动方法如下,估计跟多人都见过了
代码语言:javascript复制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 '没启用';
}
判断没启用后也可以参考上边路由的思路,热更新插件接口!无需禁用重启插件!
linkCard('.post-content','0');