首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >你可能永远也用不到的Typecho判断语法

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

作者头像
泽泽社长
发布2023-04-17 15:00:16
发布2023-04-17 15:00:16
2950
举报
文章被收录于专栏:泽泽社泽泽社

判断程序后台语言

因为typecho后台其实是支持多语言的,而我的TeAdmin插件只支持中文,所以研究了下对于语言的判断

代码语言:javascript
复制
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);可以输出全部路由信息数组,所以判断就简单了

代码语言:javascript
复制
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_Editwrite接口是否被插件启用

代码语言:javascript
复制
if(empty(Typecho_Plugin::export()['activated']['插件名']['Widget_Contents_Post_Edit:write'])){
echo '没启用';
}

判断没启用后也可以参考上边路由的思路,热更新插件接口!无需禁用重启插件!

linkCard('.post-content','0');

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 判断程序后台语言
  • 判断路由是否存在
  • 判断插件是否用了某接口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档