Typecho中为插件添加路由:addRoute
Helper::addRoute接口,可以往typecho里面添加特定的路由策略,进而将url请求重定向到自己的控制器或者插件上。
本文我们来完成一个简单的实例,将www.typechodev.com/index.php/my_action
的情况发送到插件目录下的Widget上,并进行输出。
第一步,当然还是创建插件目录了。
这里我们在plugins目录下创建插件MyRoute。
然后,在插件文件Plugin.php中增加配置代码。这里当然就是addRoute了。
<?php
/**
* AddRouteDemo
* @package MyRouteDemo
* @author 雷鬼
* @version 1.0.0
* @link https://www.typechodev.com
*/
class MyRoute_Plugin implements Typecho_Plugin_Interface {
public static function activate() {
Helper::addRoute("route_to_my_action","/my_action","MyRoute_Action",'action');
}
public static function deactivate() {
Helper::removeRoute("route_to_my_action");
}
}
解析:addRoute的定义如下:
/**
* 增加路由
*
* @access public
* @param string $name 路由名称
* @param string $url 路由路径
* @param string $widget 组件名称
* @param string $action 组件动作
* @param string $after 在某个路由后面
* @return integer
*/
public static function addRoute($name, $url, $widget, $action = NULL, $after = NULL)
{
}
所以Helper::addRoute("route_to_my_action","/my_action","MyRoute_Action",'action')
的意思就是:添加一条路由,将your.site.com/index.php/my_action
的请求发送到MyRoute_Action这个widget上。
接着,我们来实现我们的响应Widget
<?php
class MyRoute_Action implements Widget_Interface_Do {
public function execute() {
//Do nothing
}
public function action(){
echo 'in my action';
}
}
效果
就这么简单!
下面我们继续在sitemap插件的编写教程中继续演示addRoute的用法哈
版权声明:未经书面授权禁止转载、摘编、复制或建立镜像。对既成事实本站将保留所有的权利。
评论已关闭