首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
搜索
舍力
登录
搜索
舍力
静以修身。
累计撰写
1140
篇文章
累计收到
3833
条评论
首页
栏目
首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
包含标签 【emlog】 的文章
2014-11-21
非插件实现Emlog时间轴归档代码分享
文件缓存型时间轴归档,后台更新缓存或者发布新文章的时候会自动更新;本站这个代码是使用缓存系统的,是需要修改内核文件的。慎用! 1、修改include/lib/cache.php文件,添加归档缓存函数 private $logalias_cache; 之后添加 private $loglists_cache; 添加在其他缓存函数位置添加归档缓存 /*** 文章归档列表缓存 */ private function mc_loglists() { $query = $this->db->query('select gid,title,date from ' . DB_PREFIX . "blog WHERE hide='n' and checked='y' and type='blog' ORDER BY date DESC"); $loglists_cache = array(); while ($row = $this->db->fetch_array($query)) { $loglists_cache= $row; } $cacheData = serialize($loglists_cache); $this->cacheWrite($cacheData, 'loglists'); } 不懂的朋友只请直接下载本文件覆盖include/lib/cache.php(请做好备份)cache.zip 博客开通时间过长的话,可能后面发布的文章会显示不出来,可自定义时间:AND date > $time - 3365246060(这个代码表示显示最近3年的文章) 2、此方法因不同的模板修改的有所差异,本站讲述以默认模板为例,首先复制模板目录下的page.php并重新命名为guidang.php(ps:这个自己可自行修改),把其中的<?php echo $log_content; ?>更改为如下代码即可 <div class="guidang"> <?php global $CACHE; $loglists_cache = $CACHE->readCache('loglists'); $year_month = 0; foreach($loglists_cache as $value): if($year_month != 0&&$year_month != date("Y-m",$value)){ echo '</ul>';} if($year_month != date("Y-m",$value)){ $year_month = date("Y-m",$value); echo '<h2 class="guidang-tt">'.$year_month.'</h3><ul>';} ?> <li><a href="<?php echo Url::log($value);?>" target="_blank" title="<?php echo $value; ?>"><span><?php echo date("Y-m-d",$value);?></span><div class="atitle"><?php echo $value;?></div></a></li> <?php endforeach;?></div> css文件如下 .guidang h2{font-size:150%;} .guidang li a{padding:8px 0;display:block} .guidang li a:hover .atitle:after{background:#ff5c43} .guidang li a span{display: inline-block;width:100px;font-size:12px;text-indent:20px} .guidang li a .atitle{display: inline-block;padding:0 15px;position:relative;width:550px;white-space:nowrap;text-overflow:ellipsis;} .guidang li a .atitle:after{position:absolute;left:-2px;background:#ccc;height:8px;width:8px;border-radius:6px;top:8px;content:""} .guidang li a .atitle:before{position:absolute;left:-4px;background:#fff;height:12px;width:12px;border-radius:6px;top:6px;content:""} .guidang{margin:10px;position:relative;padding:10px 0} .guidang:before{height:100%;width:4px;background:#eee;position:absolute;left:100px;content:"";top:0} .guidang-tt{position:relative;margin:10px 0;cursor:pointer} .guidang-tt:hover:after{background:#ff5c43} .guidang-tt:before{position:absolute;left:93px;background:#fff;height:18px;width:18px;border-radius:6px;top:3px;content:""} .guidang-tt:after{position:absolute;left:96px;background:#ccc;height:12px;width:12px;border-radius:6px;top:6px;content:""} 然后建立一个页面,在页面模板处填写 guidang 即可,演示地址:http://www.shuyong.net/guidang.html
2014年11月21日
9965 阅读
9 评论
Emlog教程
2014-11-20
Emlog判断首页与列表页的方法分享
判断首页函数的方法下(ps:测试5.3.1版本正常使用) 1、在模版文件module.php最低部加入如下代码 <?php //判断是否是首页 function blog_tool_ishome(){if (BLOG_URL . trim(Dispatcher::setPath(), '/') == BLOG_URL){ return true; } else { return FALSE;}}?> 2、判断方法示例 <?php if (blog_tool_ishome()) :?>加载的文件代码<?php endif; ?> 如果在首页不需要加载日志列表部分。则应用如下: <?php if (blog_tool_ishome()) :?> <?php include View::getView('index');?> <?php else:?> 加载日志列表部分 <?php endif;?>
2014年11月20日
9510 阅读
1 评论
Emlog教程
2014-11-19
实现分类、tag、作者标题像文章标题一样可在后台SEO设置里面控制
找到根目录文件include/controller/sort_controller.php,将其中的 $site_title = $sortName . ' - ' . $site_title; 替换成 switch ($log_title_style) { case '0':$site_title = $sortName;break; case '1':$site_title = $sortName . ' - ' . $blogname;break; case '2':$site_title = $sortName . ' - ' . $site_title;break; } 这样即可实现分类标题像文章标题一样可在后台 SEO设置里面控制。(PS更改之前请先备份,以免造成不必要的损失) 标签标题实现的方法,找到根目录文件include/controller/tag_controller.php,将其中的 $site_title = stripslashes($tag) . ' - ' . $site_title; 替换成 switch ($log_title_style) { case '0':$site_title = stripslashes($tag); break; case '1':$site_title = stripslashes($tag) . ' - ' . $blogname;break; case '2':$site_title = stripslashes($tag) . ' - ' . $site_title;break; } 作者标题实现的方法,找到根目录文件include/controller/author_controller.php,将其中的 $site_title = $author_name . ' - ' . $site_title; 替换成 switch ($log_title_style) { case '0':$site_title = $author_name; break; case '1':$site_title = $author_name . ' - ' . $blogname;break; case '2':$site_title = $author_name . ' - ' . $site_title;break; } emlog 5.3.1版本测试无bug,其他版本未做测试。
2014年11月19日
8266 阅读
4 评论
Emlog教程
2014-11-18
如何给Emlog博客文章外链自动添加nofollow属性
为了不影响自己的博客的权重,但是在文章中出现外部链接却没有自动添加,如果手动为外链添加外链跳转或访问这个网址就需要复制到浏览器中才能打开,这样的确有些不利于用户体验。 怎么办呢?那么,我们现在要做的就是在为 文章 的文章" target="_blank">文章中的外链添加”nofollow”属性.如果能够将博客为 文章 的文章" target="_blank">文章里的导出外链都加上nofollow标签,这样既能够阻止权重的流失,也能提升用户体验,何乐而不为! 手动在编辑链接时添加”Nofollow”属性; 为 Emlog 的为 文章 的文章" target="_blank">文章" target="_blank">Emlog为 文章 的文章" target="_blank">文章编辑器默认的超链接中没有nofollow选项,因此只能选择HTML编辑再加上nofollow标签,不仅费时费力,而且还会有遗漏。 很显然,这不是你想做的.但“如何给" target="_blank">Emlog博客文章外链自动添加nofollow属性”呢?因此如果能够通过修改Emlog源码实现自动给外链添加nofollow属性,那就轻松多了! 大家可以通过修改模板来实现Emlog文章自动加nofollow属性的代码 第一步.找到模版里module.php,在最后一行加入 <?php //内链nofollow+新窗口 function seo_replace($text) { return str_replace('<a href=', '<a rel="nofollow" target="_blank" href=', $text); } ?> 第二步.找到模板里echo_log.php,查找 :echo $log_content 修改成:echo seo_replace($log_content)
2014年11月18日
8592 阅读
2 评论
Emlog教程
2014-11-18
[Emlog教程]Gravatar头像被墙的解决方法
方法一:如何你不想改程序内核,建议你使用以下代码,直接将下面的代码复制到模板文件module.php中 <?php //blog-tool:获取Gravatar头像 function myGravatar($email, $s = 40, $d = 'mm', $g = 'g') { $hash = md5($email); $avatar = "http://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; return $avatar; }?> 将module.php中所有的getGravatar替换为myGravatar。 方法二:将多说的头像缓存到本地 将下面的代码复制到模板文件module.php中 <?php //Custom:获取模板目录名称 function get_template_name(){ $template_name = str_replace(BLOG_URL,"",TEMPLATE_URL); $template_name = str_replace("content/templates/","",$template_name); $template_name = str_replace("/","",$template_name); return $template_name; } ?> <?php //blog-tool:获取Gravatar头像并缓存到本地 function MyGravatar($email, $s=40, $d='monsterid', $r='g') { $f = md5($email); $a = TEMPLATE_URL.'avatar/'.$f.'.jpg'; $e = EMLOG_ROOT.'/content/templates/'.get_template_name().'/avatar/'.$f.'.jpg'; $t = 1296000; //15天,单位:秒 if (empty($d)) $d = BLOG_URL.'avatar/default.jpg'; if (!is_file($e) || (time() - filemtime($e)) > $t ) { //当头像不存在或者超过15天才更新 $g = sprintf("http://gravatar.duoshuo.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s=48&d='.$d.'&r='.$r; copy($g,$e); $a=$g; //新头像copy时, 取gravatar显示 } if (filesize($e) < 500) copy($d,$e); return $a; } ?> 在模板文件夹新建名为avatar的文件夹,将module.php中的getGravatar替换为MyGravatar。 修改完成后刷新两次网页,查看头像路径为本地路径即设置成功。 如gravatar网站恢复正常,不需使用上述功能时,删除上述代码,将MyGravatar或者DuoshuoGravatar替换为原来的getGravatar即可。 本教程由 冷猫 发布于em论坛,舍力测试5.3.1正常使用 修改位置在/include/lib/function.base.php,找到以下代码 /** * 获取Gravatar头像 * http://en.gravatar.com/site/implement/images/ * @param $email * @param $s size * @param $d default avatar * @param $g */ function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') { $hash = md5($email); $avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; return $avatar; } 其实有两种方法 1.把其中的红色字体修改为 多说的缓存 http://gravatar.duoshuo.com/avatar/$hash?s=$s&d=$d&r=$g 2.把其中的红色字体修改为 国内Gravatar头像 http://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g 亲测两种方法都是可行的,据说多说的缓存访问速度更快
2014年11月18日
10367 阅读
12 评论
Emlog教程
2014-11-13
不修改内核实现Emlog分页的上页、下页效果
本文章总结了很多种不同的关于emlog修改分页样式(分页函数)方法,下面我来给各位整理一下,有需要自行修改emlog分页样式的同学可参考参考。 不修改内核实现emlog分页的上页、下页效果 1、先在你使用的模板的module.php文件中增加自定义的分页函数,代码如下: <?php //blog:自定义分页函数 function my_page($count, $perlogs, $page, $url, $anchor = '') { $pnums = @ceil($count / $perlogs); $re = ''; $urlHome = preg_replace("|*page|", "", $url); if($page > 1) { $i = $page - 1; $re = ' <a href="'.$url.$i.'">上页</a> ' . $re; } if($page < $pnums) { $i = $page + 1; $re .= ' <a href="'.$url.$i.'">下页</a> '; } return $re; } ?> 2、在调用分页的地方(一般是log_list.php)文件加入下列代码: <?php $page_loglist = my_page($lognum, $index_lognum, $page, $pageurl); echo $page_loglist; ?> 3、若碎语页面也要调用修改过的分页样式,则在t.php文件中加入下列代码: <?php $page_t = my_page($twnum, Option::get('index_twnum'), $page, BLOG_URL.'t/?page='); echo $page_t; ?> 4、module.php评论列表函数调用时用以下代码替换掉原来的分页函数: <?php $page_comment = my_page($comnum, Option::get('comment_pnum'), $page, BLOG_URL.'guestbook/comment-page-'); echo $page_comment;?> 题外话(舍力博客专用代码):实现第二页直接跳转到当前页的默认页(此方法自用,只有在开启伪静态且博客安装在根目录方可实现): <?php //blog:自定义分页函数 function my_page($count, $perlogs, $page, $url, $anchor = '') { $pnums = @ceil($count / $perlogs); $re = ''; $urlHome = preg_replace("|*page|", "", $url); if($page == 2) {$re = ' <a href="../" class="prev"></a> ' . $re; } //第二页直接跳到首页 if($page > 2) { $i = $page - 1; $re = ' <a href="'.$url.$i.'" class="prev"></a> ' . $re; } if($page < $pnums) { $i = $page + 1; $re .= ' <a href="'.$url.$i.'" class="next"></a> '; } return $re; } ?>
2014年11月13日
9952 阅读
2 评论
Emlog教程
2014-11-12
Emlog教程:实现Tag汇总单独页面的方法
这个Tag汇总页面的方法并不难,先在你的根目录下新建一个PHP文件(比如就叫tags.php),然后把如下代码放到文件中就好了: <?php //tag汇总页面 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 = '标签 - '.$blogname; $site_key = '关键词'; $site_description = '描述'; include View::getView('header'); ?> <div id="tags"> <?php global $CACHE;$tag_cache = $CACHE->readCache('tags');?> <h2><a href="<?php echo $log_url; ?>"><?php echo $log_title; ?></a></h2> <?php foreach($tag_cache as $value): ?> <span style="font-size:<?php echo $value; ?>pt; line-height:30px;"><a href="<?php echo Url::tag($value); ?>" title="<?php echo $value; ?> 篇日志"><?php echo $value; ?></a></span><?php endforeach; ?> </div> </body> <style type="text/css"> #tags{max-width:1000px; margin:auto;} </style> </html> 这里必须给大家说清楚,如果你只是把这个代码贴上去可能并不一定能正常显示,还需要配置你的css,建议你也参考模板的css写上去,这样可能比较美观。 保存到PHP文件之后,你通过http://你的域名/tags.php就能访问了,演示地址:标签Tags
2014年11月12日
9519 阅读
0 评论
Emlog教程
2014-11-12
Emlog gid自动补全断号id的方法
Emlog文章连接使用gid自增号作为文章的ID,但是由于后台有删除文章的功能,一旦删除文章那么gid自增就会出现断号。 其实断号问题解决很方便,只要在添加文章的时候判断gid之前的有没有断号问题,有的话直接插入,没有的话自增。 我这里的解决方法是这样的,我把gid自增段顺序读取作为值写入数组,自增段是从1开始的,但是数组键值是0开始的,那么先把数组($gidarr='0')赋值掉,然后把$gidarr=gid,然后只要发现$gidarr键和键值不等就是断号了。 找到我们的addlog添加文章和页面函数。路径在include/model/log_model.php中的 /** * 添加文章、页面 * * @param array $logData * @return int */ function addlog($logData) { $kItem = array(); $dItem = array(); foreach ($logData as $key => $data) { $kItem = $key; $dItem = $data; } $field = implode(',', $kItem); $values = "'" . implode("','", $dItem) . "'"; $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)"); $logid = $this->db->insert_id(); return $logid; } 修改为: function addlog($logData) { $kItem = array(); $dItem = array(); foreach ($logData as $key => $data) { $kItem = $key; $dItem = $data; } $field = implode(',', $kItem); $values = "'" . implode("','", $dItem) . "'"; $gidarr='0'; $res = $this->db->query("SELECT gid From " . DB_PREFIX . "blog ORDER BY gid ASC"); while ($row = $this->db->fetch_array($res)) { $gidarr = $row; } foreach($gidarr as $key=>$val){ if($key!=$val){ $field = 'gid,'.$field; $values = "'".$key."',".$values; break; } } $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)"); $logid = $this->db->insert_id(); return $logid; } 通过改变是否需要插入语句添加gid和gid值,来自增或者插入。 假如你有多篇文章删除,添加一篇的话,只有从开始的断号,慢慢补全断号。 舍力提醒你,在更改文件时请先做好备份。
2014年11月12日
8333 阅读
1 评论
Emlog教程
2014-11-12
Emlog实现同分类下的相邻文章功能
Emlog本身自带的相邻文章功能的上一篇和下一篇是调用的全站相邻文章。有的时候我们可能希望上一篇和下一篇只调用本文相同分类的文章,这样的好处还是有的,比如访客在浏览“模板代码”分类,那么相邻文章最好也是显示模板文章,这样还是能够提升那么一点点用户体验的。 下面是舍力写的获取相同分类下上下相邻文章的方法: <?php //shuyong.net:同分类相邻文章 function nextLog($logid, $sortid, $flag, $pattern=0){ $Log_Model = new Log_Model();if($flag == 'prev'){$sql = " AND gid < $logid ORDER BY gid DESC";$word = '上一篇';} else{$sql = " AND gid > $logid ORDER BY gid ASC";$word = '下一篇';} $log = $Log_Model -> getLogsForHome(" AND sortid = $sortid "."$sql", 1, 1); if($log){foreach($log as $value):?> <?php echo $word;?>:<a href="<?php echo $value;?>" title="<?php echo $value;?>"><?php echo $value;?></a> <?php endforeach;}else{echo $word.':没有了'; } }?> 然后在echo_log.php相应位置放入 <?php nextLog($logid, $sortid, 'prev'); nextLog($logid, $sortid, 'next');?> 这样,我们就实现了调用同一分类下的相邻日志了!
2014年11月12日
9703 阅读
3 评论
Emlog教程
2014-11-10
Emlog侧边栏日志标题字数控制
网站使用Emlog,选好模板后,有些地方想按自己的想法修改一下,其中有一处就是想把侧边上的最新日志和随机日志控制字数,网上找了一下解决方法!做个记录,有需要的朋友可以借鉴一下: 在模板文件module.php(以默认模板为例,其他模板可能会有不能,可以直接找到最新、热门、随机日志进行修改)中找到下面代码: <li><a href="<?php echo Url::log($value); ?>"><?php echo $value; ?></a></li> 修改为如下代码: <li><a href="<?php echo Url::log($value); ?>" title="<?php echo $value; ?>"><?php echo subString(strip_tags($value),0,40); ?></a></li> 其中的40为显示的字符数,侧边栏的其他栏目字数控制方法同上。如有疑问请在本页留言反馈!其实用css控制高度也可以实现,这个很简单,方法就不说了。
2014年11月10日
8268 阅读
1 评论
Emlog教程
2014-11-5
给emlog5.3.1版本验证码添加点击刷新功能的方法
Emlog默认模板下验证码是没有点击刷新功能的,要刷新验证码的话还是得按F5刷新整个页面重新获得验证码,虽然emlog验证码看得比较清楚,但要通过重新刷新网页来获得新的验证码的方法对于网站负荷和用户体验来讲都并不合适,所以有必要给验证码添加点击刷新功能了。 若要给emlog验证码添加点击刷新功能,还是很简单的,因为emlog的验证码也是img形式存在的,所以和其它类似的验证码一样,为img标签添加onclick属性就行了。 Emlog有用到验证码的源代码有如下文件: Emlog碎语:/t/index.php Emlog评论:/include/controller/log_controller.php Emlog管理后台登录:include\lib\loginauth.php 将以上文件的验证码位置的img标签添加以下语句即可实现点击刷新验证码功能: style=\"cursor:pointer;\" alt=\"未显示?请点击刷新\" title=\"看不清楚?请点击刷新\" onclick=\"this.src=this.src+'?'\" 如Emlog评论:/include/controller/log_controller.php, 有以下验证码源码: <img src=\"".BLOG_URL."include/lib/checkcode.php\" align=\"absmiddle\" /><input name=\"imgcode\" type=\"text\" class=\"input\" size=\"5\" tabindex=\"5\" /> 改成如下代码即可添加上点击刷新验证码功能: <img src=\"".BLOG_URL."include/lib/checkcode.php\" align=\"absmiddle\" style=\"cursor:pointer;\" alt=\"未显示?请点击刷新\" title=\"看不清楚?请点击刷新\" onclick=\"this.src=this.src+'?'\" /><input name=\"imgcode\" type=\"text\" class=\"input\" size=\"5\" tabindex=\"5\" /> 其它几个页面中添加验证码刷新功能方法类似,此略,注:此方法在em5.3.1正常使用,其他版本未测试。 另一种不修改内核实现评论验证码刷新的方法,在模板文件module.php中找到<?php echo $verifyCode; ?>用下面代码替换即可 <?php if(Option::get('comment_code') == 'y'){?><img src="<?php echo BLOG_URL;?>include/lib/checkcode.php" align="absmiddle" style="cursor:pointer;" alt="未显示?请点击刷新" title="看不清楚?请点击刷新" onclick="this.src=this.src+'?'" /><input name="imgcode" type="text" class="input" size="5" tabindex="5" /><?php }?>
2014年11月5日
9528 阅读
3 评论
Emlog教程
2014-11-5
Emlog非插件实现文章添加相关文章的方法
Emlog非插件实现文章添加相关文章的方法 第一步:在模板文件module.php中加入以下代码 <?php //文章详情页下相关文章 function xg_logs($logData = array()){ if (is_file($configfile)) {require $configfile;}else{ $related_log_type = 'sort';//相关日志类型,sort为分类,tag为标签; $related_log_sort = 'views_desc';//排列方式,views_desc 为点击数(降序)comnum_desc 为评论数(降序) rand 为随机 views_asc 为点击数(升序)comnum_asc 为评论数(升序) $related_log_num = '10'; //显示文章数 $related_inrss = 'y'; //是否显示在rss订阅中,y为是,其它值为否 }global $value;$DB = MySql::getInstance();$CACHE = Cache::getInstance();extract($logData);if($value) {$logid = $value;$sortid = $value;global $abstract;} $sql = "SELECT gid,title FROM ".DB_PREFIX."blog WHERE hide='n' AND type='blog'"; if($related_log_type == 'tag'){$log_cache_tags = $CACHE->readCache('logtags');$Tag_Model = new Tag_Model();$related_log_id_str = '0';foreach($log_cache_tags as $key => $val){$related_log_id_str .= ','.$Tag_Model->getTagByName($val);} $sql .= " AND gid!=$logid AND gid IN ($related_log_id_str)";}else{ $sql .= " AND gid!=$logid AND sortid=$sortid";} switch ($related_log_sort){case 'views_desc':{ $sql .= " ORDER BY views DESC";break;}case 'views_asc':{ $sql .= " ORDER BY views ASC";break;}case 'comnum_desc':{ $sql .= " ORDER BY comnum DESC";break;}case 'comnum_asc':{ $sql .= " ORDER BY comnum ASC";break;}case 'rand':{ $sql .= " ORDER BY rand()";break;}} $sql .= " LIMIT 0,$related_log_num"; $related_logs = array();$query = $DB->query($sql);while($row = $DB->fetch_array($query)) {$row = intval($row);$row = htmlspecialchars($row);$related_logs = $row;} $out = '';if(!empty($related_logs)){foreach($related_logs as $val){ $out .= "<li><a href=\"".Url::log($val)."\" title=\"{$val}\">{$val}</a></li>"; }}if(!empty($value)){if($related_inrss == 'y'){$abstract .= $out;}}else{echo $out;}} ?> 第二步:在模板文件echo_log.php的适合位置放入<?php xg_logs($logData);?>,最后写上css格式就ok了
2014年11月5日
8353 阅读
1 评论
Emlog教程
9
10
11
12
13