Mrxn教你用表格给你的emlog加上个性化的版权吧 emlog
我看了大部分的emlog模板版权都很简单,基本上都是一句话写完的,很是不美观!我认为哈!!!
大家可以现在看一下我的博客的文章版权还是不错的吧! --- 效果如下图所示:
<pre style="overflow:auto" ;class="prettyprint lang-html linenums"><table width="770px" cellspacing="0" cellpadding="0" table-layout: fixed border-style:dashed; border-width:1px; border-color:#EEEEEE;>
<tr>
<th width="75" align="left" bgcolor="#F9F9F9" scope="row">本文标签:</th>
<td width="420" align="left" bgcolor="#F9F9F9" white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;><?php blog_tag($logid);?></td>
<td width="105" rowspan="4" align="center" background="http://api.k780.com:88/?app=qr.vget&level=L&size=4&appkey=11926&sign=4d1a837e7024195acf7d80362b610dcf&data=<?php echo $logurl;?>"></td>
</tr>
<tr>
<th width="75" align="left" bgcolor="#F9F9F9" scope="row">本文标题:</th>
<td width="420" align="left" bgcolor="#F9F9F9" white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;><a href="<?php echo $logurl;?>"><?php echo $log_title; ?></a></td>
</tr>
<tr>
<th width="75" align="left" bgcolor="#F9F9F9" scope="row">本文地址:</th>
<td width="420" align="left" bgcolor="#F9F9F9" white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;><a href="<?php echo $logurl;?>"><?php echo $logurl;?></a>(扫二维码进入博客触屏版哦)</td>
</tr>
<tr>
<th colspan="2" align="left" bgcolor="#F9F9F9" scope="row" white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;>除非注明,文章均为 《<a style="color:red;"<?php blog_author($author); ?>》>></a><a href="<?php echo BLOG_URL;?>">原创</a> ,欢迎转载!转载请注明本文地址,谢谢!</th>
</tr>
</table>
上面我把代码放出来.需要的自己看着折腾吧,不会的请在留言板留言,或者是加入QQ群反馈.
Emlog手机版获取文章标签和分类 emlog
代码仍旧是从module文件里拿出来,经过一些修改而得,使用基本没什么问题。里面的分类和标签链接地址还是电脑版的,不过也不必修改,毕竟手机版也没有分类和标签的功能,如果不需要的可以将其去掉。
以下是调用分类名(带链接)的代码:
<pre style="overflow:auto" ;class="prettyprint lang-php linenums">//获取文章对应的分类
function blog_sort($blogid){
global $CACHE;
$log_cache_sort = $CACHE->readCache('logsort');
if(!empty($log_cache_sort[$blogid])){
$blog_sort = "<a href=\"".Url::sort($log_cache_sort[$blogid]['id'])."\">".$log_cache_sort[$blogid]['name']."</a>";
}
else{
$blog_sort = "暂未分类";
}
echo $blog_sort;
}
把上面的代码放在手机版的index.php里的最后。然后进入view文件夹,按自己需要选择添加位置:
想显示在文章页面:打开single.php,放到里面的适当位置即可:
<?php blog_sort($logid); ?>
想显示在文章列表里:打开log.php文件,在 <?php foreach($logs as $value): ?> 与 <?php endforeach; ?> 之间放入如下调用代码:
<?php blog_sort($value['logid']); ?>
下面是获取文章标签的代码:
<pre style="overflow:auto" ;class="prettyprint lang-php linenums">//获取文章对应的标签
function blog_tag($blogid){
global $CACHE;
$log_cache_tags = $CACHE->readCache('logtags');
if (!empty($log_cache_tags[$blogid])){
$tag = '';
foreach ($log_cache_tags[$blogid] as $value){
$tag .= "<a href=\"".Url::tag($value['tagurl'])."\">".$value['tagname'].'</a> ';
}
echo $tag;
}
}
同样是放到index.php文件的后面,至于和上面的分类代码谁先谁后是无关紧要了,建议彼此隔开一行,方便查看修改。每个标签之间已用空格(即 )隔开,你也可以去掉再用CSS定义。
调用方法和上面的分类调用一样,文章页面的标签调用代码:
<?php blog_tag($logid); ?>
文章列表页面的标签调用代码:
<?php blog_tag($value['logid']); ?>
感觉内容和之前发的差不多(-_-#),我只是想写详细一点。
本文作者: 笑忘书,转载请注明出处
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教程之在文章页实现判断百度是否收录你的文章 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\">百度未收录</a>";
}
}
?>
然后再将以下代码:
<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php echo checkbaidu($logid); ?>
放入你的echo_log.php
文件中的合适位置即可使用.效果如下:
这是未收录的,
这是收录的.
注:参考独狼博客,原文链接:http://www.xlonewolf.net/work/282.html
css 书写顺序、命名规则的指南 PHP
这里总结了一些国外一些文章以及我的个人经验总结出来,我想对写CSS的前端用户来说是值得学习的。
CSS书写顺序
- 位置属性(position, top, right, z-index, display, float等)
- 大小(width, height, padding, margin)
- 文字系列(font, line-height, letter-spacing, color- text-align等)
- 背景(background, border等)
- 其他(animation, transition等)
CSS书写规范
使用CSS缩写属性
CSS有些属性是可以缩写的,比如padding,margin,font等等,这样精简代码同时又能提高用户的阅读体验。
去掉小数点前的“0”
简写命名
很多用户都喜欢简写类名,但前提是要让人看懂你的命名才能简写哦!
16进制颜色代码缩写
有些颜色代码是可以缩写的,我们就尽量缩写吧,提高用户体验为主。
连字符CSS选择器命名规范
- 长名称或词组可以使用中横线来为选择器命名。
-
不建议使用“_”下划线来命名CSS选择器,为什么呢?
- 输入的时候少按一个shift键;
- 浏览器兼容问题 (比如使用_tips的选择器命名,在IE6是无效的)
- 能良好区分JavaScript变量命名(JS变量命名是用“_”)
-
这里有一篇破折号与下划线的详细讨论,英文::点击查看 中文篇:点击查看
不要随意使用Id
id在JS是唯一的,不能多次使用,而使用class类选择器却可以重复使用,另外id的优先级优先与class,所以id应该按需使用,而不能滥用。
为选择器添加状态前缀
有时候可以给选择器添加一个表示状态的前缀,让语义更明了,比如下图是添加了“.is-”前缀。
CSS命名规范(规则)
常用的CSS命名规则
- 头:header
- 内容:content/container
- 尾:footer
- 导航:nav
- 侧栏:sidebar
- 栏目:column
- 页面外围控制整体佈局宽度:wrapper
- 左右中:left right center
- 登录条:loginbar
- 标志:logo
- 广告:banner
- 页面主体:main
- 热点:hot
- 新闻:news
- 下载:download
- 子导航:subnav
- 菜单:menu
- 子菜单:submenu
- 搜索:search
- 友情链接:friendlink
- 页脚:footer
- 版权:copyright
- 滚动:scroll
- 内容:content
- 标签:tags
- 文章列表:list
- 提示信息:msg
- 小技巧:tips
- 栏目标题:title
- 加入:joinus
- 指南:guide
- 服务:service
- 注册:regsiter
- 状态:status
- 投票:vote
- 合作伙伴:partner
注释的写法:
/* Header */ 内容区 /* End Header */
Id的命名:
1)页面结构
- 容器: container
- 页头:header
- 内容:content/container
- 页面主体:main
- 页尾:footer
- 导航:nav
- 侧栏:sidebar
- 栏目:column
- 页面外围控制整体佈局宽度:wrapper
- 左右中:left right center
(2)导航
- 导航:nav
- 主导航:mainnav
- 子导航:subnav
- 顶导航:topnav
- 边导航:sidebar
- 左导航:leftsidebar
- 右导航:rightsidebar
- 菜单:menu
- 子菜单:submenu
- 标题: title
- 摘要: summary
(3)功能
- 标志:logo
- 广告:banner
- 登陆:login
- 登录条:loginbar
- 注册:register
- 搜索:search
- 功能区:shop
- 标题:title
- 加入:joinus
- 状态:status
- 按钮:btn
- 滚动:scroll
- 标籤页:tab
- 文章列表:list
- 提示信息:msg
- 当前的: current
- 小技巧:tips
- 图标: icon
- 注释:note
- 指南:guild
- 服务:service
- 热点:hot
- 新闻:news
- 下载:download
- 投票:vote
- 合作伙伴:partner
- 友情链接:link
- 版权:copyright
注意事项::
- 1.一律小写;
- 2.尽量用英文;
- 3.不加中槓和下划线;
- 4.尽量不缩写,除非一看就明白的单词。
CSS样式表文件命名
- 主要的 master.css
- 模块 module.css
- 基本共用 base.css
- 布局、版面 layout.css
- 主题 themes.css
- 专栏 columns.css
- 文字 font.css
- 表单 forms.css
- 补丁 mend.css
- 打印 print.css
EMLOG在SAE安装,缓存解决方案 emlog
在SAE安装了EMLOG之后(PS:安装也是蛋疼的事情,不过这不是这篇文章的重点,所以 不管。。。。)会提示目录不可写。这是因为EM的缓存是写在安装的目录下。
那么解决方式就是:
1.首先点击 Memcache ,然后初始化,会提示分配一个大小,按你博客的内容量来分配一个,像我这个博客,5M就够了,当然 你害怕以后不够,可以分配100M,不过,,,,,豆豆会消耗的很多(貌似是这样 -0 -)。。。
2.打开代码管理,编辑代码,在include\lib文件路径下上传以下文件覆盖cache.php
附件下载:
本文来源于王小刀博客,原文地址:http://www.wangshizhao.cn/emlog/145.html
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去除分类目录前的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获取相同作者的文章,可限制数量的方法 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缩略图不同实现方法:正文-附件-随机图片 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{}?>