Hongmu Notes
Home Program Notes TypechoWidget
Program Notes Typecho

TypechoWidget

TypechoWidget

Through Typecho's Widget_Options, you can easily obtain Typecho's system information, or easily obtain related configurations, resource paths, etc.

Commonly used Widget_Options functions and usage are listed here for your convenience.

Get path information through Widget_Options

Get built-in URL

Through this type of API, you can obtain some specific URLs built into TE.

$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的注销地址,用户点击之后可实现注销操作。

will output:


#1  http://www.4s5.cn/index.php/feed/
#2  http://www.4s5.cn/index.php/feed/rss/
#3  http://www.4s5.cn/index.php/feed/atom/
#4  http://www.4s5.cn/index.php/feed/comments/
#5  http://www.4s5.cn/index.php/feed/rss/comments/
#6  http://www.4s5.cn/index.php/feed/atom/comments/
#7  http://www.4s5.cn/index.php/action/xmlrpc
#8  http://www.4s5.cn/admin/login.php
#9  http://www.4s5.cn/admin/register.php
#10 http://www.4s5.cn/index.php/action/register?_=99788b0bb32d48206a3da981c342a590
#11 http://www.4s5.cn/admin/profile.php
#12 http://www.4s5.cn/index.php/action/logout

Get dynamic URL

Through this type of API, you can dynamically obtain URLs relative to the current theme, current plug-in, etc.

Widget_Options::siteUrl()

$options->siteUrl(); //或者echo $options->siteUrl
$options->siteUrl('mypage.php');
// http://www.4s5.cn/
// http://www.4s5.cn/mypage.php

The siteUrl() function will output the url relative to the domain name. If the parameter is empty, the domain name of the website is output. If the parameter is not empty, the URL relative to the / directory is output.

Widget_Options::index()

$options->index(); //或者echo $options->index
$options->index('mypage.php');
// http://www.4s5.cn/index.php/
// http://www.4s5.cn/index.php/mypage.php

The index function outputs the URL relative to index.php, which is very commonly used. If the parameter is empty, index.php is output. If the parameter is non-empty, the URL relative to index.php is output.

Note: If pseudo-static is enabled in the typecho background, Widget_Options::index() will hide index.php in the URL.

Enable permanent link.png

Then:

$options->index(); //或者echo $options->index
$options->index('mypage.php');
// http://www.4s5.cn/
// http://www.4s5.cn/mypage.php

Note that compared to the above, index.php is missing from the url.

Widget_Options::themeUrl()

$options->themeUrl();
$options->themeUrl('mypage.php');
// http://www.4s5.cn/usr/themes/current_theme/
// http://www.4s5.cn/usr/themes/current_theme/mypage.php

The themeUrl function will get the directory where the theme template is located. If there is no parameter, the / path of the current template will be obtained. If the parameter is non-empty, the path relative to the root directory of the current template will be obtained.

Widget_Options::pluginUrl()

$options->pluginUrl();
$options->pluginUrl('myplugin/some_script.php');
// http://www.4s5.cn/usr/plugins/
// http://www.4s5.cn/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');
// http://www.4s5.cn/admin/
// http://www.4s5.cn/admin/mypage.php

adminUrl is similar to pluginUrl and can be dynamically located to the admin directory.
Get system information through 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,即此函数的参数没有生效,各位筒子在使用中注意一下。

Get background configuration through Widget_Options

Widget_Options::plugin('TypechoDev') function will obtain the configuration of TypechoDev.

$plugin_config = $options->plugin('TypechoDev');
echo get_class($plugin_config);
//Typecho_Config

If the Plugin.php file under the plug-in TypechoDev contains the following code:

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);
}

Then in the template or plug-in code, you can get the background configuration value in this way:

$options = Helper::options();
$plugin_config = $options->plugin('TypechoDev');
$plugin_config->enable_menu;//可以获取到后台配置的值,即0或者1
注意:但要注意,当前版本中,如果对应的插件没有启用,那么可能会导致上述代码执行失败,从而导致系统挂掉。
微信赞赏

WeChat

支付宝赞赏

Alipay

✍️ Author: Hong Mu

webmaster · Thanks for reading, stay tuned for more exciting content

Author homepage View home page →

Related articles

Resource website typecho001 template

Resource website typecho001 template Program Notes Typecho

typecho001 template template please do not modify the folder name of this template. The folder name is: typecho001 1.4 Fix the js output problem on the article page 1.3 Fix the error prompt when the plug-in is not installed Optimize the list page code output 1.2 Fix the comment function and add a custom homepage title 1.1 Fix the comment reply asymmetry function Add a separate title setting function on the homepage Add the website favicon.ico icon Add one...
👁 198
Modification of typecho paging style

Modification of typecho paging style Program Notes Typecho

Sir, times have changed! Typecho is currently the most perfect solution, because Baidu can only see the code of fixed thinking. The actual generated HTML code is breathtakingly clean and fully customized, including adding classes to the li element, adding classes to the a element, adding classes to the previous page and next page, and removing the li tags that come with typecho to express more. I can even add some text to the content inside...
👁 516
Typecho article page comment style modification

Typecho article page comment style modification Program Notes Typecho

When you need to use typecho for template development, the default comment style is ugly. Therefore, comments need to be re-output or styled. The default comment template file path is: comments.php Mainly used related variables<?php $comments->gravatar('40', ''); ?> //Avatar has two parameters, size,...
👁 387
Typecho's API for adding, deleting, modifying and querying databases

Typecho's API for adding, deleting, modifying and querying databases Program Notes Typecho

Typecho database provides a very easy-to-use API, which is not much different from the native SQL writing method. At the same time, it also handles common SQL security issues, such as SQL injection. From a practical perspective, this article introduces common scenarios for typecho to operate databases and related API usage. Table creation and deletion During the development process of Typecho plug-in, you often need to create your own table. Typecho_… mentioned above
👁 552
Summary of methods for calling popular comment articles and calling latest articles in Typecho

Summary of methods for calling popular comment articles and calling latest articles in Typecho Program Notes Typecho

Typecho articles call the Typecho program. When designing a theme, the sidebar sometimes needs to call popular articles or the latest articles. We can call it directly through the script at the specified location. In this article, we will organize this method of calling articles, which can be directly called and used in templates where needed in the future. In fact, designing a theme is just that. After the static template is completed, it is called directly. The latest article calls <?php $t…
👁 295
Typecho calls the list of classified articles

Typecho calls the list of classified articles Program Notes Typecho

The number after pageSize represents the number of called articles; the number after mid represents the called category ID; Tip: The method to obtain the Typecho category ID is to move the mouse over a certain category name. The number after mid= displayed in the browser status bar is the category ID. Edit the current typecho theme template and add the following code where you want to call a category. Method 1: widget...
👁 360

Recommended reading

PHP ob function record

PHP ob function record Language Notes PHP

Usage of the following three functions ob_get_contents(); ob_end_clean(); ob_start(); You can use these functions to buffer local files and execute local script code. Use ob_start() to save the output code into the buffer, and the page will not be displayed; then use ob_get_contents to get the data in the buffer. o…
👁 141
PHP preg

PHP preg Language Notes PHP

The preg_match_all function is used to perform a global regular expression match. preg_match_all() Syntax int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG…
👁 169
Detailed explanation of PHP ternary operator and if

Detailed explanation of PHP ternary operator and if Language Notes PHP

Ternary operator condition ? Result 1 : Result 2 Explanation: The position in front of the question mark is the condition for judgment. If the condition is met, the result is 1, and if it is not met, the result is 2. This article compares and explains the ternary operator and if...else... in detail. I hope it will be helpful to everyone. Today when I was revising my paper online, I encountered a statement that I couldn’t understand: $if_summary = $row['IF_SUMMARY']=…
👁 189
PHP cast type

PHP cast type Language Notes PHP PHP collection PHP and mysql

Get the data type 1. If you want to check the value and type of an expression, use var_dump(). 2. If you just want to get an easy-to-read type expression for debugging, use gettype(). 3. To check a certain type, do not use gettype(), but use the is_type() function. Converting Strings to Numbers When a string is evaluated as a number, the result is determined according to the following rules...
👁 232