ecshop内页显示最新文章

第一、

我们打开根目录下index.php,找到

$smarty->assign('new_articles',    index_get_new_articles());   // 最新文章

添加到includes/init.php中的$smarty->assign('lang', $_LANG);下面。

第二,

将index.php中的函数

/**
 * 获得最新的文章列表。
 *
 * @access  private
 * @return  array
 */
function index_get_new_articles()
{
    $sql = 'SELECT a.article_id, a.title, ac.cat_name, a.add_time, a.file_url, a.open_type, ac.cat_id, ac.cat_name ' .
            ' FROM ' . $GLOBALS['ecs']->table('article') . ' AS a, ' .
                $GLOBALS['ecs']->table('article_cat') . ' AS ac' .
            ' WHERE a.is_open = 1 AND a.cat_id=13 AND a.cat_id = ac.cat_id AND ac.cat_type = 1' .
            ' ORDER BY a.article_type DESC, a.add_time DESC LIMIT ' . $GLOBALS['_CFG']['article_number'];
    $res = $GLOBALS['db']->getAll($sql);

    $arr = array();
    foreach ($res AS $idx => $row)
    {
        $arr[$idx]['id']          = $row['article_id'];
        $arr[$idx]['title']       = $row['title'];
        $arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ?
                                        sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];
        $arr[$idx]['cat_name']    = $row['cat_name'];
        $arr[$idx]['add_time']    = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);
        $arr[$idx]['url']         = $row['open_type'] != 1 ?
                                        build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']);
        $arr[$idx]['cat_url']     = build_uri('article_cat', array('acid' => $row['cat_id']), $row['cat_name']);
    }

    return $arr;
}

放到init.php中,删除index.php中该函数,否则首页会报错。

第三,

在需要调用的地方添加如下代码进行调用

<dl>
<!--{foreach from=$new_articles item=article}-->
  <dt>
  <a href="{$article.url}" title="{$article.title|escape:html}">{$article.short_title|truncate:15:"...":true}</a>
 </dt>
<!--{/foreach}-->
</dl>

 

posted @ 2012-03-03 10:02  lonelystarxing  阅读(410)  评论(0编辑  收藏  举报