ecshop怎么全局调用指定文章二级分类
3个回答
展开全部
<?$GLOBALS['smarty']->assign('article_categories', article_categories_tree(0)); //文章分类树?><!--{foreach from=$article_categories item=cat}--> {if $cat.id eq 16} <!--{foreach from=$cat.children item=child}--> <li ><a href="{$child.url}">{$child.name|escape:html}</a></li> <!--{/foreach}--> {/if}<!--{/foreach}-->
其中 {if $cat.id eq 16}的意思是调用文章分类ID为16下的二级文章分类
1、先打开ecshop根目录下的includes/init.php文件加入以下代码:
$smarty->assign('class_articles_1', index_get_class_articles(1,6)); // 分类调用文章
//调用多个就修改传进去的参数,以及模板接收的变量,其中上面的1就是文章分类ID,其中6是调用数量
$smarty->assign('class_articles_2', index_get_class_articles(2,6)); // 分类调用文章
复制代码
index_get_class_articles( )函数中的第一个参数就是我的文章分类ID,这个ID怎么查找呢?
我的做法是进入ecshop的数据库,打开ecs_article_cat这张表,可以发现你要显示的文章分类对应的cat_id,这个就是文章分类ID,直接在index_get_class_articles( )函数中调用就可以了。
2、在init.php文件末尾加入下列函数:
function index_get_class_articles($cat_aid, $cat_num)
{
$sql = "SELECT article_id, title,open_type,cat_id,file_url FROM " .$GLOBALS['ecs']->table('article'). " WHERE cat_id = ".$cat_aid." and is_open = 1 LIMIT " . $cat_num;
$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']));
}
return $arr;
}
3、以下是前台的调用代码:
<!--{foreach from=$class_articles_1 item=article}-->
<li><a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a></li>
<!--{/foreach}-->
其中 {if $cat.id eq 16}的意思是调用文章分类ID为16下的二级文章分类
1、先打开ecshop根目录下的includes/init.php文件加入以下代码:
$smarty->assign('class_articles_1', index_get_class_articles(1,6)); // 分类调用文章
//调用多个就修改传进去的参数,以及模板接收的变量,其中上面的1就是文章分类ID,其中6是调用数量
$smarty->assign('class_articles_2', index_get_class_articles(2,6)); // 分类调用文章
复制代码
index_get_class_articles( )函数中的第一个参数就是我的文章分类ID,这个ID怎么查找呢?
我的做法是进入ecshop的数据库,打开ecs_article_cat这张表,可以发现你要显示的文章分类对应的cat_id,这个就是文章分类ID,直接在index_get_class_articles( )函数中调用就可以了。
2、在init.php文件末尾加入下列函数:
function index_get_class_articles($cat_aid, $cat_num)
{
$sql = "SELECT article_id, title,open_type,cat_id,file_url FROM " .$GLOBALS['ecs']->table('article'). " WHERE cat_id = ".$cat_aid." and is_open = 1 LIMIT " . $cat_num;
$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']));
}
return $arr;
}
3、以下是前台的调用代码:
<!--{foreach from=$class_articles_1 item=article}-->
<li><a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a></li>
<!--{/foreach}-->
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?
$GLOBALS['smarty']->assign('article_categories', article_categories_tree(0)); //文章分类树
?>
<!--{foreach from=$article_categories item=cat}-->
{if $cat.id eq 16}
<!--{foreach from=$cat.children item=child}-->
<li ><a href="{$child.url}">{$child.name|escape:html}</a></li>
<!--{/foreach}-->
{/if}
<!--{/foreach}-->
其中 {if $cat.id eq 16}的意思是调用文章分类ID为16下的二级文章分类
更多追问追答
追问
谢谢你啊,真的成功了,但是我想请问一下,如果我要在调用这里栏目下的另一个参数应该这么导出来呢,求解答
追答
调分类ID是16的分类名称吗?
多加这一行代码就可以了<a href="{$cat.url}" style="font-weight:bold;">{$cat.name|escape:html}</a>
<?
$GLOBALS['smarty']->assign('article_categories', article_categories_tree(0)); //文章分类树
?>
<!--{foreach from=$article_categories item=cat}-->
{if $cat.id eq 16}
<a href="{$cat.url}" style="font-weight:bold;">{$cat.name|escape:html}</a>
<!--{foreach from=$cat.children item=child}-->
<li ><a href="{$child.url}">{$child.name|escape:html}</a></li>
<!--{/foreach}-->
{/if}
<!--{/foreach}-->
如果我要在调用这里栏目下的另一个参数应该这么导出来呢,求解答
这句话是真心看不明白不理解。详细追问一下
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询