以下是关于如何设置ECShop文章分类或ID自动取内容第一张图作为缩略图展示的教程:
修改lib_article.php文件
1、找到并打开网店根目录/includes/lib_article.php文件:
在该文件的最尾处(大概在行83处),增加以下代码:
```php
function GetImageSrc($body) {
if( !isset($body) ) {
return '';
} else {
preg_match_all ("/<(img|IMG)(.*)(src|SRC)=[\"|'|]{0,}([h|\/].*(jpg|JPG|gif|GIF|png|PNG))[\"|'|\s]{0,}/isU",$body,$out);
return $out[4];
}
}
```
2、添加get_article_new函数:
在上述文件中,继续添加如下代码:
```php
function get_article_new( $id = array(0), $getwhat = '', $num = 0, $isrand = false ) {
$wherestr = '';
$search = '';
if( $getwhat == 'cat' ){
$search = 'cat_id=';
} else {
$search = 'article_id=';
}
for( $i=0; $i<count($id); $i++ ) {
if( $i<count($id)-1 ) {
$wherestr = $wherestr . $search . $id[$i] . ' or ';
} else {
$wherestr = $wherestr . $search . $id[$i];
}
}
$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('article') .
' WHERE (' . $wherestr . ') AND (is_open = 1) ';
if ( $isrand == true ) {
$sql .= ' ORDER BY rand()';
} else {
$sql .= ' ORDER BY add_time DESC, article_type DESC, article_id DESC';
}
if ( $num > 0 ) {
$sql .= ' LIMIT ' . $num;
}
$res = $GLOBALS['db']->getAll($sql);
$articles = array();
foreach ($res AS $id => $row) {
$articles[$id]['title'] = $row['title'];
$articles[$id]['url'] = 'article.php?id=' . $row['article_id'];
$articles[$id]['addtime'] = date($GLOBALS['_CFG']['date_format'], $row['add_time']);
$articles[$id]['content'] = $row['content'];
$imgsrc = GetImageSrc($row['content']);
$articles[$id]['img'] = $imgsrc[0];
}
return $articles;
}
```
增加msg_img.lbi库文件
1、在模板目录的库文件目录中增加msg_img.lbi库文件:
添加以下代码到msg_img.lbi文件中:
```php
$this->assign( 'img_art1', get_article_new(array(2),'cat',6) );
```
添加CSS样式:
```html
<style type="text/css">
.img_art{ width:273px; height:130px; border:#FFF solid 1px; float:left; padding-bottom:10px; overflow:hidden; }
.title { background-color:#D3C08D; height:22px; color:#765935; padding:5px 5px 0px 5px; font-weight:bold;}
.content { padding:5px;}
.Limg {width:100px; height:100px; border:#E0E0E0 solid 1px; padding:1px; text-align:center; margin-right:2px; float:left;}
.Limg img {width:100px; height:100px; border:0px; }
.rcont { width:155px; float:left;}
.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;}
.rcont a:visited, .rcont a:link {color: #9A6F4A;text-decoration: underline;}
.rcont a:hover {color: #9A6F4A;text-decoration: underline;}
</style>
```
HTML部分:
```html
<div class="img_art">
<div class="title">公司新闻</div>
<div class="content">
<!-{if $img_art1} -->
<!--{foreach from=$img_art1 item=aimg1 name="artimg1"}-->
</div>
</div>
```
通过以上步骤,您就可以在ECShop中实现文章分类或ID自动取内容第一张图作为缩略图的功能,如果有任何疑问,请参考以下相关问题与解答部分:
相关问题与解答
问题 | 解答 |
如何在ECShop首页调用文章内的缩略图? | 您可以在ECShop首页的index.php文件中,使用类似$smarty->assign('class_articles_5', index_get_class_articles(5,3)); 这样的代码来调用指定分类的文章,并结合上文提到的GetImageSrc函数获取缩略图。 |
如果文章内容中没有图片,如何处理缩略图的显示? | 您可以在GetImageSrc函数中增加一个判断条件,如果没有找到图片,则返回一个默认的图片路径,例如return 'images/ECSHOP_CX.png'; 。 |
到此,以上就是小编对于“ecshop教程:文章分类或ID自动取内容第一张图做为缩略图展示”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。