EMLOG调用最新文章代码

2013-3-20 chenmo 网站建设

首先声明,本代码是网友“秦时明月”写的,拿来同大家分享下,

1、EMlog本身有最新文章模块的,但是调用时要注意格式,正确的调用格式如下:

<?php widget_newlog('');?>

 说明:这里有个问题,调用的最新文章数必须从后台--》设置选项中设置,而且由于模块本身有html代码所以使用时只需将代码粘贴在需要显示的位置即可!

2、独立最新文章代码分两个步骤进行:分别修改modul.php和需要显示页面,如:log_list.php

首先,将如下代码复制在modul.php的最后!

<?php //最新文章调用函数
function liangxin_new($num){
	$db=MySql::getInstance();
    $logs = $db->query("SELECT gid ,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY date DESC LIMIT 0, $num");
    while ($row = $db->fetch_array($logs)){
        $row['title'] = htmlspecialchars($row['title']);
     ?>
    <li><a href="<?php echo Url::log($row['gid']); ?>" title="<?php echo $row['title']; ?>" ><?php echo $row['title']; ?></a></li>
	<?php }
}
?>

 其次,在需要显示最新文章的页面模版,如log_list.php的相应位置添加如下调用代码:

<?php liangxin_new(5);?>  //小括号内的数字5是表示调用数据的条数,可自行修改!

 说明:此处的调用代码是独立的,只能调用到数据,而没有html框架代码,所以自由度更大一些!但是也有其缺点,此代码无法显示置顶文章的效果(如果有置顶文章时不会在此区域显示出来)。如有此需要的请看第3种方法。

3、独立最新文章代码(支持置顶功能)也分两个步骤进行:分别修改modul.php和需要显示页面,如:log_list.php

首先,将如下代码复制在modul.php的最后!

<?php //自己写的最新文章调用函数2
function liangxin_new($num){
	$db=MySql::getInstance();
    $n = $db->query("SELECT gid ,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' and top='y' ORDER BY date DESC");
	$nums = $db->num_rows($n);
	while ($rows = $db->fetch_array($n)){
        $rows['title'] = htmlspecialchars($rows['title']);
     ?>
    <li>[顶]<a href="<?php echo Url::log($rows['gid']); ?>" title="<?php echo $rows['title']; ?>" ><?php echo $rows['title']; ?></a></li>
	<?php }
	$log_range = '';
	if($nums > 0){
		$n2 = $db->query("SELECT gid FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' and top='y' ORDER BY date DESC");
		while ($rows2 = $db->fetch_array($n2)){
		$log_range.= ' gid != '.$rows2['gid'].' and ';
		}
	}
	$log_num = $num - $nums;
	$logs = $db->query("SELECT gid ,title FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' and $log_range gid != 0 ORDER BY date DESC LIMIT 0, $log_num");
    while ($row = $db->fetch_array($logs)){
        $row['title'] = htmlspecialchars($row['title']);
     ?>
    <li><a href="<?php echo Url::log($row['gid']); ?>" title="<?php echo $row['title']; ?>" ><?php echo $row['title']; ?></a></li>
	<?php }
}
?>

如果大家觉得上面代码太复杂了,“秦时明月”还提供了优化版的,如下:

<?php //自己写的最新文章调用函数2
function my_new2($num){
	$db=MySql::getInstance();
	$logs = $db->query("SELECT gid, title, top FROM " . DB_PREFIX . "blog WHERE hide='n' and type='blog' ORDER BY top DESC, date DESC LIMIT 0, $num");
    while ($row = $db->fetch_array($logs)){
        $row['title'] = htmlspecialchars($row['title']);
     ?>
    <li><?php if($row['top']=='y'){echo '[顶]';} ?><a href="<?php echo Url::log($row['gid']); ?>" title="<?php echo $row['title']; ?>" ><?php echo $row['title']; ?></a></li>
	<?php }
}
?>

如果大家需要对【顶】进行定义样式可以写为

{echo '<span class="ding">[顶]</span>';} ?>

其次,在需要显示最新文章的页面模版,如log_list.php的相应位置添加如下调用代码:

<?php liangxin_new(5);?>  //小括号内的数字5是表示调用数据的条数,可自行修改!
说明:使用第2、3种方法有一个局限或者说一个bug:置顶文章数量不要大于这个最新文章显示数量

标签: EMlog 代码修改 最新文章调用

Powered by emlog 湘ICP备13007859号 空间由景安网络赞助