摘要输出带缩略图的Joomla Blog布局

国内的CMS很多都带有摘要输出的文章列表布局,在Joomla中与此相近的有Blog布局。下面,就利用该Blog布局改造成近似摘要输出(并带缩略图)的布局。

直接上代码:

编辑模板html/com_content/category/blog.php和blog_item.php。

提取出第一张图,如果为空则不显示图片,如果不为空,则显示图片。这里并不是缩略图,如果想用缩略库的话,可以使用生成缩略库的函数类库。

			<?php
				$regex = "/\<img.+src\s*=\s*\"([^\"]*)\"[^\>]*\>/";
				preg_match ($regex, $this->item->introtext, $matches);
				$images = (count($matches)) ? $matches : array();
				if (count($images)){
				$mainImage = $images[1];
				$thumbnail = $images[1];
			} else {
				$thumbnail = '';
				$mainImage = '';
			}
			//if ($mainImage=='') $mainImage='/images/defaultpic.gif';
			if ($mainImage) {
			?>
			<a title="<?php echo $this->escape($this->item->title); ?>" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>">
			<img src="<?php echo $mainImage; ?>" alt="<?php echo $this->escape($this->item->title); ?>" class="thumbnail alignright">
			</a>
			<?php } ?>
				<?php echo '<p>'.$this->item->metadesc.'...</p>'; ?>

$this->item->metadesc是用于 meta 描述来输出摘要。

如果不想手动填写meta 描述(其实还是填的好,利用SEO),可以在模板里用下面的代码代替。注意:Joomla用的是utf-8,截断utf-8的字符需要mbstring库中的mb_substr函数。

echo '<p>'.mb_substr(strip_tags($this->item->introtext),0,100,'UTF-8').'...</p>';

摘要输出带缩略图的Joomla Blog布局》上有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注