分享一个emlog非插件实现读者排行榜的方法 emlog

代码由flyercn分享,本站只做转载登记之用,代码可能要自己稍稍修改才能使用,如有疑问,留言咨询,这个创建一个文件,例如:comtop.php,把代码放入这个文件中,然后直接把这个文件放入网站根目录即可。


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php //读者墙汇总页面
require_once 'init.php';
define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/');
$CACHE = Cache::getInstance();
$options_cache = $CACHE->readCache('options');
extract($options_cache);
$navibar = unserialize($navibar);
$curpage = CURPAGE_HOME;
$site_title = "分享一个emlog非插件实现读者排行榜的方法";
$site_key = 'emlog评论者排行榜';
$site_description = '统计访问舍力博客且有留言的网友,前9名评论者有外链,已经去除作者和无链接者评论';
include View::getView('header');
?>
<style>
.dzq{margin:auto;margin:10px 0 0-10px;}
.dzq ul{clear:both;overflow:hidden;}
.dzq ul li{width:33.333333333333333%;float:left; line-height:20px; }
.dzq ul li dd{border:1px solid #ccc;clear:both;overflow:hidden;margin:0 0px 5px 10px;background:url(vip.png) no-repeat left -1px}
.dzq ul li p{float:left;margin:10px 10px 10px 10px;}
.dzq1{margin:auto; margin-left:-5px;}
.dzq1 ul{width:8.333333333333333333333333%;float:left;}
.dzq1 ul li{border:1px solid #ccc;margin:5px 0 5px 5px;clear:both;overflow:hidden;}
.dzq1 ul li p{text-align:center; margin-top:5px;}
.dzq1 ul li h4{text-align:center; height:25px; overflow:hidden; line-height:25px;}
.sm{clear:both;overflow:hidden; font-size:14px; border:1px solid #ccc; padding:10px;}
</style>
<?php
global $CACHE;$user_cache = $CACHE->readCache('user');$name = $user_cache[1]['name'];
$DB = MySql :: getInstance();
$sql = "SELECT count(*) AS comment_nums,poster,mail,url FROM ".DB_PREFIX."comment where date >0 and poster !='".$name ."' and url!='' and hide ='n' group by poster order by comment_nums DESC limit 0,200";
$result = $DB -> query($sql );$x=1; while($row = $DB -> fetch_array($result ) )if ($x<=1) {{if($row['url']){$tmp = "
<ul><li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第一名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></li></dd>";
}else{$tmp = $img;}$output .= $tmp;$x++;}}elseif($x<=2){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第二名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=3){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第三名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=4){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第四名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=5){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第五名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=6){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第六名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=7){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第七名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=8){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第八名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li>";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x<=9){if($row['url']){$tmp = "
<li><dd><a target=\"_blank\" href=".$row['url']."><p><img alt='' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /></p>
<h4>第九名:".$row['poster']."<br />在本站共评论".$row['comment_nums']."次<br />".$row['url']."</h4></a></dd></li></ul></div><div class=\"dzq1\">";
}else{$tmp = $img;}$output .= $tmp;$x++;}elseif($x>=10){$img = "";
if($row['url']){$tmp = "
<ul><li><a target=\"_blank\" href=\"".BLOG_URL."go/?url=".$row['url']."\" title=\"【第".$x."名】 评论:".$row['comment_nums']."\"><p><img alt='".$row['poster']."' src=".myGravatar($row['mail'])." height=\"40\" width=\"40\" /><p><h4>".$row['poster']."</h4></a></li></ul>";
}else{$tmp = $img;}$output .= $tmp;$x++;}
$output = '
<div class="sm">说明(以下链接的来源,仅显示前200名评论者;顺序:留言数 —> 最新评论者):<br />
在舍力博客随便一篇文章中留言(图像为Gravatar),通过审核即可上榜。<br />
排名为留言次数最多(审核通过的次数),前9名评论者加红显示,已经去除作者和无链接者评论</div>
<div class="dzq">'.$output .'</div>';
echo $output ;?>
<?php include View::getView('footer');?>


标签: emlog

admin 发布于  2015-8-2 15:19 

如何让置顶文章只显示标题不显示摘要 emlog

如何让置顶的文章只显示标题而不显示摘要,而其他没有置顶的文章依然显示标题和摘要,如图所示:

其实只要判断一下是不是置顶文章就可以了,<?php if($value['top']=='n'):?>非首页置顶文章显示内容<?php endif; ?>,如果是分类置顶的话就用<?php if($value['sortop']=='n'):?>非分类置顶文章显示内容<?php endif; ?>下面以模板为例,修改log_list.php


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"> <h2><?php topflg($value['top'], $value['sortop'], isset($sortid)?$sortid:''); ?><a href="<?php echo $value['log_url']; ?>"><?php echo $value['log_title']; ?></a></h2>
<?php if($value['top']=='n'):?><!--判断开始,注释可以去掉-->
<p class="date">作者:<?php blog_author($value['author']); ?> 发布于:<?php echo gmdate('Y-n-j G:i', $value['date']); ?>
<?php blog_sort($value['logid']); ?>
<?php editflg($value['logid'],$value['author']); ?>
</p>
<?php echo $value['log_description']; ?>
<p class="tag"><?php blog_tag($value['logid']); ?></p>
<p class="count">
<a href="<?php echo $value['log_url']; ?>#comments">评论(<?php echo $value['comnum']; ?>)</a>
<a href="<?php echo $value['log_url']; ?>">浏览(<?php echo $value['views']; ?>)</a>
</p>
<?php endif; ?><!--判断结束,注释可以去掉-->
本方法来源于论坛hackhp之手,舍力用5.3.1测试正常显示,如有疑问可下面留言。


题外话:使用此方法也可以不显示首页置顶文章,只需要把<?php if($value['top']=='n'):?>放在


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><h2><?php topflg($value['top'], $value['sortop'], isset($sortid)?$sortid:''); ?><a href="<?php echo $value['log_url']; ?>"><?php echo $value['log_title']; ?></a></h2>
前面即可

当然,如果要实现分类置顶不显示,只需要把<?php if($value['top']=='n'):?>改为<?php if($value['sortop']=='n'):?>,如何需要同时不显示,都加上就好了,但是也要把<?php endif; ?>改为<?php endif; endif;?>


标签: emlog

admin 发布于  2015-8-2 15:19 

实现内页和首页显示不同的友链的方法 emlog

友链链接如何实现内页和首页的链接不同。。

就是添加友链是时候可以选择是内页还是首页。。

有个简单的思路,可以在链接影藏时放在内页。显示时在首页。。。这样应该就不需要在数据库添加字段了。。

以下是EM论坛hackhp给出的方法(在需要调用的地方放入<?php page_like(); ?>): 注:以下方法产生的友链是当你后台点击隐藏的才会显示的,不然是不显示的

在模板文件module.php最后加入如下代码:(推荐使用)


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"> <?php
function page_like(){
$db = MySql::getInstance();
$sql = "SELECT * FROM " . DB_PREFIX . "link WHERE hide='y' ORDER BY taxis ASC";
$result = $db->query($sql);
while($row = $db->fetch_array($result)){ ?>
<li><a href="<?php echo $row['siteurl']; ?>" title="<?php echo $row['description']; ?>" target="_blank"><?php echo $row['sitename']; ?></a></li>
<?php } ?>
<?php } ?>
第二种方法:

在模板文件module.php最后加入如下代码:



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
function link_n(){$db = MySql::getInstance();?>
<?php $sql = "SELECT sitename,id,description,siteurl,hide FROM ".DB_PREFIX."link ORDER BY id "; $list = $db->query($sql);while($row = $db->fetch_array($list)){
if($row['hide']=='n'){$yes="1";}else{$yes="2";}?>
<?php if($yes=='2'): ?>
<a title="<?php echo $row['description']; ?>" href="<?php echo $row['siteurl']; ?>" target="_blank"><?php echo $row['sitename']; ?></a>
<?php else:endif; }} ?>
今天有个网友说到全站调用内页友链(首页除外),舍力在这里分享一下自己的方法,要稍微修改一下上面的代码,以默认模板为例(ps:肯定还有更好的方法,如果你有好的方法,望留言给我,大家共同学习);在模板文件module.php最后加入如下代码:



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php //内页链接
function ny_links(){$db = MySql::getInstance();$sql = "SELECT * FROM " . DB_PREFIX . "link WHERE hide='y' ORDER BY taxis ASC";$result = $db->query($sql);?>
<li><h3><span>友链链接(内页)</span></h3><ul id="link">
<?php while($row = $db->fetch_array($result)){ ?>
<li><a href="<?php echo $row['siteurl']; ?>" title="<?php echo $row['description']; ?>"><div style="background:url(<?php echo $row['siteurl']; ?>/favicon.ico) no-repeat;background-size:16px; background-position: 50% center;float:left;width:16px;height:16px;margin:5px 2px 0 0px;"></div><?php echo $row['sitename']; ?></a></li>
<?php }?></ul></li><?php }?>
在模板文件side.php的</ul>前面加入如下代码:



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php if("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] == BLOG_URL) {}else{ny_links();}?>



标签: emlog

admin 发布于  2015-8-2 15:19 

Emlog程序网页源码有空白的解决办法分享 emlog

Emlog程序如果发现网页源码有很多空白,可能是以下原因造成的

1、安装的插件,解决办法,禁用所有插件在查看源代码看是否有空白;

2、请检查模板文件module.php,删除其中的空行即可,请使用代码工具(notepad++,Macromedia Dreamweaver 8等)编辑删除;



以上只是原因,还有一个终级解决办法,就是在模板文件header.php里面<?php 后面加上 ob_clean();即可。本方法来源于em论坛蓝叶

如果上述方法不行,请尝试将模板里的 header.php 的 ob_clean(); 代码放在这个位置:

<?php 
/*
Template Name:xx主题
Description:xxx
Version:1.0
Author:mrxn
Author Url:http://www.mrxn.net
Sidebar Amount:1
*/
if(!defined('EMLOG_ROOT')) {exit('error!');}
require_once View::getView('module');
ob_clean();
?>

简单介绍下有关 ob_clean(); 

1、这三个函数运用在PHP4和PHP5中。在一些PHP项目中,经常能看到这三个函数的使用。



有的输出,前面本来要显示在页面里的东西全都被清除了,不显示了。



第二个函数:ob_start();



告诉php从这里开始要记录输出的内容了,并且所有输出放到连续的内存块里。



第三个函数:ob_get_contents();



这个应该比较容易懂,就是取出从ob_start()函数开始的地方到这个函数之间所有输出的内容,如:$a = ob_get_contents();

$a就是前面所有输出的字符串连接在一起。



ob_start(); ob_clear(); ob_get_contents();这三个函数通常配合来使用,不管你前面输出什么内容,最后从ob_start之后输出的内容都能控制到一个变量里。

标签: emlog

admin 发布于  2015-8-2 15:19 

如何增加文章内容(日志)分页功能的方法分享 emlog

Emlog的5.3.1新版仍然没有文章分页功能,而刚好我的文章都比较长,用户阅读起来体验可能不太好,自己动手,丰衣足食,我这里把增加分页的方法分享出来,给有需要的朋友参考。

    第一步、在模版文件module.php最后一段加入代码:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
//内容页分页
function log_fy($aid,$aP,$aCount) {
$log_fy .= '<div id="log_fy">';
for ($p=0;$p<$aCount;$p++) {
if ($p == 0 && $aP == 0) $log_fy .= '<span title="当前第1页">1</span>';
else if ($p == 0) $log_fy .= '<a href="'.BLOG_URL.'?post='.$aid.'" title="转到第1页">1</a>';
else if ($p == $aP) $log_fy .= '<span title="当前第'.($p+1).'页">'.($p+1).'</span>';
else $log_fy .= '<a href="'.BLOG_URL.'?post='.$aid.'&p='.$p.'" title="转到第'.($p+1).'页">'.($p+1).'</a>';
}
$log_fy .= '</div>';
return $log_fy;}
?>
 
第二步、然后把echo_log.php中的<?php echo $log_content; ?>替换如下代码:



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
$p = $_GET["p"];
$aArr = split('-|-',stripslashes($log_content));
$aCount = count($aArr);
if ($aCount>1){
if ($p>0){echo $aArr[$p].log_fy($logid,$p,$aCount);
}else{echo $aArr[0].log_fy($logid,0,$aCount);}
}else{echo $log_content;}
?>
使用方法很简单,后台编辑文章的时候,在需要分页的地方插入 -|- 即可;不足之处就是,分页文章标题都一样



标签: emlog

admin 发布于  2015-8-2 15:18 

调用指定多个分类文章及后台控制id和数量的方法 emlog

对于SQL命令不是很熟悉,想用EMLOG做一个文章类表调用,需要用到SQL命令代码,调用指定多个分类EMLOG文章列表,研究了好些时间
整明白,求人也不是个事,只好自己继续边看教程边测试,功夫不负有心人,最终给我整明白了,用这个SQL命令可以正确调用指定多个分类的EMLOG文章列
表,分享给有需要的站长们,把以下代码复制到模板的脚本文件中,设置好需要调用的分类ID号,在前台模板里写入调用代码就可以实现你想要的效果了。

    在模板文件module.php中加入如下代码


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php //调用指定多个分类文章,1,2,3,4代表分类id
function sort_logs($log_num) {
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,views FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid IN (1,2,3,4) ORDER BY date DESC LIMIT 0,$log_num";
$list = $db->query($sql);
while($row = $db->fetch_array($list)){ ?>
<li><a href="<?php echo Url::log($row['gid']);?>"><?php echo $row['title'];?></a></li>
<?php } ?>
<?php } ?>
说明:IN后面括号中的就是要调用的分类ID号,请自行更改你需要调用的分类ID号,中间用英文状态下的逗号隔开,前台模板调用在需要输出地方放入代码<?php sort_logs(10);?>其中10为显示条数


  以上方法每次都需要手动修改模板文件中的分类id和数量,下面跟大家说说后台控制id和数量的方法(ps:必须安装 模板设置 插件,否则无法使用以下方法)
     1、在模板文件module.php中加入如下代码


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php //调用指定多个分类文章 function sort_logs($log_num) {require('sheli.php');
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,views FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid IN ($sortlog_id) ORDER BY date DESC LIMIT 0,$log_num";
$list = $db->query($sql);
while($row = $db->fetch_array($list)){ ?>
<li><a href="<?php echo Url::log($row['gid']); ?>"><?php echo $row['title']; ?></a><?php echo gmdate('m-d', $row['date']); ?></li>
<?php } ?>
<?php } ?>
2、在模板文件夹中建立一个名为sheli.php的文件,代码如下



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
// @shuyong.net
if(!defined('EMLOG_ROOT')) {exit('error!');}
$sortlog_id = _g('sortlog_id');
?>
3、在模板文件options.php加入如下代码(ps:如没有此文件,请参考最后说明)



<pre style="overflow:auto" ;class="prettyprint lang-php linenums">'sortlog_mun' => array(
'type' =>'text',
'name' =>'调用指定多个分类文章数量',
'description' =>'(选择blog模式就不必理会)',
'default' =>'10',
),

'sortlog_id' => array(
'type' =>'twxt',
'name' =>'调用指定多个分类文章id',
'description' =>'直接写分类id,多个用半角,隔开',
'default' =>'1,2,3,4',
),
   最后在需要显示的地方调用代码<?php sort_logs(_g('sortlog_mun'));?>,如你的模板中没有options.php文件,请自行创建一下,代码如下



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
/@support tpl_options/
!defined('EMLOG_ROOT') && exit('access deined!');
$options = array(
//此处放3中代码
);
本代码在emlog5.3.1上测试正常,其他版本为做测试,如有疑问,请在下面留言给我。



标签: emlog

admin 发布于  2015-8-2 15:18 

如何屏蔽侧边栏最新评论中博主的回复 emlog

博主需要经常和访客互动,博主的回复也作为一条评论在最新评论处显示,这样一来,如果博主如果一次回复好几条评论留言,那么在最新评论的地方显示的都是自己的评论,这样不太好。于是博主想把博主自己的最新评论显示屏蔽掉。

    那么怎么在最新评论那里屏蔽掉博主自己的回复评论呢,其实很简单,就是通过检测邮箱或者用户名,如果是博主的邮箱或者用户名,则不显示在最新评论处即可,方法如下:

    找到根目录“include/lib”目录下的cache.php缓存函数文件,大概在211行左右,找到:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums">$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' ORDER BY date DESC LIMIT 0, $index_comnum");
更换为如下代码:



<pre style="overflow:auto" ;class="prettyprint lang-php linenums">$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' AND mail!='[email protected]' ORDER BY date DESC LIMIT 0, $index_comnum");
 其中[email protected]是博主自己的邮箱,你换成你的即可。如果你还有更多的小号,中间重复 AND mail!='你的邮箱' 即可。如果修改后无任何变化的话,请到后台数据中更新缓存即可。

    注:以上方法只在emlog5.3.1中测试正常,其他版本为做测试,修改之前请先做好备份,以免造成损失!


标签: emlog

admin 发布于  2015-8-2 15:18 

Emlog隐藏指定分类文章的几个不同表达方式 emlog

第一种方式:隐藏指定分类文章(ps:代码正常显示),以下代码均用默认模板测试,模板文件log_list.php中找到


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
if (!empty($logs)):
foreach($logs as $value):
?>
在此段代码后加入
<div <?php if($value['sortid']==1){echo 'style="display:none"';}?>>
<pre style="overflow:auto" ;class="prettyprint lang-php linenums">在下面代码前加入
</div>
<?php
endforeach;
else:
?>
代码==1中的1为分类id,本代码来源于em论坛hackhp之手,不足之处就是查看源代码时是显示的。


第二种方式:隐藏指定分类文章同时代码也隐藏
在模板文件log_list.php中找到下面代码


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
if (!empty($logs)):
foreach($logs as $value):
?>
替换为



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
if (!empty($logs)):
foreach($logs as $value): if ($value['sortid']==1) continue;
?>

代码==1中的1为分类id,如需实现多个分类隐藏,请使用下面代码



<pre style="overflow:auto" ;class="prettyprint lang-php linenums">if(in_array($value['sortid'],array(1,2,3,4))){continue;}
把其中的分类id更改一下就可以了,本代码在5.3.1版本下测试正常,如果你的log_list.php未分离出首页模板,请勿使用此方法,否则对应分类里的文章也将被隐藏。


以上方法修改以后确实可以屏蔽指定的栏目文章在首页显示,但是首页文章数量会减少,被屏蔽的栏目的文章条目数在首页还是会被记录导致首页总少几篇文章而且和发布的被屏蔽的栏目文章数是对应的。下面介绍修改内核且不会减少数量的方法
具体修改的文件如下(此处以 EMLOG 5.3.1 为例 要屏蔽的文章分类 ID 为 8)
查找 Emlog 根目录include/controller/log_controller.php


<pre style="overflow:auto" ;class="prettyprint lang-php linenums">找到第 1 处 $sqlSegment ='ORDER BY top DESC ,date DESC';
添加and sortid != 8 将其修改为$sqlSegment ='and sortid != 8 ORDER BY top DESC ,date DESC';
如需屏蔽多个分类 继续添加and sortid != *即可

另外附带提一下禁止访问某个分类文章代码,代码来源于em论坛hackhp之手,以下代码放入模板header.php最顶端即可



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php if($sortid==1){exit("禁止访问");}?>
题外话:其实很多的教程em论坛都可以找到了,只要你肯折腾。本站的emlog教程中也总结了一部分,有兴趣的话可以参考一下。


标签: emlog

admin 发布于  2015-8-2 15:17 

指定分类id使用指定的文章模版的方法 emlog

折腾生命在于折腾,越是折腾学得越是多,于是在看论坛的时候,发现了论坛有人建议这个,emlog 指定的分类文章使用指定的文章详情模版 的方法。

    其实2个步骤就可搞定,第一步,在模板文件echo_log.php中写入如下代码(ps:最好先把原echo_log.php重名[如log.php],在把原echo_log.php文件清空后加入如下代码)


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
$id = "1";//指定分类id
if($sortid == $id){
require_once View::getView('log1');//调用文章模板log1.php(此文件必须存在,否则为空白页)
}else if($sort == "$log"){
require_once View::getView('log');//除上面指定的分类id外,其他文章模板调用log.php
}
?>
第二步,创建刚刚在第一步中调用的那个文件即可(ps:必须创建log.ph,log1.php)


如果要实现多个分类调用的不同文章模板的话,把上面第一步中的代码用else分开调用,示例代码


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
if($sortid == "1"){
require_once View::getView('log1');//分类id为1的调用文章模板log1.php(此文件必须存在,否则为空白页)
}else if($sortid == "2"){
require_once View::getView('log2');//分类id为2的调用文章模板log2.php(此文件必须存在,否则为空白页)
}else if($sort == "$log"){
require_once View::getView('log');//除上面指定的分类id外,其他文章模板调用log.php
}
?>
另一个更简单的方法:

在模板文件echo_log.php的顶部 ?>的前面,加入以下代码

if($sortid==1){include View::getView('log_id');exit;}

其中$sortid==1, 是要设以下那个模板文件的分类ID,多个分类使用||,例:$sortid==1 || $sortid==2

getView('log_id')中的log_id就是以上该类要使用的模板文件名,注意模板文件名不要加.php


不同作者也可以使用此方法,只需要把其中的sortid改为author即可。

    本代码在5.3.1版本上测试正常,如发现有问题请在本页留言反馈。

标签: emlog

admin 发布于  2015-8-2 15:17 

Emlog调用某个页面内容的方法分享 emlog

Emlog调用某个页面内容的方法,分2个步骤:

1、在模板module.php中加入如下代码(PS:请把此段代码放入最后,以免出错)


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php //调用页面内容
function html_page($id,$echo){$homez = mysql_fetch_array(mysql_query("SELECT * FROM ".DB_PREFIX."blog WHERE gid ='$id'"));return $homez[$echo];}
?>
2、在需要调用的地方加入<?php echo html_page("2","content"); ?>即可,其中的2为页面id。


标签: emlog

admin 发布于  2015-8-2 15:17