专注于WEB技术的IT博客

WBlog博客前台独立栏目页的实现方法

时间:2013-04-20分类: wblog浏览:3793
分享到:

WBlog博客的功能扩展很简单,我们将通过建立一个独立栏目页面来了解一下建立独立页面的方法。

目前现状:当初在设计WBlog博客的前台时,为了简洁,使用分支判断语句把栏目页并入到首页了,所以当点击栏目进入页面时,页面标题显示的还是网站的标题。


要实现的目标:点击每个WBlog博客分类进入的栏目页面都以栏目标题作为页面标题来显示。显然这样布局更加合理且更利于SEO,再看看wordpress也是这样来布局的。


目标实现步骤:

一、建立栏目控制器CatAction.class.php

首先下载WBlog3.1.2_2博客程序,进入到W3note\Lib\Action目录,新建一个栏目控制器CatAction.class.php,然后向其写入如下代码:

<?php
class CatAction extends CommonAction {
    public function index(){
          $listarr=$this->CategoryList();
          $this->assign('ance', D('Announce')->announce());
          $this->assign('newscoments', D('Comment')->newscoments());
          $this->assign('newslist', D('Blog')->newsinfo());
          $this->assign('randlist', D('News')->Rand());
          $this->assign('Catlist', D('Columns')->Catlist('News', 1));
          $this->assign('DateList', D('News')->DateList('News'));
          $this->assign('tags', D('Tag')->TagList('News'));
          $this->assign('Newsnum', D('News')->Artnums());
          $this->assign('Gknum', D('Guestbook')->Gknum());
          $this->assign('Cmnum', D('Comment')->Cmnum());
         $this->assign('Linklist', D('Link')->Linklist());
          $this->assign('title', $listarr['CategoryName']);
          $this->assign('urlname', $listarr['urlname']);
          $this->assign('info', $listarr['info']);
          $this->assign('page', $listarr['page']);
          $this->assign('menu', D('Columns')->menu());
        $this->display();
    }
     function CategoryList($where='',$pagesize=15,$order='id desc') {
         if (isset ($_GET['catid']) && !empty ($_GET['catid'])) {
               $where['catid'] = $_GET['catid'];
               $vo=M('Columns')->where(array('colId' =>$_GET['catid']))->find();
               $ModelName=$this->GetModuleName($vo['modelid']);
               $UrlName=$this->GetUrlName($vo['modelid']);
                                                                                            
          } else {
               $this->error404();
          }
          $D = D($ModelName);
          import("ORG.Util.Page");
          $count = $D->field('id')->where($where)->count();
          $P = new Page($count, $pagesize);
          $field = 'id,title,catid,keywords,description,inputtime,author,status,hits';
          $listinfo = $D->relation(true)->field($field)->
          where($where)->order($order)->
          limit($P->firstRow . ',' . $P->listRows)->select();
          $P->setConfig('header', '篇');
          $P->setConfig('prev', "«");
          $P->setConfig('next', '»');
          $P->setConfig('first', '|«');
          $P->setConfig('last', '»|');
          $page = $P->show();
          $listarr=array('info'=>$listinfo,'page'=>$page,
            'CategoryName'=>$vo['colTitle'],'urlname'=>$UrlName);
          return $listarr;
                                                                                       
     }
     public function GetModuleName($ModelId) {
          $Marray = array (
               'News' => 1,
               'Blog' => 2,
               'Download' => 3,
          );
          $ModuleName =  implode(',', array_keys($Marray, $ModelId));
          return $ModuleName;
     }
     public function GetUrlName($ModelId) {
          $Marray = array (
               'web' => 1,
               'blog' => 2,
               'down' => 3,
          );
          $UrlName =  implode(',', array_keys($Marray, $ModelId));
          return $UrlName;
     }
}

二、建立栏目模板

进入到W3note\Tpl目录新建一个文件夹并命名为Cat,然后复制W3note\Tpl\Index\index.html文件到刚才新建的目录W3note\Tpl\Cat\里,至此栏目模板有了模板文件index.html。


三、向配置文件写入URL规则

打开\W3note\Conf\config.php配置文件,向数组$config添加一项栏目路由配置"'cat/:catid\d'=>'cat/index',",配置好的数组$config如下

$config =array(   
          'URL_MODEL'=>2, // 如果你的环境不支持PATHINFO 请设置为3
          'URL_ROUTER_ON'=> true,
          'URL_HTML_SUFFIX'=>'.html',
          'URL_ROUTE_RULES'=> array(
        'blog/:id\d'=>'blog/read',
          'web/:id\d'=>'web/read',
          'page/:id\d'=>'page/index',
          'index/:catid\d'=>'Index/index',
          'cat/:catid\d'=>'cat/index',//新添加的栏目路由配置项
          'blog/:catid\d'=>'Blog/index',
          'blog/:catid\d'=>'Blog/category',
        ),
          'URL_CASE_INSENSITIVE'      => true,   // 默认false 表示URL区分大小写 true则表示不区分大
          'SESSION_AUTO_START'        =>true,
        'USER_AUTH_ON'              =>true,
        'USER_AUTH_TYPE'               =>1,          // 默认认证类型 1 登录认证 2 实时认证
          'VAR_PAGE'                  =>'p',
          'USER_AUTH_KEY'             =>'userid',
          'SHOW_PAGE_TRACE'           =>  1,//显示调试信息
          'DEFAULT_FILTER'            => 'htmlspecialchars',//过滤方法
          'WORD_FILE'           =>  './W3note/Common/',//显示调试信息
    );

四、修改模板分类链接路径

打开步骤二建立的模板文件W3note\Tpl\Cat\index.html找到分类链接路径{:U('/index/'.$cat['colId'])}和{:U('/cat/'.$info['catid'])},都修改为{:U('/cat/'.$cat['colId'])};


五、修改栏目模板文章列表标题链接

打开W3note\Tpl\Cat\index.html栏目模板文件,找到<div class="title"><strong><a title="{$info['title']}" href="{:U('/web/'.$info['id'])}">{$info['title']}</a></strong></div>

修改为

<div class="title"><strong><a title="{$info['title']}" href="{:U('/'.$urlname.'/'.$info['id'])}">{$info['title']}</a></strong></div>


六、验证演示

 到这里已经完成了,我们来看一下效果:打开http://w3note.com网页,然后点击右栏的“主博客分类”


关注细节:wblog博客程序的所有文件都是utf-8编码的,所以为了避免引起不必要的中文乱码现象,在步骤一“建立栏目控制器CatAction.class.php”,最好复制wblog博客里面后缀为".php"的文件,然后修改文件名称和复制粘贴步骤一的代码。



猜你喜欢
wblog3.1.3_2升级说明
比较一下wblog在谷歌和百度的排名
如何让ThinkPHP的模板引擎达到最佳效率
WB3.1.2_2版本使用说明
js选中下拉框项自动提交表单
WBlog3.1升级到WBlog3.12啦
KindEditor在thinkphp上的使用方法
给thinkphp3.1案例blog写一个更新tag的函数
Wblog博客程序管理系统
标签 : wblog ThinkPHP
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/103.html,谢谢。
  • 评论
  • 赞助本站