背景

你可能永远也用不到的Typecho判断语法

3周前 typecho帮助 8°C

判断程序后台语言
因为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 '没启用';
}
判断没启用后也可以参考上边路由的思路,热更新插件接口!无需禁用重启插件!

版权声明:小站所有内容均为互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系删除。
本文链接:https://magicblue.cn/lost/15318.html
最后编辑: 23年09月14日

选择表情

网友评论

5个月前

所以说 这个主题官网挂了 应该在哪里买

6个月前

已经升1.2.1了

7个月前
头像 csp

抱抱

7个月前
头像 csp

有点惨啊

7个月前

支持支持一下