thinkphp 栏目-thinkphp栏目如何实现自定义url

问题描述

thinkphp栏目如何实现自定义url

问题:thinkphp我现在已经设置好了栏目表和栏目所属模型表,新建了自定义标签库实现栏目名称和链接的前台输出,但是链接没有实现自定义url,也就是根据栏目所属的模型访问相应的tp控制器模板。比如:前台有 网站首页(外部链接)、公司介绍(单页模型)、新闻动态(文章模型)、产品展示(产品模型)四个栏目,放在数据库Column表里,当前台点击网站首页(外部链接)时,跳转到Column表填写的链接字段;当前台点击 公司介绍(单页模型)时,跳转到单页控制器列表List_page.html,内容页Show_page.html;当前台点击 新闻动态(文章模型)时,跳转到文章控制器列表List_article.html,内容页Show_article.html。如何实现呢?谢谢

1、自定义标签库TagLibMy.class.php

<?php
/**
 * 自定义标签库
 */
import('TagLib');

class TagLibMy extends TagLib{
    // 标签定义
    protected $tags=array(
        // 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
        'navlist'=>array('attr'=>'limit,order','close'=>1), //不闭合标签
        );

    //导航条标签
    public function _navlist($attr, $content) {
        $attr = $this->parseXmlAttr($attr);
        $str = <<<str
<?php

    $_nav_m=M('Column')->order("{$attr['order']}")->where("column_status=0")->select();
    import('Class.Category', APP_PATH);
    $_nav_m=Category::unlimitedForLayer($_nav_m);

    foreach($_nav_m as $_nav_v):
            extract($_nav_v);
            $url = U('/list/' . $id);
?>
str;

    $str .= $content;
    $str .='<?php endforeach;?>';
    return $str;

    }

}

?>

2、数据库

时间: 2024-11-05 19:32:17

thinkphp 栏目-thinkphp栏目如何实现自定义url的相关文章

ThinkPHP模板之变量输出、自定义函数与判断语句用法_php实例

本文实例讲述了ThinkPHP模板之变量输出.自定义函数与判断语句用法.主要包括变量输出.自定义函数与判断语句三种用法.分享给大家供大家参考.具体分析如下: 模板操作变量输出: 快捷输出变量 复制代码 代码如下: {:function(-)} //执行方法并输出返回值 {~function} //执行方法不输出 {@var} //输出Session变量 {#var} //输出Cookie变量 {&var} //输出配置参数  {%var} //输出语言变量 {.var} //输出GET变量 {^

dedecms二级栏目和栏目名称调用用法集合

(1)自动调用大栏目下的二级栏目代码.放到相应模板,会在该栏目的列表页和文章页自动调用处该大栏目下的二级栏目名称  代码如下 复制代码 {DEDE:channel type='son' } <li><a href="[field:typeurl/]"><span>[field:typename/]</span></a></li> {/dede:channel} (2) 如果要调用特定某一个大分类下面的二级,需要设置

thinkphp中获取栏目和文章的当前位置

今天把博客一些细节完善了一下,其中修改了一下栏目页和文章页中的"当前位置".以前栏目很少,就用死办法做的(首页 -> 栏目的名字),现在栏目多了,渐渐二级栏目,三级栏目也来了,这样的方式显然不太合适,于是就改进了一下.也不难,利用一个递归函数就可以了. 测试效果 查看源文件效果:<a href="http://www.111cn.net">首页</a> -> <a href="/cat_2.html"&g

thinkphp 3.2.3 入门示例2(URL传参数的几种方式)

原文:thinkphp中URL传参数的几种方式 在thinkphp中,url传参合asp.net中原理类似,下面就单个参数和多个参数传递方式进行一个简单讲解 1.传单个参数  单个参数这种比较简单,例如 想像edit操作里面传递一个id值,如下写法__URL__/edit/id/1 http://localhost/index.php/user/edit/id/1 id和其值1要分别位于/后面 后台获取id通过    $id=$_GET['id']   即可获取其具体值. 2.传多个参数 传多个

Dedecms栏目绑定二级域名RSS文件地址URL错误

解决方法: 修改文件:include/arc.rssview.class.php 找到  代码如下 复制代码 $this->TypeFields['typelink']=$GLOBALS['cfg_basehost'].$this->TypeLink->GetOneTypeUrl($this->TypeFields); 改为  代码如下 复制代码 $this->TypeFields['typelink']=($GLOBALS['cfg_multi_site']=="

Magento 自定义Url

查看Url重写列表,在后台的Catalog > URL Rewrite Management访问这个列表.点击每个重写旁边的Edit就可以修改这个重写的信息.支持分类,产品,自定义其他URL id path:系统建立分类后会分配给每个分类一个值,如第三步中的84 request path:我们想要URL变成怎样的形态,这里会展示在浏览器的地址栏中,也是SEO非常重要的一步 target path:magento系统内部归类用的分类和地址,通常由很多级构成,对用户来讲URL不友好,也是我们要更改的

dede5.7栏目增加栏目缩略图或栏目banner

 首先.新加字段 icon 后台执行SQL: alter table `dede_arctype` add `icon` char(200) NOT NULL default ''; 涉及到文件: dede/catalog_add.php ; dede/catalog_edit.php ; dede/templets/catalog_add.htm ; dede/templets/catalog_edit.htm ; 打开dede/catalog_add.php查找 $queryTemplate

wordpress自定义url参数实现路由功能的代码示例_php实例

经过两天的正则表达式的学习,和研究wordpress的路由函数,成功实现了自定义wordpress路由功能,以下是路由规则的实现.如果有自定义的url参数,要通过路由传递,必须通过wordpress的函数将参数添加进去: 复制代码 代码如下: //add query_argsfunction add_query_vars($aVars) {    $aVars[] = 'score';    $aVars[] = 'type'; // represents the name of the pro

wordpress实现自定义URL到自定义页面

一直有如此的需求,比如用wordpress搭建一个公司门户,需要一个产品列表的页面,这个页面需要完全自定义的程序去实现,无法实现为一篇文章或者一个页面,这在wordpress原来的系统中似乎很难实现. 其实这个功能唯一需求的地方,就是能够自定义一个URL然后映射到主题中自定义的一个页面中即可,对于数据库的读写还有其他的逻辑实现,完全可以在主题文件中用PHP代码随心所欲地实现,数据库表也可以随意建,这些都不是问题.但是wordpress就是没有提供额外的URL映射功能,有一个add_rewrite