zblogphp开发教程,统计文章中的图片数量,并数量和相册缓存在扩展字段中。
include.php中插入【*请修改后使用,谢谢】
/** * 挂载接口 */ function activeplugin_xxx() { add_filter_plugin('filter_plugin_postarticle_core', 'xxx_plugin_postarticle_core'); } /** * 统计文章中的图片数量 * * @param number $id 文章id * @param object $art 文章对象 */ function xxx_countarticleimage($id = null, $art = null) { global $zbp; // 如果设置文章id 读取文章对象 if (isset($id) && $id > 0) { $art = $zbp->getpostbyid((int) $id); } // $art文章对象异常时 默认返回0 if (empty($art) || !$art->id) { return 0; } // 返回$art->metas中的缓存数量 if (isset($art->metas->images_count)) { $return $art->metas->images_count; } $pattern = "//i"; $content = $art->content; preg_match_all($pattern, $content, $matchcontent); $art->metas->images_array = implode(',', $matchcontent[1]); $art->metas->images_count = count($matchcontent[1]); $art->save(); $return $art->metas->images_count ? $art->metas->images_count : 0; } /** * 提交文章的时候 统计文章中的图片数量 */ function xxx_plugin_postarticle_core(&$article) { global $zbp; $pattern = "/ /i"; $content = $article->content; preg_match_all($pattern, $content, $matchcontent); if(!isset($matchcontent[1]) || count($matchcontent[1]) == 0) { return; } $images = $matchcontent[1]; $image_sum = count($images); $article->metas->images_array = implode(',', $images); $article->metas->images_count = $image_sum; }
如何使用?
{xxx_countarticleimage(null, $article)}
或
{xxx_countarticleimage('文章id')}
$article需要更换为对象变量
这里的方法缓存了图片的列表,如果不需要去掉这两行代码即可;
$art->metas->images_array = implode(',', $matchcontent[1]); $article->metas->images_array = implode(',', $images);