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 http://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';
    }
}

效果

Typecho中为插件添加路由:addRoute

就这么简单!

下面我们继续在sitemap插件的编写教程中继续演示addRoute的用法哈


版权声明:未经书面授权禁止转载、摘编、复制或建立镜像。对既成事实本站将保留所有的权利。