ECShop内页如何调用最新文章列表
1个回答
展开全部
首先打开article.php 及 article_cat.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 = 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]['titles'] = $row['title'];
$arr[$idx]['short_titles'] = $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]['urls'] = $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;
}
还需要加上这句smarty语句:
$smarty->assign('new_articles', index_get_new_articles()); // 最新文章
因为用首页的new_articles.lbi会更内页新闻的标题内容产生冲突,所以需要自己建立一个文件,这里命名为one_article.lbi吧,文件中的代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="tle-5"><a href="article_cat.php?id=12">NEWS</a></div>
<div class="box-2 pb5">
<div class="list-1 pb10 link1">
<ul>
<!--{foreach from=$new_articles item=article}-->
<li><a href="{$article.urls}" title="{$article.titles|escape:html}">{$article.short_titles|truncate:20:"...":true}</a></li>
<!--{/foreach}-->
</ul>
</div>
</div>
<div class="cl"></div>
最后在article.dwt 、article_cat.dwt 、article_pro.dwt文件中需要显示的位置调用one_article.lbi文件即可。
<!-- #BeginLibraryItem "/library/one_article.lbi" --><!-- #EndLibraryItem -->
/**
* 获得最新的文章列表。
*
* @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 = 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]['titles'] = $row['title'];
$arr[$idx]['short_titles'] = $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]['urls'] = $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;
}
还需要加上这句smarty语句:
$smarty->assign('new_articles', index_get_new_articles()); // 最新文章
因为用首页的new_articles.lbi会更内页新闻的标题内容产生冲突,所以需要自己建立一个文件,这里命名为one_article.lbi吧,文件中的代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="tle-5"><a href="article_cat.php?id=12">NEWS</a></div>
<div class="box-2 pb5">
<div class="list-1 pb10 link1">
<ul>
<!--{foreach from=$new_articles item=article}-->
<li><a href="{$article.urls}" title="{$article.titles|escape:html}">{$article.short_titles|truncate:20:"...":true}</a></li>
<!--{/foreach}-->
</ul>
</div>
</div>
<div class="cl"></div>
最后在article.dwt 、article_cat.dwt 、article_pro.dwt文件中需要显示的位置调用one_article.lbi文件即可。
<!-- #BeginLibraryItem "/library/one_article.lbi" --><!-- #EndLibraryItem -->
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询