今天应朋友的要求,将Joomla!里的Blog方式输出的格式给改了下。因为只能更改特定分类的输出界面,所以,除了修改特定代码,还得加入一点判断进去。
其实,除了上面的要求,还有一点要求,那就是要将该分类下的文章按月份输出。本来上面那个比较好修改,但是,要实现文章的按月份输出就有些困难了。因为Joomla!原先没有这方面的控制。没办法,只好去分析、修改了。
下来,我们就先来进行按月分检索部分的修改。
打开components/com_content/content.php,搜索
其实,除了上面的要求,还有一点要求,那就是要将该分类下的文章按月份输出。本来上面那个比较好修改,但是,要实现文章的按月份输出就有些困难了。因为Joomla!原先没有这方面的控制。没办法,只好去分析、修改了。
下来,我们就先来进行按月分检索部分的修改。
打开components/com_content/content.php,搜索
- $limit = $limit ? $limit : ( $intro + $leading + $links );
,注意,这个文件中至少有两个这样的位置,第一个是Section的Blog输出处理,第二个是Category的Blog处理。因为我只需要对分类的Blog输出进行修改,所以我是在第二个位置下面添加:
- //取得月份列表
- $sm = mosGetParam($_REQUEST,’sm’);
- $query = "SELECT left(a.created,7) as m"
- . "\n FROM content AS a"
- . "\n LEFT JOIN categories AS cc ON cc.id = a.catid"
- . "\n LEFT JOIN users AS u ON u.id = a.created_by"
- . "\n LEFT JOIN sections AS s ON a.sectionid = s.id"
- . "\n LEFT JOIN groups AS g ON a.access = g.id"
- . $where
- ;
- $database->setquery($query);
- $rows=$database->loadobjectlist();
- $smtext=”;
- if($rows){
- $ss=array();
- foreach($rows as $k=>$v){
- if(!in_array($v->m,$ss))
- $ss[]=$v->m;
- }
- $link="index.php?option=com_content&task=blogcategory&id=$id&Itemid=$Itemid&sm=";
- foreach($ss as $k => $v) {
- $smlink=$link.$v;
- $smtext.="<a href=$smlink>$v</a>, ";
- }
- $smtext=substr($smtext,0,-2);
- }
- $params->smtext= $smtext;
- if($sm) {
- $s1=intval(substr($sm,0,2));
- if($s1>0){
- $s1=intval(substr($sm,-2));
- if($s1>0)
- $where.=" and left(a.created,7)=’$sm’";
- }
- }
- //月份列表取出完成
然后搜索:
- echo ‘<table class="blog’ . $params->get( ‘pageclass_sfx’ ) . ‘" cellpadding="0" cellspacing="0">’;
找到以后,在其下一行添加:
- if($params->smtext) echo "<tr><td>".$params->smtext."<td></tr>";
输出格式部分的修改
搜索
- HTML_content::show( $row, $params, $access, $page );
-
将此行修改成:
- global $task,$id;
- if ( $task==’blogcategory’ && $id=="我要修改的分类ID" ) {
- HTML_content::show_1($row, $params, $access, $page );
- } else {
- HTML_content::show( $row, $params, $access, $page );
- }
现在,我们只需要将components/com_content/content.html.php中的function show(….部分复制一份出来,然后将名字改为show_1,就可以进行输出格式的修改了。这里,具体的输出格式我就不描述了。











评论