Typecho的Widget
时间:2023年09月24日
/来源:网络
/编辑:佚名
通过Typecho的Widget_Options,可以方便地获取Typecho的系统信息,或者方便地获取相关配置、资源路径等。
这里列出常用的Widget_Options函数和用法,方便各位筒子方便查阅。
通过Widget_Options获取路径信息
获取内置URL
通过这类api,可以获取TE内置的一些特定URL。
$options = Helper::options();
#1 $options->feedUrl(); //或者 echo $op-feedUrl;
#2 $options->feedRssUrl();
#3 $options->feedAtomUrl();
#4 $options->commentsFeedUrl();
#5 $options->commentsFeedRssUrl();
#6 $options->commentsFeedAtomUrl();
#7 $options->xmlRpcUrl();
#8 $options->loginUrl(); //输出Typecho的登录URL地址
#9 $options->registerUrl(); //输出Typecho的注册URL地址
#10 $options->registerAction(); //输出Typecho的注册Action请求地址
#11 $options->profileUrl(); //输出Typecho用户的用户信息页面地址
#12 $options->logoutUrl(); //输出Typecho的注销地址,用户点击之后可实现注销操作。
将输出:
#1 https://www.78moban.com/index.php/feed/
#2 https://www.78moban.com/index.php/feed/rss/
#3 https://www.78moban.com/index.php/feed/atom/
#4 https://www.78moban.com/index.php/feed/comments/
#5 https://www.78moban.com/index.php/feed/rss/comments/
#6 https://www.78moban.com/index.php/feed/atom/comments/
#7 https://www.78moban.com/index.php/action/xmlrpc
#8 https://www.78moban.com/admin/login.php
#9 https://www.78moban.com/admin/register.php
#10 https://www.78moban.com/index.php/action/register?_=99788b0bb32d48206a3da981c342a590
#11 https://www.78moban.com/admin/profile.php
#12 https://www.78moban.com/index.php/action/logout
获取动态URL
通过这类api,可以动态获取相对于当前主题、当前插件等的URL。
Widget_Options::siteUrl()
$options->siteUrl(); //或者echo $options->siteUrl
$options->siteUrl('mypage.php');
// https://www.78moban.com/
// https://www.78moban.com/mypage.php
siteUrl()函数将输出相对于域名的url。如果参数为空,则输出网站所在域名,如果参数非空,则输出相对于/目录所在的URL。
Widget_Options::index()
$options->index(); //或者echo $options->index
$options->index('mypage.php');
// https://www.78moban.com/index.php/
// https://www.78moban.com/index.php/mypage.php
index函数输出相对于index.php的url,这个十分常用。如果参数为空,则输出index.php,如果参数非空,则输出相对于index.php所在的url。
注意:如果typecho后台开启了伪静态,那么Widget_Options::index()将会隐藏url中的index.php。
开启永久链接.png
那么:
$options->index(); //或者echo $options->index
$options->index('mypage.php');
// https://www.78moban.com/
// https://www.78moban.com/mypage.php
注意,相对上面,url中少了index.php。
Widget_Options::themeUrl()
$options->themeUrl();
$options->themeUrl('mypage.php');
// https://www.78moban.com/usr/themes/current_theme/
// https://www.78moban.com/usr/themes/current_theme/mypage.php
themeUrl函数将获取主题模板所在的目录。如果不带参数,将获取当前模板的/路径,如果参数非空,则获取相对于当前模板根目录的路径。
Widget_Options::pluginUrl()
$options->pluginUrl();
$options->pluginUrl('myplugin/some_script.php');
// https://www.78moban.com/usr/plugins/
// https://www.78moban.com/usr/plugins/myplugin/some_script.php
pluginUrl函数和themeUrl类似,不过pluginUrl没有“当前”插件的概念,即themeUrl会定位到当前启用的插件目录,即usr/theme/current_theme/,而pluginUrl仅定位到plugins目录,即usr/plugins/
Widget_Options::adminUrl()
$options->adminUrl();
$options->adminUrl('mypage.php');
// https://www.78moban.com/admin/
// https://www.78moban.com/admin/mypage.php
adminUrl和pluginUrl类似,可以动态定位到admin目录。
通过Widget_Options获取系统信息
$options->gmtTime();
//1424352251
$options->software();
//Typecho
$options->version();
//1.0/14.10.10
$options->contentType();
//text/html
echo $options->themeFile('my_theme');
// /path_to_your_site_ducutment/usr/themes/my_theme/
echo $options->themeFile('my_theme','mypage.php');
// /path_to_your_site_ducutment/usr/themes/my_theme/mypage.php
echo $options->pluginDir('TypechoDev');//[注意]
// /path_to_your_site_ducutment/usr/plugins
注意,通过阅读代码,当前版本(1.0/14.10.10)的Typecho中,pluginDir函数应该有bug,即此函数的参数没有生效,各位筒子在使用中注意一下。
通过Widget_Options获取后台配置
Widget_Options::plugin(‘TypechoDev’)函数,将获取到TypechoDev的配置。
$plugin_config = $options->plugin('TypechoDev');
echo get_class($plugin_config);
//Typecho_Config
假如插件TypechoDev下的Plugin.php文件,存在如下代码:
public static function config(Typecho_Widget_Helper_Form $form){
$enable_menu = new Typecho_Widget_Helper_Form_Element_Radio(
'enable_menu', array ('0' => '禁用', '1' => '启用'), '',
':', '');
$form->addInput($enable_menu);
}
那么在模板或者插件代码中,可以通过如此方式获取后台配置值:
$options = Helper::options();
$plugin_config = $options->plugin('TypechoDev');
$plugin_config->enable_menu;//可以获取到后台配置的值,即0或者1
注意:但要注意,当前版本中,如果对应的插件没有启用,那么可能会导致上述代码执行失败,从而导致系统挂掉。
这里列出常用的Widget_Options函数和用法,方便各位筒子方便查阅。
通过Widget_Options获取路径信息
获取内置URL
通过这类api,可以获取TE内置的一些特定URL。
$options = Helper::options();
#1 $options->feedUrl(); //或者 echo $op-feedUrl;
#2 $options->feedRssUrl();
#3 $options->feedAtomUrl();
#4 $options->commentsFeedUrl();
#5 $options->commentsFeedRssUrl();
#6 $options->commentsFeedAtomUrl();
#7 $options->xmlRpcUrl();
#8 $options->loginUrl(); //输出Typecho的登录URL地址
#9 $options->registerUrl(); //输出Typecho的注册URL地址
#10 $options->registerAction(); //输出Typecho的注册Action请求地址
#11 $options->profileUrl(); //输出Typecho用户的用户信息页面地址
#12 $options->logoutUrl(); //输出Typecho的注销地址,用户点击之后可实现注销操作。
将输出:
#1 https://www.78moban.com/index.php/feed/
#2 https://www.78moban.com/index.php/feed/rss/
#3 https://www.78moban.com/index.php/feed/atom/
#4 https://www.78moban.com/index.php/feed/comments/
#5 https://www.78moban.com/index.php/feed/rss/comments/
#6 https://www.78moban.com/index.php/feed/atom/comments/
#7 https://www.78moban.com/index.php/action/xmlrpc
#8 https://www.78moban.com/admin/login.php
#9 https://www.78moban.com/admin/register.php
#10 https://www.78moban.com/index.php/action/register?_=99788b0bb32d48206a3da981c342a590
#11 https://www.78moban.com/admin/profile.php
#12 https://www.78moban.com/index.php/action/logout
获取动态URL
通过这类api,可以动态获取相对于当前主题、当前插件等的URL。
Widget_Options::siteUrl()
$options->siteUrl(); //或者echo $options->siteUrl
$options->siteUrl('mypage.php');
// https://www.78moban.com/
// https://www.78moban.com/mypage.php
siteUrl()函数将输出相对于域名的url。如果参数为空,则输出网站所在域名,如果参数非空,则输出相对于/目录所在的URL。
Widget_Options::index()
$options->index(); //或者echo $options->index
$options->index('mypage.php');
// https://www.78moban.com/index.php/
// https://www.78moban.com/index.php/mypage.php
index函数输出相对于index.php的url,这个十分常用。如果参数为空,则输出index.php,如果参数非空,则输出相对于index.php所在的url。
注意:如果typecho后台开启了伪静态,那么Widget_Options::index()将会隐藏url中的index.php。
开启永久链接.png
那么:
$options->index(); //或者echo $options->index
$options->index('mypage.php');
// https://www.78moban.com/
// https://www.78moban.com/mypage.php
注意,相对上面,url中少了index.php。
Widget_Options::themeUrl()
$options->themeUrl();
$options->themeUrl('mypage.php');
// https://www.78moban.com/usr/themes/current_theme/
// https://www.78moban.com/usr/themes/current_theme/mypage.php
themeUrl函数将获取主题模板所在的目录。如果不带参数,将获取当前模板的/路径,如果参数非空,则获取相对于当前模板根目录的路径。
Widget_Options::pluginUrl()
$options->pluginUrl();
$options->pluginUrl('myplugin/some_script.php');
// https://www.78moban.com/usr/plugins/
// https://www.78moban.com/usr/plugins/myplugin/some_script.php
pluginUrl函数和themeUrl类似,不过pluginUrl没有“当前”插件的概念,即themeUrl会定位到当前启用的插件目录,即usr/theme/current_theme/,而pluginUrl仅定位到plugins目录,即usr/plugins/
Widget_Options::adminUrl()
$options->adminUrl();
$options->adminUrl('mypage.php');
// https://www.78moban.com/admin/
// https://www.78moban.com/admin/mypage.php
adminUrl和pluginUrl类似,可以动态定位到admin目录。
通过Widget_Options获取系统信息
$options->gmtTime();
//1424352251
$options->software();
//Typecho
$options->version();
//1.0/14.10.10
$options->contentType();
//text/html
echo $options->themeFile('my_theme');
// /path_to_your_site_ducutment/usr/themes/my_theme/
echo $options->themeFile('my_theme','mypage.php');
// /path_to_your_site_ducutment/usr/themes/my_theme/mypage.php
echo $options->pluginDir('TypechoDev');//[注意]
// /path_to_your_site_ducutment/usr/plugins
注意,通过阅读代码,当前版本(1.0/14.10.10)的Typecho中,pluginDir函数应该有bug,即此函数的参数没有生效,各位筒子在使用中注意一下。
通过Widget_Options获取后台配置
Widget_Options::plugin(‘TypechoDev’)函数,将获取到TypechoDev的配置。
$plugin_config = $options->plugin('TypechoDev');
echo get_class($plugin_config);
//Typecho_Config
假如插件TypechoDev下的Plugin.php文件,存在如下代码:
public static function config(Typecho_Widget_Helper_Form $form){
$enable_menu = new Typecho_Widget_Helper_Form_Element_Radio(
'enable_menu', array ('0' => '禁用', '1' => '启用'), '',
':', '');
$form->addInput($enable_menu);
}
那么在模板或者插件代码中,可以通过如此方式获取后台配置值:
$options = Helper::options();
$plugin_config = $options->plugin('TypechoDev');
$plugin_config->enable_menu;//可以获取到后台配置的值,即0或者1
注意:但要注意,当前版本中,如果对应的插件没有启用,那么可能会导致上述代码执行失败,从而导致系统挂掉。
新闻资讯 更多
猜你需要
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法