• 1205阅读
  • 1回复

ECSHOP任意页面显示指定分类、数量、排序的任意类型文章,包括只显示置顶or普通的文章

楼层直达
#joU}Rj|  
1、在需要使用此功能的PHP页面里最后的?>前面添加以下代码,现在以article.php为例子 Ajq;\- :  
/** jinmozhe 专业ECSHOP二次开发 * 获得指定分类ID、文章类型、指定数量、排序规则的文章列表。 * @access  private * @return  array * @cat_id  文章分类ID  0代表显示所有分类的以下条件文章 * @list_type  文章列表类型 0 普通 1置顶 2头条 3推荐 4热门 * @list_num  文章列表数量 默认10条新闻,可不填写 * @list_order  文章列表排序 默认按照最新添加的排序,可不填写 */function get_class_list_articles($cat_id='0',$list_type='0',$list_num='10',$list_order='add_time DESC'){ $sql = 'SELECT article_id, title, add_time, file_url, open_type ' .            ' FROM ' . $GLOBALS['ecs']->table('article') . ' WHERE ' ;  if($cat_id!='0'){             $sql =$sql.' cat_id = '.$cat_id.' and ' ;  }    $sql =$sql.' article_type='.$list_type .' ORDER BY '.$list_order.' LIMIT ' . $list_num;    $res = $GLOBALS['db']->getAll($sql); & HphE2 h  
    $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]['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']);    } [gzw<b:`  
    return $arr;} 0} liK  
您是不是很疑惑,ECSHOP只有普通及置顶的文章,哪来的其它类型的文章哦,至于这个你就得看下我写的另外一篇文章了。 rgIJ]vmy<H  
2、继续在此article.php文件里调用显示的代码里添加以下代码: Nf0b?jn-  
$smarty->assign('hot_goods',        get_recommend_goods('hot'));        // 热点文章$smarty->assign('list_articles15',  get_class_list_articles('15','0','6','add_time DESC')); tJ.LPgfZ  
//15为文章分类ID,别告诉我你不知道怎么看;0代表普通的文章;6是文章显示数量;add_time DESC代表是按照添加时间的先后顺序显示 .(CzsupY_q  
3、在要显示此内容的article.dwt模板文件里添加以下代码: +2B{"Czm  
<!--{foreach from=$list_articles15 item=article}--><li><a title="{$article.title|escape:html}" href="{$article.url}">{$article.title}</a></li><!--{/foreach}--> w69`vK  
至于其它类型,或者要在其它页面也这样操作,按照以下顺序重新操作即可。
只看该作者 安逸沙发  发表于: 2018-08-24
1、在需要使用此功能的PHP页面里最后的?>前面添加以下代码,现在以article.php为例子 V8C:"UZ;  
zkuU5O  
/** jinmozhe 专业ECSHOP二次开发 &;[Io  
* 获得指定分类ID、文章类型、指定数量、排序规则的文章列表。 _M`--.{\O[  
* @access  private "8x8UgG  
* @return  array $!-c-0ub  
* @cat_id  文章分类ID  0代表显示所有分类的以下条件文章 K<SyC54  
* @list_type  文章列表类型 0 普通 1置顶 2头条 3推荐 4热门 0zlb0[  
* @list_num  文章列表数量 默认10条新闻,可不填写 i]YV {  
* @list_order  文章列表排序 默认按照最新添加的排序,可不填写 lhAX;s&9  
*/ /v1Q4mq  
function get_class_list_articles($cat_id='0',$list_type='0',$list_num='10',$list_order='add_time DESC') 93("oBd[s(  
{ QkEvw<  
$sql = 'SELECT article_id, title, add_time, file_url, open_type ' . tl,.fjZn  
            ' FROM ' . $GLOBALS['ecs']->table('article') . ' WHERE ' ; 7Bzq,2s  
  if($cat_id!='0'){ QwJV S(Gs4  
            $sql =$sql.' cat_id = '.$cat_id.' and ' ; iNtaDX| %/  
  } 1PVtxL?1P  
    $sql =$sql.' article_type='.$list_type .' ORDER BY '.$list_order.' LIMIT ' . $list_num; WM7oM~&{6  
    $res = $GLOBALS['db']->getAll($sql); =n5zM._S-  
\qdHX  
    $arr = array(); Neq+16*u  
    foreach ($res AS $idx => $row) X^}I-M%{m  
    { :)wy.r;N  
        $arr[$idx]['id']          = $row['article_id']; Vwg|K|  
        $arr[$idx]['title']       = $row['title']; 3oGt3 F{gZ  
        $arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ? 4IB9 ,?p  
                                        sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title']; Q i,j+xBp  
        $arr[$idx]['add_time']    = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']); 8p^bD}lN7  
        $arr[$idx]['url']         = $row['open_type'] != 1 ? / ;$#d}R  
                                        build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']); x5,++7Tz  
    } V]|^&A _c  
m!|kW{B#A  
    return $arr; j~2{lCT  
} A;;fACF8e  
nF54tR[  
您是不是很疑惑,ECSHOP只有普通及置顶的文章,哪来的其它类型的文章哦,至于这个你就得看下我写的另外一篇文章了。 *;l]8.  
09X01X[  
2、继续在此article.php文件里调用显示的代码里添加以下代码: I?h)OvWd  
Vi>,kF.f V  
$smarty->assign('hot_goods',        get_recommend_goods('hot'));        // 热点文章 W3]_m8,Z  
$smarty->assign('list_articles15',  get_class_list_articles('15','0','6','add_time DESC')); m;H.#^b*  
8|):`u  
//15为文章分类ID,别告诉我你不知道怎么看;0代表普通的文章;6是文章显示数量;add_time DESC代表是按照添加时间的先后顺序显示 ~qcNEl\-y  
m4TE5q%3  
3、在要显示此内容的article.dwt模板文件里添加以下代码: ) brVduB  
4E; VM{  
<!--{foreach from=$list_articles15 item=article}--> J4QXz[dG  
<li><a title="{$article.title|escape:html}" href="{$article.url}">{$article.title}</a></li> `Bo*{}E  
<!--{/foreach}--> 'z0:Ccbj  
)LdP5z-  
至于其它类型,或者要在其它页面也这样操作,按照以下顺序重新操作即可。
快速回复

限100 字节
安逸网提示:如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个