PHP uxf framework 在模版中加入url标签

1. 确保不修改discuz代码;

2. 继承discuz template类,重载parse_template 方法;由于discuz在模版引擎这一块没有考虑扩展性,对标签的解析全部写在一个方法中,因此只能重复大量代码进行重载;其中调用到的createurl方法放在idx.php 入口文件中,其实这里也可以直接调用原始的静态方法 - Mvc_Router::creatUrl();

 

https://gitcafe.com/web3d/uxf/blob/master/upload/source/class/mvc/mvc_template.php

 

<p>msg:{$msg}</p>

<p>Welcome,Phper.</p>

<a href="{url:'/senery-ticket/list'}">门票</a>
<a href="{url:'/senery-ticket/order/id/' . $ticket_id}">订购门票</a>

 

 

3. 不覆盖discuz的结果,就是这些扩展的东西只能在uxf体系里使用

 

统一路由构造与解析 说明

比如模版中统一的url写法

{url:'/api-main/list/type/linux/order/1/name/'.$val.name}

 

参数说明:

  • api:模块,默认模块common可不用添加,如 /news/list/id/10
  • main:控制器
  • list:动作
  • 其他:都是参数

在普通url模式下,上述写法将会生成

idx.php?module=api&mod=main&action=list&type=linux&order=1&name=Ubuntu

 

这样的完整的url。

在pathinfo的模式下,将会生成

/api-main/list/type/linux/order/1/name/Ubuntu

 

在Diy的模式下,将根据自己定义的方式生成,如

/api/linux/Ubuntu

 

posted @ 2014-03-10 19:13  x3d  阅读(383)  评论(0编辑  收藏  举报