Emlog实现调用分类下第一篇文章图片函数

2014-9-22 / 9 评论 / 15089 阅读

Emlog实现调用分类下第一篇文章图片函数分享

效果图大家先看看

emlog调用分类文章

的在模板文件下的module.php下添加如下函数

<?php //分类文章调用
function sort_log($sortid){
$db = MySql::getInstance();
$sql = $db->query ("SELECT * FROM ".DB_PREFIX."blog WHERE sortid='$sortid' AND type='blog' AND hide='n' order by date DESC limit 0,1");
$row = $db->fetch_array($sql);  
if (!empty($row['excerpt'])){
preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $row['excerpt'], $match);
if(empty($match[0][0]))
{preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $row['content'], $match);}
}else{preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $row['content'], $match);}
$logpost = !empty($row['excerpt']) ? $row['excerpt'] : ''.$row['content'].'';
$num = rand(1,$imgnum);
$img = isset($match[0][0]) ? $match[0][0] : '<img src="'.TEMPLATE_URL.'images/shuyong_net/'.$num.'.jpg">';
$content = strip_tags($logpost,'');
$content = mb_substr($content,0,68,'utf-8');//
$out .='<div class="sort-tw"><div class="sort-img"><a href="'.Url::log($row['gid']).'" title="'.$row['title'].'"  >'.$img.'</a></div>
<div class="sort-tt"><a href="'.Url::log($row['gid']).'" title="'.$row['title'].'" >'.$row['title'].'</a></div><div class="sort-nr">'.$content.'...</div></div>
';
$sort_log_num = $sort_log_num -1;
$logs = $db->query ("SELECT * FROM ".DB_PREFIX."blog WHERE sortid='$sortid' AND type='blog' AND hide='n' order by date DESC limit 1,10");//1表示从第2篇文章开始,10为数量
while ($trow = $db->fetch_array($logs)){
$date = gmdate('m-d', $trow['date']);
$trow['title'] = mb_substr($trow['title'],0,180,'utf-8');
$out .='<li><p><a href="'.Url::log($trow['gid']).'" title="'.$trow['title'].'">'.$trow['title'].'</a></p><span>'.$date.'</span></li>
';
}echo $out;}?>

Emlog模板文件log_list.php下使用如下代码

<?php global $CACHE;$sort_cache = $CACHE->readCache('sort'); ?>

<?php echo $sort_cache[1]['sortname'];?>调用分类名称,其中[1]代表分类id

<?php sort_log(1); ?>

最后写上css就ok,css文件自己折腾吧

-=-分类图文显示

<?php //分类图文
function home_cp(){
$ysort = array(1,2,3);//分类id
$num = 10;//显示数量
$db = MySql::getInstance();global $CACHE; $sort_cache = $CACHE->readCache('sort');foreach($ysort as $key => $i){$key = $key+1;?>
<div class="side product">
<div class="title"><p><?php echo $sort_cache[$i]['sortname'];?></p><a href="<?php echo Url::sort($i);?>" title="<?php echo $sort_cache[$i]['sortname'];?>"><span></span></a></div>
<?php $logs = $db->query("SELECT * FROM ".DB_PREFIX."blog WHERE sortid='$i' AND type='blog' AND hide='n' order by date DESC limit 0,$num");
while($value = $db->fetch_array($logs)){$img_url = TEMPLATE_URL.'images/news.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;}?>
<ul class="zx"><li><a href="<?php echo Url::log($value['gid']);?>"><img src="<?php echo $img_url;?>" /><p><?php echo $value['title'];?></p></a></li></ul><?php }?></div><?php }}?>

评论一下?

OωO
取消
    1. 头像
      A_聆听
      第4楼
      老大哥,问下。如果我用热门文章列表的话,想第一篇获得图片和摘要。该杂么弄?
      回复
      1. 头像
        舍力
        @A_聆听:把分类sortid='$sortid' AND去掉,date改为views排序,可以设置时间,结合http://www.shuyong.net/414.html就可以了
        回复
    1. 头像
      思源
      地板
      这个如何实现前2篇文章或多篇文章获取图片呢~
      回复
      1. 头像
        舍力
        @思源:在这个代码中limit 0,1的1改为你想要的数字即可!
        回复
      1. 头像
        舍力
        @思源:下面那个limit 1,10中的1也要修改成你上面修改的数字!
        回复
      1. 头像
        思源
        @舍力:哦,我试试~这个置顶不算最前边的文章嘛,我想实现置顶文章出图片,请教博主,该如何实现
        回复
      1. 头像
        思源
        @舍力:找到方法啦,我用了最新头条的代码
        回复
    1. 头像
      苏打水机
      板凳
      占沙发,打酱油的。
      回复
    1. 头像
      网站建设
      沙发
      不明觉厉,打个酱油
      回复