当前位置:首页 » Emlog教程 » Emlog博客调用分类文章图文显示的方法

Emlog博客调用分类文章图文显示的方法

温馨提示:所有代码请在模板默认上测试,因为不确定模板是否有相同代码出现,所以在运行上可能会出错。

 第一种方法:模板的module.php文件中放入如下代码:
<?php //调用分类文章,图文显示
function sheli_tw($sort, $num){$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,sortid,views,comnum FROM ".DB_PREFIX."blog WHERE sortid=".$sort." AND hide='n' ORDER BY `date` DESC LIMIT 0,$num";
$go = $db->query($sql);while($row = $db->fetch_array($go)){
$img_url = TEMPLATE_URL.'images/sheli.jpg';//无图片时显示
if(pic_thumb($row['content'])){$img_url = pic_thumb($row['content']);//查找正文第一张图片
}elseif(picthumb($row['gid'])){$img_url = picthumb($row['gid']);//查找附件第一张图片
}else{$img_url;}?>
<li><p><a href="<?php echo Url::log($row['gid']);?>"><img src="<?php echo $img_url;?>" /></p><span><?php echo $row['title'];?></a></span></li>
<?php }}function picthumb($blogid) {$db = MySql::getInstance();$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";$imgs = $db->query($sql);while($row = $db->fetch_array($imgs)){$pict.= ''.BLOG_URL.substr($row['filepath'],3,strlen($row['filepath'])).'';}return $pict;}function pic_thumb($content){preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $content, $img);$imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;}?>
调用方式:<?php sheli_tw(1,10);?>;其中1表示分类id,10表示数量
第二种方法:在模板的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;}?>
然后在需要显示的位置放入下面代码
<?php 
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,sortid,views,comnum FROM ".DB_PREFIX."blog WHERE type='blog' and sortid='1' and hide='n' ORDER BY `date` DESC LIMIT 0,15";
$go = $db->query($sql);while($value = $db->fetch_array($go)){
$img_url='';if(img_zw($value['content'])){$img_url = img_zw($value['content']);}elseif(img_fj($value['gid'])){$img_url = img_fj($value['gid']);}else{$img_url;}
$gid=$value['gid'];
global $CACHE;$log_cache_tags = $CACHE->readCache('logtags');
if (!empty($log_cache_tags[$gid])){$tag = '标签:';foreach ($log_cache_tags[$gid] as $sl){$tag .= "<a href=\"".Url::tag($sl['tagurl'])."\">".$sl['tagname'].'</a> ';}}
?>
图片:<img src="<?php echo $img_url;?>" />
日期:<?php echo gmdate('Y-m-d',$value['date']);?>
标签:<?php echo $tag;?>
标题:<a href="<?php echo Url::log($value['gid']);?>" title="<?php echo $value['title'];?>"><?php echo $value['title'];?></a>
描述:<?php echo subString(strip_tags(str_replace(array("\n","&nbsp;"," "),"",$value['content'])),0,80);?>
<?php }?>
sortid='1'中的1为分类ID,LIMIT 0,15中的15为显示数量
End
关键词: emlog
温馨提示:如果您对本文有疑问,请在本页留言即可!!!
觉得很赞 (2)付款方式
X
付款方式:
  • 微信
  • 支付宝
  • QQ红包

使用微信扫一扫
blogger
    发布日期:2015-05-14   所属类别:Emlog教程   浏览:11057次   评论:10次
    本文地址:https://www.shuyong.net/iemlog/734.html [ 百度已收录 ]
    声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!

留言/评论:◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

填写好QQ号码,任点空白处自动获取

昵称

邮箱

网址

1楼、心岛 [回复该留言]
2018-03-17 00:06
老友你好,我套用了你的这个代码,但是报错如下:
SQL语句执行错误:SELECT * FROM jumita_attachment WHERE blogid= AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png')' at line 1

我套用的语句如下,烦请老友帮忙检查下看看。
<?php //调用分类文章,图文显示
function sheli_tw($sort, $num){$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,sortid,views,comnum FROM ".DB_PREFIX."blog WHERE sortid=".$sort." AND hide='n' ORDER BY `date` DESC LIMIT 0,$num";
$go = $db->query($sql);while($row = $db->fetch_array($go)){
$img_url = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';//无图片时显示
if(pic_thumb($row['content'])){$img_url = pic_thumb($row['content']);//查找正文第一张图片
}elseif(picthumb($row['gid'])){$img_url = picthumb($row['gid']);//查找附件第一张图片
}else{$img_url;}?>
<div class="theme-hover-border-color-1 pro_detail addLeft">
<a href="<?php echo Url::log($row['gid']);?>" target="_blank"><img src="<?php echo $imgurl;?>" width="272" height="272" alt="<?php echo $row['title'];?>" /></a>

<div class="pro_intro fr">
                            <p class="pro_title"><a href="<?php echo Url::log($row['gid']);?>"><?php echo $row['title'];?></a></p>
    <div class="pro_price color_p">
                                <span class="coupon theme-bg-color-9 theme-color-1 theme-border-color-1"><?php echo gmdate('Y-n-j', $value['date']); ?></span>
                                <div class="out-time theme-color-4" ><?php blog_tag($value['logid']); ?></div>
                            </div>
    </div>
                      
                        <em class="border_l_b border"></em>
                        <em class="border_l_t border"></em>
                        <em class="border_r_b border"></em>
                        <em class="border_r_t border"></em>
                    </div>
    <div style="clear:both;"></div>
<?php }}function picthumb($blogid) {$db = MySql::getInstance();$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";$imgs = $db->query($sql);while($row = $db->fetch_array($imgs)){$pict.= ''.BLOG_【网址屏蔽】;
舍力(博主) [回复该留言]
2018-03-17 08:19
@心岛:用默认模板测试,不要修改任何地方测试。
舍力(博主) [回复该留言]
2018-03-17 08:32
@心岛:你的代码我直接复制出来就提示出错了,看你自己修改了什么吧。好好检查一下,我提供的代码是没有问题的。
心岛 [回复该留言]
2018-03-17 08:34
@舍力:这个代码中别的正常,就是<?php echo blog_tag($blogid);?>无效,调用不到数据
舍力(博主) [回复该留言]
2018-03-17 08:36
@心岛:很正常啊,这个又不是这个代码里面的参数,标签调用需要修改本代码的。
心岛 [回复该留言]
2018-03-17 08:38
@舍力:以下为我放入modul.php中代码,其中blog_tag这个函数无效,麻烦看下!谢谢
<?php //调用分类文章,图文显示
function sheli_tw($sort, $num){$db = MySql::getInstance();

$sql = "SELECT gid,title,date,content,sortid,views,comnum FROM ".DB_PREFIX."blog WHERE sortid=".$sort." AND hide='n' ORDER BY `date` DESC LIMIT 0,$num";
$go = $db->query($sql);while($row = $db->fetch_array($go)){
$img_url = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';//无图片时显示
if(pic_thumb($row['content'])){$img_url = pic_thumb($row['content']);//查找正文第一张图片
}elseif(picthumb($row['gid'])){$img_url = picthumb($row['gid']);//查找附件第一张图片
}else{$img_url;}?>
<div class="theme-hover-border-color-1 pro_detail addLeft">
<a href="<?php echo Url::log($row['gid']);?>" target="_blank"><img src="<?php echo $img_url;?>" width="272" height="272" alt="<?php echo $row['title'];?>" /></a
                        <div class="pro_intro fr">
                            <p class="pro_title"><a href="<?php echo Url::log($row['gid']);?>"><?php echo $row['title'];?></a></p>
    <div class="pro_price color_p">
                                <span class="coupon theme-bg-color-9 theme-color-1 theme-border-color-1"><?php echo gmdate('Y-n-j', $value['date']); ?></span>
                

              
        <div class="out-time theme-color-4" ><?php echo blog_tag($blogid); ?></div>
                            </div>
    </div>
                      
                        <em class="border_l_b border"></em>
                        <em class="border_l_t border"></em>
                        <em class="border_r_b border"></em>
                        <em class="border_r_t border"></em>
                    </div>

<?php }}function picthumb($blogid) {$db = MySql::getInstance();$sql = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";$imgs = $db->query($sql);while($row = $db->fetch_array($imgs)){$pict.= ''.BLOG_URL.substr($row['filepath'],3,strlen($row['filepath'])).'';}return $pict;}function pic_thumb($content){preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $content, $img);$imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;}?>
舍力(博主) [回复该留言]
2018-03-17 08:39
@心岛:这个代码调不出来标签的,不用看了。
心岛 [回复该留言]
2018-03-17 08:42
@舍力:这个代码中可以调用图片,标题,日期没问题,就是TAG调用不出来,麻烦帮我改改可以?先多谢了,昨晚折腾了了一晚上,卡死了
心岛 [回复该留言]
2018-03-17 08:45
@舍力:其实,我就是需要在你代码基础上加个TAG标签的调用就够了,还请帮忙!
舍力(博主) [回复该留言]
2018-03-17 10:17
@心岛:这个代码暂时还没有办法加标签

个人资料

舍力

博主:舍力

Emlog交流群

    用心做好每一件事!!!

博客统计

  • 文章数量:1132篇
  • 文章评论:3510条
  • 总访问量:9471205次
  • 微语数量:81条
  • 在线人数:1人
  • 本站运行:10年7月25天
  • 估计博主很忙,已经很久没更新了!
Q2 虚位以待
Copyright © 2024 舍力博客 版权所有   粤ICP备11021420号
基于宝塔面板,数据存储于阿里云ECS
Powered by emlog / &Author 舍力博客.