魔扣论坛

魔扣源码论坛业务
查看: 1149|回复: 8

[经验交流] ecshop教程:文章分类或ID自动取内容第一张图做为缩略图展示

[复制链接]
  • TA的每日心情
    慵懒
    20 小时前
  • 签到天数: 2957 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745759
    贡献
    157915
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-6-6 16:57:34 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    (1)找到 网店根目录/includes/lib_article.php文件,并在最尾处增加以下代码(大概在行83处):

    1. function GetImageSrc($body) {
    2.    if( !isset($body) ) {
    3.      return '';
    4.    }
    5.    else {
    6.      preg_match_all ("/<(img|IMG)(.*)(src|SRC)=["|'|]{0,}([h|/].*(jpg|JPG|gif|GIF|png|PNG))["|'|s]{0,}/isU",$body,$out);
    7.   return $out[4];
    8.    }
    9. }
    10. /**
    11. * 按文章ID号或文章分类ID号取得文章
    12. * @param  array    $id       文章ID或文章分类ID
    13. * @param  string   $getwhat  以何种方式取文章.当参数为'cat'时以文章分类ID取,其他都以文章ID取
    14. * @param  integer  $num      控制显示多少条文章.当参数为0时则全部显示
    15. * @param  boolean  $isrand   是否随机显示文章.
    16. */
    17. function get_article_new( $id = array(0), $getwhat = '', $num = 0, $isrand = false ) {
    18. $wherestr = '';
    19. $search = '';
    20. if( $getwhat ==  'cat' ){
    21.   $search = 'cat_id=';
    22. }
    23. else {
    24.   $search = 'article_id=';
    25. }
    26. for( $i=0; $i<count($id); $i++ ) {
    27.   if( $i<count($id)-1 ) {
    28.    $wherestr = $wherestr . $search . $id[$i] . ' or ';
    29.   }
    30.   else {
    31.    $wherestr = $wherestr . $search . $id[$i];
    32.   }
    33. }
    34. $sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('article') .
    35. ' WHERE (' . $wherestr . ') AND (is_open = 1) ';
    36. if ( $isrand == true ) {
    37.   $sql .= ' ORDER BY rand()';
    38. }
    39. else {
    40.   $sql .= ' ORDER BY add_time DESC, article_type DESC, article_id DESC';
    41. }
    42. if ( $num > 0 ) {
    43.   $sql .= ' LIMIT ' . $num;
    44. }
    45. $res = $GLOBALS['db']->getAll($sql);
    46. $articles = array();
    47. foreach ($res AS $id => $row) {
    48.   $articles[$id]['title']   = $row['title'];
    49.   $articles[$id]['url']     = 'article.php?id=' . $row['article_id'];
    50.   $articles[$id]['addtime'] = date($GLOBALS['_CFG']['date_format'], $row['add_time']);
    51.   $articles[$id]['content'] = $row['content'];
    52.   $imgsrc                   = GetImageSrc($row['content']);
    53.   $articles[$id]['img']     = $imgsrc[0];
    54. }
    55. return $articles;
    56. }

    57. (2)在模板目录的库文件目录中增加:msg_img.lbi库文件
    58. 代码如下:

    59. <?php
    60.     $this->assign( 'img_art1', get_article_new(array(2),'cat',6) );
    61. ?>
    62. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    63. <style type="text/css">
    64. <!--
    65. .img_art{ width:273px; height:130px; border:#FFF solid 1px; float:left; padding-bottom:10px; overflow:hidden; }
    66. .title { background-color:#D3C08D; height:22px; color:#765935; padding:5px 5px 0px 5px; font-weight:bold;}
    67. .content { padding:5px;}
    68. .Limg {width:100px; height:100px; border:#E0E0E0 solid 1px; padding:1px; text-align:center; margin-right:2px; float:left;}
    69. .Limg img {width:100px; height:100px; border:0px; }
    70. .rcont { width:155px; float:left;}
    71. .rcont li {padding-left: 2em;line-height: 180%;background-image: url(images/news_arrow.gif);background-repeat: no-repeat;background-position: 12px 5px;white-space:nowrap;width:150px;text-overflow:ellipsis;overflow:hidden;}
    72. .rcont a:visited, .rcont a:link {color: #9A6F4A;text-decoration: underline;}
    73. .rcont a:hover {color: #9A6F4A;text-decoration: underline;}
    74. }
    75. -->
    76. </style>
    77. <div class="img_art">
    78. <div class="title">公司新闻</div>
    79.     <div class="content">
    80.     <!-- {if $img_art1} -->
    81.     <!--{foreach from=$img_art1 item=aimg1 name="artimg1"}-->
    82.         {if $smarty.foreach.artimg1.index eq 1 }
    83.         <div class="Limg">
    84.             <a href="{$aimg1.url}" target="_blank"><img src="{$aimg1.img}" alt="{$aimg1.title|escape:html}" /></a>
    85.         </div>
    86.         {/if}
    87.     <!--{/foreach}-->
    88.     <div class="rcont">
    89.     <ul>
    90.     <!--{foreach from=$img_art1 item=ali1 name="artli1"}-->
    91.     {if $smarty.foreach.artli1.index neq 1 }
    92.      <li><a href="{$ali1.url}" title="{$ali1.title|escape:html}" target="_blank">{$ali1.title|truncate:16:"..."}</a></li>
    93.     {/if}   
    94.     <!--{/foreach}-->
    95.     </ul>
    96.     </div>
    97.     <!-- {else} -->
    98.      暂无文章
    99.     <!-- {/if} -->  
    100.     </div>
    101. </div>
    复制代码

    过程一是程序的主体功能,过程二是ecshop模板显示时候的样式表现。
    下面讲解一下过程二里面的重要一点的代码:
    $this->assign( 'img_art1', get_article_new(array(2),'cat',6) );
    这里是调用程序的get_article_new()函数,参数意思是取文章分类ID号为2,并且取6篇.当然本函数还支持随机显示文章。但这里要注意EC是有缓存机制的,可能在选择了随机的时候没有发现文章有变化,但当重新打开浏览器或过了缓存时间后重新刷新浏览器文章显示就有变化了。

    过程二,行25代码
    {if $smarty.foreach.artimg1.index eq 1 }
    这里控制的是显示偱环中的文章图片第一条文章。如果想左边显示两张图片,则可以适当改动要显示的条件等。

    过程二,行34代码
    {if $smarty.foreach.artli1.index neq 1 }
    这里就是在显示文章列表时不重复已经显示过的图片。

    其他基本上都是样式布局了。我是将CSS直接写进了库文件中,这样不用改动原来的STYTLE.css文件

    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    3

    主题

    249

    回帖

    501

    积分

    高级魔扣

    Rank: 4

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2017-6-6 21:41:17 | 显示全部楼层
    回个帖子,下班咯~

    该用户从未签到

    0

    主题

    261

    回帖

    524

    积分

    高级魔扣

    Rank: 4

    魔扣币
    263
    贡献
    263
    威望
    0
    发表于 2017-6-22 06:12:04 来自手机 | 显示全部楼层
    思念是一种感觉。是那种:静静地、悄悄地、默默地、苦苦地、痴痴地去想一个人的感觉!思念也是一种美丽的孤独。只有在你一个人思念他的时候,那种孤独才显得特别美丽!一旦这种孤独到了极至,魔扣源码论坛的思念也就扩展成了一种幸福的忧伤,成了一种甜蜜的惆怅,成了一种温馨的痛苦!  思念是对昨日悠长的缅怀。思念无处不在,无处没有。当你们手牵手的散步,他随手采摘一朵路边菊,为你插在头上的那种浪漫——思念就在朗月下;当你们肩并肩观日出日落,对光阴似箭,岁月如歌大发感慨——思念就在黄昏里;当你们轻拥着过走艰难的人生,那些酸甜苦辣,还记忆犹新——思念就在秋雨中。

    该用户从未签到

    1

    主题

    249

    回帖

    499

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2017-8-1 09:17:23 | 显示全部楼层
    人生犹如一首歌,音调高低起伏,旋律抑扬顿挫;人生仿佛一本书,写满酸甜苦辣,记录喜怒哀乐;人生如同一条河,有时九曲回肠,有时一泻千里。人生就像一局棋,布满失误机遇,成败只是一步之错;人生恰似一条路,有山重水复的坎坷,也有柳暗花明的坦途;不论人生如何,让友谊温暖你我,彼此心房永存温馨的喜悦;珍惜网络的相遇,魔扣源码论坛把彼此放在最珍贵的地方,让你我在友情的路上。一路欢歌,真诚相伴,我永远祝你吉祥如意,天天健康快乐!

    该用户从未签到

    1

    主题

    262

    回帖

    526

    积分

    高级魔扣

    Rank: 4

    魔扣币
    263
    贡献
    263
    威望
    0
    发表于 2017-12-7 23:01:20 | 显示全部楼层
    顶起顶起顶起

    该用户从未签到

    2

    主题

    260

    回帖

    522

    积分

    高级魔扣

    Rank: 4

    魔扣币
    260
    贡献
    260
    威望
    0
    发表于 2018-6-23 20:55:59 | 显示全部楼层
    一直在看

    该用户从未签到

    1

    主题

    237

    回帖

    475

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    237
    贡献
    237
    威望
    0
    发表于 2018-8-7 19:12:28 | 显示全部楼层
    介是神马?!!

    该用户从未签到

    1

    主题

    253

    回帖

    507

    积分

    高级魔扣

    Rank: 4

    魔扣币
    253
    贡献
    253
    威望
    0
    发表于 2019-1-20 22:02:56 | 显示全部楼层
    给自己的三句话:一、年轻,什么都还来得及;二、不要纠缠于小事;三、你现在遇到的事都是小事。',
  • TA的每日心情
    开心
    2019-11-1 10:55
  • 签到天数: 263 天

    [LV.8]以坛为家

    1

    主题

    519

    回帖

    1703

    积分

    青铜魔扣

    Rank: 5Rank: 5

    魔扣币
    4788
    贡献
    1052
    威望
    1
    发表于 2019-1-23 09:23:24 | 显示全部楼层
    强烈支持楼主,感谢魔扣科技分享的精品源码
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表