后来发现kind editor 自带的插入“网络图片” 下面有“图片说明”,这个正是我们想要图片的说明哦。
图集添加最好的方法是,一次性批量添加,然后再用插入图片的“网络图片”,逐个添加上去,分别添加说明,或者添加上去之后,选中图片点右键,“图片属性”设置说明也行,这个说明会自动生成图片的"title"和“alt“。
这就让我萌生了用正则提取alt作为图片说明的想法。
要实现需要对大鱼cms进行小小的二次开发。
1、找到include/extends.func.php,这个文件,这里面有生成缩略图的函数,复制一个重新命名为createthumb2,这样可以不影响缩略图的效果。
2、将新生成的createthumb2函数后面的 echo str_replace(DAYU_ROOT,"",$info['path']).$thumbname; echo 改成reture .
3、添加一个新的函数用来生成图片列表,代码如下。思想很简单, 图片都会带有alt和src,那就用两个正则去出来咯。
//获取一段文本内的所有图片地址和文本
function get_imagestext($str){
preg_match_all('/<img(.+?)src=[\'\"]?([^\'\"]+)[\'\"]?/i',stripslashes($str),$matches,PREG_PATTERN_ORDER); //取url正则
preg_match_all('/<img(.+?)alt=[\'\"]?([^\'\"]+)[\'\"]?/i',stripslashes($str),$matches2,PREG_PATTERN_ORDER); //取 alt正则
$r=array();
$t1=$matches[2];//图片url
$t2=$matches2[2]; //标题
for($i=0;$i<count($t1) ;$i++ ){
$tb=createthumb2 ($t1[$i],150,150,1);
$r[]="<li><a href=\"$t1[$i]\" ><img alt=\"$t2[$i]\" title=\"$t2[$i]\" src=\"$tb\" width=\"100\" height=\"75\" style=\"opacity: 1;\"/></a> </li> ";
}
return $r;
}
4、在内容模板中要显示列表的地方直接
<ul>
{code $pics=get_imagestext($content);}
{loop $pics $rs}
{$rs}
{/loop}
</ul>
至此,文章内容中的多图,每张图的说明,就被提取出来再列表中使用了。 |