Joomla! 中文开发

2010-03-11 星期四
  • 登录
  • 注册新帐户
    Registration
    *
    *
    *
    *
    *
    带星号(*)的项目为必填项!
    • 放大字号
    • 默认字号
    • 缩小字号
    •  color
    • cyan color
    • deepblue color
    • green color
    • lime color
    • orange color
    • pink color
    • red color
    首页 Joomla!相关 个人体会 Blog方式输出时的格式自定义
    Blog方式输出时的格式自定义
      今天应朋友的要求,将Joomla!里的Blog方式输出的格式给改了下。因为只能更改特定分类的输出界面,所以,除了修改特定代码,还得加入一点判断进去。
      其实,除了上面的要求,还有一点要求,那就是要将该分类下的文章按月份输出。本来上面那个比较好修改,但是,要实现文章的按月份输出就有些困难了。因为Joomla!原先没有这方面的控制。没办法,只好去分析、修改了。
      下来,我们就先来进行按月分检索部分的修改
      打开components/com_content/content.php,搜索
    1. $limit = $limit ? $limit : ( $intro + $leading + $links );

    ,注意,这个文件中至少有两个这样的位置,第一个是Section的Blog输出处理,第二个是Category的Blog处理。因为我只需要对分类的Blog输出进行修改,所以我是在第二个位置下面添加:

    1. //取得月份列表
    2.  $sm = mosGetParam($_REQUEST,’sm’);
    3.  $query = "SELECT left(a.created,7) as m"
    4.  . "\n FROM content AS a"
    5.  . "\n LEFT JOIN categories AS cc ON cc.id = a.catid"
    6.  . "\n LEFT JOIN users AS u ON u.id = a.created_by"
    7.  . "\n LEFT JOIN sections AS s ON a.sectionid = s.id"
    8.  . "\n LEFT JOIN groups AS g ON a.access = g.id"
    9.  . $where
    10.  ;
    11.  $database->setquery($query);
    12.  $rows=$database->loadobjectlist();
    13.  $smtext=”;
    14.  if($rows){
    15.   $ss=array();
    16.   foreach($rows as $k=>$v){
    17.    if(!in_array($v->m,$ss))
    18.    $ss[]=$v->m;
    19.   }
    20.   $link="index.php?option=com_content&task=blogcategory&id=$id&Itemid=$Itemid&sm=";
    21.   foreach($ss as $k => $v) {
    22.    $smlink=$link.$v;
    23.    $smtext.="<a href=$smlink>$v</a>, ";
    24.   }
    25.   $smtext=substr($smtext,0,-2);
    26.  }
    27.  $params->smtext= $smtext;
    28.  if($sm) {
    29.   $s1=intval(substr($sm,0,2));
    30.   if($s1>0){
    31.    $s1=intval(substr($sm,-2));
    32.    if($s1>0)
    33.    $where.=" and left(a.created,7)=’$sm’";
    34.   }
    35.  }
    36. //月份列表取出完成

    然后搜索:

    1. echo ‘<table class="blog’ . $params->get( ‘pageclass_sfx’ ) . ‘" cellpadding="0" cellspacing="0">’;

    找到以后,在其下一行添加:

    1. if($params->smtext) echo "<tr><td>".$params->smtext."<td></tr>";

      输出格式部分的修改
      搜索

    1. HTML_content::show( $row, $params, $access, $page );
    2.  

    将此行修改成:

    1. global $task,$id;
    2.  if ( $task==’blogcategory’ && $id=="我要修改的分类ID" ) {
    3.   HTML_content::show_1($row, $params, $access, $page );
    4.  } else {
    5.   HTML_content::show( $row, $params, $access, $page );
    6.  }

      现在,我们只需要将components/com_content/content.html.php中的function show(….部分复制一份出来,然后将名字改为show_1,就可以进行输出格式的修改了。这里,具体的输出格式我就不描述了。

    评论

    姓名 *
    Email (用于验证及回复)
    验证码   
    ChronoComments by Joomla Professional Solutions
    提交评论
    最后更新 ( 2008-05-18 18:04 )