博客簿

关于emlog幻灯片/轮播图片调用分类置顶/首页置顶文章的方法(带图)

时间:4年前   阅读:1872

将首页置顶或分类置顶文章作为幻灯片/轮播图片的方法,当然要结合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();?>即可 

上一篇:Emlog教程:只显示当前分类下的文章,屏蔽子分类下的文章

下一篇:解决Emlog程序域名后面加index.php打不开网站造成不能实现评论的方法

网友评论