将首页置顶或分类置顶文章作为幻灯片/轮播图片的方法,当然要结合css和js才能实现轮播,下面代码只能实现调用的方法,首先在module.php加入代码(如何已经有下面代码的请忽略)
<?php
//全局匹配正文中的图片并存入imgsrc中
function img_zw($content){preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $img);$imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;}
//Custom: 获取附件第一张图片
function img_fj($logid){$db = MySql::getInstance();$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$logid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";$imgs = $db->query($sql);$img_path = "";while($row = $db->fetch_array($imgs)){$img_path .= BLOG_URL.substr($row['filepath'],3,strlen($row['filepath']));}
return $img_path;}?>
继续在module.php加入代码,下面代码的图片调用顺序为附件--正文--随机,css和图片路径请自行更改
<?php //幻灯片(调用分类置顶)
function home_flash(){$db = MySql::getInstance();$sql =$db->query ("SELECT * FROM ".DB_PREFIX."blog inner join ".DB_PREFIX."sort WHERE hide='n' AND type='blog' AND sortop='y' AND sortid=sid order by date DESC limit 0,5");?>
<div class="slide_container"><ul class="rslides" id="slider">
<?php while($value = $db->fetch_array($sql)){
$img_url = TEMPLATE_URL.'images/flash/'.rand(1,5).'.jpg';if(img_fj($value['gid'])){$img_url = img_fj($value['gid']);}elseif(img_zw($value['content'])){$img_url = img_zw($value['content']);}else{$img_url;}?>
<li><a href="<?php echo Url::log($value['gid']);?>" title="<?php echo $value['title'];?>"><img src="<?php echo $img_url;?>" alt="<?php echo $value['title'];?>"/><p class="caption"><?php echo $value['title'];?></p></a></li>
<?php }?></ul></div><?php }?>
调用的是分类置顶文章,如果要首页置顶 把sortop='y' 改为top='y' ,然后在要调用的地方加入 <?php home_flash();?>即可