emlog官方缓存类统计代码 emlog

先说调用代码:

<?php echo $sta_cache['内容'];?>

例如调用日志数量

<?php echo $sta_cache['lognum'];?>

注意了这里的日志数量是前台显示出来的日志数量,未包含未审核以及隐藏的文章数量。

lognum 游客可见日志总数

draftnum  草稿,也就是隐藏文件数量

comnum  未隐藏的评论数量

comnum_all  所有评论数量

hidecomnum  被隐藏的评论数量

twnum  微语数量

checknum 未审核的文章数量


博客访问次数:

2014-8-13更新,来源于em论坛,缺点加载比较慢,把下面代码放入到模板module.php文件中


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
//统计文章总数
function count_log_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT() AS total FROM " . DB_PREFIX . "blog WHERE type = 'blog'");
return $data['total'];
}
//置顶文章数
function count_log_top(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(
) AS total FROM " . DB_PREFIX . "blog WHERE top = 'y' or sortop = 'y' AND type = 'blog'");
return $data['total'];
}
//隐藏文章数
function count_log_hide(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE hide = 'y' AND type = 'blog'");
return $data['total'];
}

//未审核文章数
function count_log_check(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT() AS total FROM " . DB_PREFIX . "blog WHERE checked = 'n' AND type = 'blog'");
return $data['total'];
}
//加密文章数
function count_log_pass(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(
) AS total FROM " . DB_PREFIX . "blog WHERE password !='' AND type = 'blog'");
return $data['total'];
}

//统计页面总数
function count_page_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'page'");
return $data['total'];
}

//统计评论总数
function count_com_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT() AS total FROM " . DB_PREFIX . "comment");
return $data['total'];
}
//统计友链总数
function count_link_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(
) AS total FROM " . DB_PREFIX . "link");
return $data['total'];
}

//统计微语评论总数
function count_treply_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT() AS total FROM " . DB_PREFIX . "reply");
return $data['total'];
}
//统计分类总数
function count_sort_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(
) AS total FROM " . DB_PREFIX . "sort");
return $data['total'];
}
//统计子分类数
function count_sort_mod(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort WHERE pid != 0");
return $data['total'];
}

//统计标签总数
function count_tag_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT() AS total FROM " . DB_PREFIX . "tag");
return $data['total'];
}
//统计微语总数
function count_tw_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(
) AS total FROM " . DB_PREFIX . "twitter");
return $data['total'];
}

//统计用户总数
function count_user_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user");
return $data['total'];
}

//统计管理员总数
function count_user_admin(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'admin'");
return $data['total'];
}

//统计作者总数
function count_user_writer(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT() AS total FROM " . DB_PREFIX . "user WHERE role = 'writer'");
return $data['total'];
}
//统计附件总数
function count_att_all(){
$db = MySql::getInstance();
$data = $db->once_fetch_array("SELECT COUNT(
) AS total FROM " . DB_PREFIX . "attachment");
return $data['total'];
}

//最后发表文章时间 function last_post_log(){
$db = MySql::getInstance();
$sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type='blog' ORDER BY date DESC LIMIT 0,1";
$res = $db->query($sql);
$row = $db->fetch_array($res);
$date = date('Y-n-j H:i',$row['date']);
return $date;
};?>
在对应的位置插入<?php echo count_link_all();?>其中count_link_all()代表友链数量


标签: emlog

admin 发布于  2015-6-7 00:05 

emlog教程之在文章页实现判断百度是否收录你的文章 emlog

emlog教程之在文章页实现判断百度是否收录你的文章

首先在这里感谢四少爷的blog的开发制作成插件,在这里我是将插件里面的一些东西移植到了主题module文件里面,这样就不用开启插件就可以使用了。这方便提交,查看,利于SEO.

首先将以下代码存放在module文件中:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
//判断内容页是否百度收录
function baidu($url){
$url='http://www.baidu.com/s?wd='.$url;
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$rs=curl_exec($curl);
curl_close($curl);
if(!strpos($rs,'没有找到')){
return 1;
}
else{
return 0;
}
}
function checkbaidu($id){
$url=Url::log($id);
if(baidu($url)==1){
echo "百度已收录";
} else {
echo "<a style=\"color:red;\" rel=\"external nofollow\"
title=\"点击提交收录!\" target=\"_blank\"
href=\"http://zhanzhang.baidu.com/sitesubmit/index?sitename=$url\"&gt;百度未收录&lt;/a&gt;";
}
}
?>
  然后再将以下代码:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php echo checkbaidu($logid); ?>



放入你的echo_log.php文件中的合适位置即可使用.效果如下:

QQ截图20150606000146.png

这是未收录的,

1.png

这是收录的.

06-06-000056.png 未收录的提示你收录,附带链接,方便提交,方便SEO.

注:参考独狼博客,原文链接:http://www.xlonewolf.net/work/282.html

标签: 代码 emlog SEO

admin 发布于  2015-6-5 23:14 

EMLOG在SAE安装,缓存解决方案 emlog

在SAE安装了EMLOG之后(PS:安装也是蛋疼的事情,不过这不是这篇文章的重点,所以 不管。。。。)会提示目录不可写。这是因为EM的缓存是写在安装的目录下。

那么解决方式就是:

1.首先点击 Memcache ,然后初始化,会提示分配一个大小,按你博客的内容量来分配一个,像我这个博客,5M就够了,当然 你害怕以后不够,可以分配100M,不过,,,,,豆豆会消耗的很多(貌似是这样 -0 -)。。。




2.打开代码管理,编辑代码,在include\lib文件路径下上传以下文件覆盖cache.php



附件下载:cache .zip



本文来源于王小刀博客,原文地址:http://www.wangshizhao.cn/emlog/145.html

标签: emlog

admin 发布于  2015-6-2 23:13 

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

模板的module.php文件中放入如下代码:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?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表示数量


标签: emlog

admin 发布于  2015-6-1 23:14 

emlog去除分类目录前的sort emlog

把sort去掉,直接显示网址/分类别名 的形式,这样有利于搜索引擎收录,也使网址更加简明。



emlog去除分类目录前的sort修改方法:



首先确认你的站点支持Rewrite,确认支持Rewrite后进行如下操作:



1.修改include\lib\url.php文件,删除第102行和第104行的 sort/


2.修改include\lib\dispatcher.php文件,把第109行的


<pre style="overflow:auto" ;class="prettyprint lang-php linenums">return $path;
替换成
if($path!="/"&&substr($path,0,6)!="/sort/"&&substr($path,0,2)!="/?") {
return "/sort".$path;
} else {
return $path;
}
3.修改include\lib\dispatcher.php文件,把第109行的



<pre style="overflow:auto" ;class="prettyprint lang-php linenums">$path = str_ireplace('index.php', '', $path);
替换成
$path = str_ireplace('/index.php', '', $path);


标签: emlog

admin 发布于  2015-6-1 18:32 

Emlog获取相同作者的文章,可限制数量的方法 emlog

Emlog默认没有给予获取同一作者文章的相关功能;只是在列表也给出了相同作者的所有文章,下面就是Emlog获取相同作者的文章的代码,原构思来源于[啊宅],不够貌似博主写的不是很清楚,所以经过加工,让更多的Emloger受益。首页在模板的module.php文件中加入如下代码:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php //获取相同作者的文章,可限制数量的方法
function sl_author(){$sl_zz=mysql_query("SELECT * FROM ".DB_PREFIX."blog WHERE author ='1' order by views DESC limit 0,10");while($sl = mysql_fetch_array($sl_zz)){?>
<li><a href="<?php echo Url::log($sl['gid']);?>" title="<?php echo $sl['title'];?>"><?php echo $sl['title'];?></a></li><?php
}}?>
其中author ='1' 中的标签作者id,limit 0,10中的0表示从第一篇文章开始,10表示数量;调用方法在你想要的地方放入<?php sl_author();?>即可。


标签: emlog

admin 发布于  2015-6-1 11:46 

emlog缩略图不同实现方法:正文-附件-随机图片 emlog

实现emlog列表也缩略图按先调用正文第一张图片,没有则调用附件图片,前2者都没有则调用随机图片,代码如下:首页在模板的module.php文件中加入如下代码:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?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($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);$img_path = "";while($row = $db->fetch_array($imgs)){$img_path .= BLOG_URL.substr($row['filepath'],3,strlen($row['filepath']));}
return $img_path;}?>
然后在log_list.php中加入:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php if(img_zw($value['content'])){$imgurl = img_zw($value['content']);
}elseif(img_fj($value['logid'])){$imgurl = img_fj($value['logid']);
}else{$imgurl = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';}
?><p><img src="<?php echo $imgurl;?>" /></p>
以下代码直接替换上面代码,实现有调用正文第一张图片 => 附件图片 => 无图片则不显示。



<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php if(img_zw($value['content'])){$imgurl = img_zw($value['content']);?><p><img src="<?php echo $imgurl;?>" /></p>
<?php }elseif(img_fj($value['logid'])){$imgurl = img_fj($value['logid']);?><p><img src="<?php echo $imgurl;?>" /></p>
<?php }else{}?>



标签: emlog

admin 发布于  2015-6-1 01:05 

emlog伪静态设置方法及伪静态规则 emlog

今天刚把emlog装好,听朋友说的,这个博客系统简单好用,还能生成伪静态呢。装好了才发现,设置伪静态后,好像链接打不开,Mrxn在网上搜索了下方法,千万篇网页里就找到一个能用的,下面把方法写给大家,希望能帮助你们。

   
首先,你要弄清楚你的主机空间是windows系统呢,还是unix系统。因为国内大多数空间商都用的是win主机,所以咱们就着重说这个吧,把下面复制
下来保存在记事本里面,然后把名字改成httpd.ini。传到空间根目录试试,一般来说,都能直接访问了,如果还不行,说明你没有权限,那只好联系你的
空间商了。


伪静态代码:(保存文件名字为httpd.ini,传到网站根目录【要注意的是此文件要放在空间的根目录下面】)


<pre style="overflow:auto" ;class="prettyprint lang-xml linenums">[ISAPI_Rewrite]

3600 = 1 hour

CacheClockRate 3600
RepeatLimit 32
RewriteRule /rss.php(.) /rss.php$1 [L]
RewriteRule /tb.php(.
) /tb.php$1 [L]
RewriteRule /favicon.ico /favicon.ico [L]
RewriteRule /xmlrpc.php(.) /xmlrpc.php$1 [L]
RewriteRule /wlwmanifest.xml /wlwmanifest.xml [L]
RewriteRule /(t|m)$ /$1/ [R]
RewriteRule /(admin|content|include|t|m)/(.
) /$1/$2 [L]
RewriteRule /install.php(.) /install.php$1 [L]
RewriteRule /emlog_toolkit.php(.
) /emlog_toolkit.php$1 [L]
RewriteRule /up(\d.\d.\d)to(\d.\d.\d).php(.) /up$1to$2.php$3 [L]
RewriteRule ^/$ /index.php [L]
RewriteRule /(.
) /index.php/$1 [L]



admin 发布于  2015-5-31 21:18 

Emlog教程 - 侧边栏最新文章获取图片、分类、摘要等 emlog

今天在群里有人想实现侧边栏最新文章获取图片,自己折腾了一阵子,成功解决了这个问题。为了以后再用得着,所以在这儿保存记录。当然除了调出图片,还可以调用当前分类、摘要等,具体看如下代码:首页在module.php中找到最新文章那段代码,直接用以下代码替换即可:

<?php //widget:最新文章 function widget_newlog($title){ $index_newlognum = Option::get('index_newlognum');?> <div class="cbl-one"><div class="title"><p><?php echo $title;?></p></div> <?php $db = MySql::getInstance(); $sql = $db->query ("SELECT * FROM ".DB_PREFIX."blog inner join ".DB_PREFIX."sort WHERE hide='n' AND type='blog' AND top='n' AND sortid=sid order by date DESC limit 0,$index_newlognum"); while($row = $db->fetch_array($sql)){ $logpost = !empty($row['excerpt']) ? $row['excerpt'] : ''.$row['content'].''; if (!empty($row['excerpt'])){preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $row['excerpt'], $match); if(empty($match[1][0])) { preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i",$row['content'],$match);}}else{preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $row['content'],$match);} $img = isset($match[0][0]) ? $match[0][0]:'<img src="图片地址" />';//无图片时显示 $date = gmdate('Y年m月d日', $row['date']); $content = strip_tags($logpost,''); $content = mb_substr($content,0,100,'utf-8');//摘要字数修改本代码中的100这个即可 $comment = ($row['comnum'] != 0) ? ''.$row['comnum'].'' : '0'; $gid = $row['gid']; $tag = $db -> query("SELECT * FROM ".DB_PREFIX."tag WHERE gid LIKE '%,$gid,%'");?> <a href="<?php echo Url::sort($row['sid']);?>" title="<?php echo $row['sortname'];?>" /><?php echo $row['sortname'];?></a><br /> <a href="<?php echo Url::log($row['gid']);?>" title="<?php echo $row['title'];?>" /><?php echo $row['title'];?></a><br /> <?php echo $img;?><br /> <?php echo $content;?> <?php };?></div><?php }?>
随便附带上热门文章的代码 30天内按点击量排序:

<?php //widget:热门文章 function widget_hotlog($title){ $index_hotlognum = Option::get('index_hotlognum');?> <div class="cbl-one"><div class="title"><p><?php echo $title;?></p></div> <?php $db = MySql::getInstance();$db = MySql::getInstance(); $time = time(); $sql = $db->query ("SELECT * FROM ".DB_PREFIX."blog inner join ".DB_PREFIX."sort WHERE hide='n' AND type='blog' AND date > $time - 30*24*60*60 AND top='n' AND sortid=sid order by `views` DESC limit 0,$index_hotlognum"); while($row = $db->fetch_array($sql)){ $logpost = !empty($row['excerpt']) ? $row['excerpt'] :''.$row['content'].''; if (!empty($row['excerpt'])){preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i",$row['excerpt'],$match);if(empty($match[1][0])){ preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i",$row['content'],$match);}}else{preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $row['content'],$match);} $img = isset($match[0][0]) ? $match[0][0]:'<img src="图片地址" />';//无图片时显示 $date = gmdate('Y年m月d日', $row['date']); $content = strip_tags($logpost,''); $content = mb_substr($content,0,100,'utf-8');//摘要字数修改本代码中的100这个即可 $comment = ($row['comnum'] != 0) ? ''.$row['comnum'].'' : '0'; $gid = $row['gid'];?> <li><a href="<?php echo Url::log($row['gid']);?>" title="<?php echo $row['title'];?>" /><?php echo $row['title'];?></a></li> <?php };?></div><?php }?>
代码说明:(css本人就不折腾了,自己捣鼓吧,如果你这个也不会的话,就不要折腾了)
所属分类链接:<?php echo Url::sort($row['sid']);?>
所属分类标题:<?php echo $row['sortname'];?>
文章链接:<?php echo Url::log($row['gid']);?>
文章标题:<?php echo $row['title'];?>
当前第一张图片:<?php echo $img;?>
当前文章摘要:<?php echo $content;?>
当前评论:<?php echo $row['comnum'];?>
当前浏览量:<?php echo $row['views'];?>
当前时间:<?php echo gmdate('Y年m月d日', $row['date']);?>
本栏目标题(侧边栏):<?php echo $title;?>

标签: emlog

admin 发布于  2015-5-31 16:53 

修改emlog编辑器kindeditor,使其能够auto显示插入的代码 emlog

我们使用emlog插入代码的时候们应该遇见过这种情况:

点击查看原图

即,代码超出边框的地方显示不全,这样,读者要是想要复制,代码也不方便,只能通过审查元素/源代码来复制了.

我也苦恼这个问题,但是一直没有时间,今晚刚好有时间,就来折腾,百度了一下,没有搜到.....于是就开始了自己的折腾.....

最终实现了:

点击查看原图

我是通过Firebug 来查看元素的时候发现的:

点击查看原图

我就想在<pre class="prettyprint lang-php linenums"> 里面加个css样式来实现auto显示超出部分呢?我直接用Firebug修改后,发现可以,于是就开始编辑器核心文件操作了,本地测试通过.

下面说一下具体的操作步骤:

首先打开admin/editor/plugins/code/ 目录下的code.js

在第49行左右,找到如下代码:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums">html = '<pre class="prettyprint' + cls + ' linenums">\n' + K.escape(code) + '</pre> ';
  修改为如下代码:



<pre style="overflow:auto" ;class="prettyprint lang-php linenums">html = '<pre style="overflow:auto";class="prettyprint' + cls + ' linenums">\n' + K.escape(code) + '</pre> ';

  即可实现auto显示超出部分的代码了 .但是这个修改只是在你修改了code.js之后的文章中插入的代码才有效果,之前的文章想要实现,就只能手动重新插入一遍代码了,当然,如果你有更好的方法,欢迎留言交流.

ps:后面准备给emlog的kindeditor编辑器加入复制/粘贴/折叠代码功能,请关注博客.



admin 发布于  2015-5-30 02:25