首页
微语
统计
友链
留言
memos
圈子
图床
推荐
相册
网站监控
VPS监控
Search
1
实现typecho微信时光机功能的图文教程
43,064 阅读
2
为Typecho添加webp解析
42,877 阅读
3
emlog数据成功迁移到typecho
25,694 阅读
4
Memos备忘录,记录瞬间想法
23,712 阅读
5
Jasmine - 简约、美观的博客主题
22,683 阅读
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
排行榜    
登录
/
注册
Search
标签搜索
wordpress
发布
插件
免费
教程
typecho
EMlog
PHP
代码
CSS
华为
图片
代码修改
安装
评论
手机
诺基亚
微信
文章
智能
Chen'mo
累计撰写
1,265
篇文章
累计收到
374
条评论
首页
栏目
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
页面
微语
统计
友链
留言
memos
推荐
相册
网站监控
VPS监控
搜索到
18
篇与
的结果
2021-01-22
EMLOG调用正文中图片(多图模式)的方法
代码说明(为修改代码的情况下,可根据自己的情况修改):使用本代码将实现当正文少于4张图片时候只调用一张图片;当少于8张图片时,调出4张;当大于8张图片时,调出8张图片代码效果:代码详情:<?php if(preg_match_all("/<img.*src=[\"'](.*)[\"']/Ui", $value['content'], $imgs) && !empty($imgs[1])){ $imgNum = count($imgs[1]); if($imgNum < 4) $n = 1; elseif($imgNum < 8) $n = 4; else $n = 8; for($i=0; $i < $n; $i++){ $img = $imgs[1][$i];echo "<img src='$img'>";} }else{ echo "<img src='图片地址'>";}//没有图片时显示 ?>下面代码自用,增加判断当只有一张图片时用不同css表达<?php if(preg_match_all("/<img.*src=[\"'](.*)[\"']/Ui", $value['content'], $imgs) && !empty($imgs[1])){ $imgNum = count($imgs[1]); if($imgNum < 5) $n = 1; elseif($imgNum < 10) $n = 5; else $n = 10; for($i=0; $i < $n; $i++){ if($n == 1){$img = $imgs[1][$i];echo "<p><img src='$img'></p>";} elseif($n > 1){$img = $imgs[1][$i];echo "<ul><li><img src='$img'><li></ul>";} } }else{ echo '<p><img src="图片地址" ></p>';}//没有图片时显示,为空则不显示 ?>代码说明:把上面代码直接放入log_list.php中你想要放入的位置即可,当然你也可以放入你的首页。
2021年01月22日
12,954 阅读
0 评论
0 点赞
2021-01-17
emlog文章列表获取附件(图片)数量方法
本方法实际获取的是文章附件的数量,而非只是图片的数量,如果你的文章含有文件附件,列表也会显示成图片数量。所以此方法最适合于文章图片特别多而且没有附件的博客。有强迫症必须显示图片实际数量的,请绕道。 emlog文章列表获取附件(图片)数量,方法过于简单,修改博客emlog模板文件步骤如下:1、在module.php文件里面加入以下代码:<?php //图片数量 function pic_num($attnum){ if ($attnum > 0) { echo '<span class="attnum" title="此文有 '.$attnum.' 张图片">',$attnum,'</span>'; } }?>2、在log_list.php文件里面进行以下操作:`找到 <?php echo $value['log_title']; ?> ,在其后 加上 <?php pic_num($value['attnum']); ?> 即可。`3、添加css样式到你的样式文件`.attnum{background: url(images/img.gif) no-repeat 5px center;padding-left: 20px} //图片可替换自己的图片,字体大小自己调节`
2021年01月17日
14,695 阅读
0 评论
0 点赞
2021-01-17
实现emlog网站信息统计的代码
有时候想在网页中向访客展示emlog博客的文章数量、评论数量、运行时间等信息,但emlog后台侧边栏没有提供相关的模块,因此需要博主自主添加博客统计信息代码。下面是博客吧整理的emlog网站信息统计代码,已在emlog 5.3.x上测试可用。 调用代码: 方法一:官方缓存类统计代码。优点:加载速度快;缺点:可能信息更新不及时。把以下代码添加到当前使用的主题模板文件中,如side.php文件:<?php $sta_cache = Cache::getInstance()->readCache('sta'); /*必须添加*/ ?> <ul> <li>文章总数:<?php echo $sta_cache['lognum']; ?> 篇</li> <li>评论总数:<?php echo $sta_cache['comnum_all']; ?> 条</li> <li>闲言碎语:<?php echo $sta_cache['twnum']; ?>条</li> <li>网站运行:<?php echo floor((time()-strtotime(20160423))/86400); ?> 天</li> </ul>附:$sta_cache[‘参数’]中的参数可选如下:lognum游客可见日志总数draftnum草稿,也就是隐藏文件数量comnum未隐藏的评论数量comnum_all所有评论数量hidecomnum被隐藏的评论数量twnum微语数量checknum未审核的文章数量方法二:自编函数,通过SQL语句查询相关数据。缺点:加载速度较缓存类慢;优点:实时显示把下面的代码添加到主题的module.php文件中:<?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; }; ?> 调用代码:<ul> <li>文章总数:<?php echo count_log_all();?></li> <li>置顶文章:<?php echo count_log_top();?></li> <li>隐藏文章:<?php echo count_log_hide();?></li> <li>待审文章:<?php echo count_log_check();?></li> <li>加密文章:<?php echo count_log_pass();?></li> <li>页面总数:<?php echo count_page_all();?></li> <li>评论总数:<?php echo count_com_all();?></li> <li>友链总数:<?php echo count_link_all();?></li> <li>微语评论:<?php echo count_treply_all();?></li> <li>分类总数:<?php echo count_sort_all();?></li> <li>子分类数:<?php echo count_sort_mod();?></li> <li>标签总数:<?php echo count_tag_all();?></li> <li>微语总数:<?php echo count_tw_all();?></li> <li>用户总数:<?php echo count_user_all();?></li> <li>管理员数:<?php echo count_user_admin();?></li> <li>作者总数:<?php echo count_user_writer();?></li> <li>附件总数:<?php echo count_att_all();?></li> <li>最后更新:<?php echo last_post_log();?></li> </ul>来自:https://pjax.cn/em_tongji.html
2021年01月17日
5,787 阅读
0 评论
0 点赞
2021-01-16
Emlog日期格式化代码
很多时候常规的时间日期格式已经看腻了,是时候来点别的了。比如说发布几秒钟/几分钟/几小时,那么就喜欢处理下我们的时间戳了。不多说废话,直接上代码,把下面代码放到主题的module.php文件中<?php //日期格式化 function ea_timeago($ptime) { $ptime = strtotime($ptime); $etime = time() - $ptime; if ($etime < 1) return '刚刚'; $interval = array ( 12 * 30 * 24 * 60 * 60 => date('Y-m-d', $ptime), 30 * 24 * 60 * 60 => date('m-d', $ptime), 7 * 24 * 60 * 60 => date('m-d', $ptime), 24 * 60 * 60 => '天前', 60 * 60 => '小时前', 60 => '分钟前', 1 => '秒前' ); foreach ($interval as $secs => $str) { if ($etime < 7 * 24 * 60 * 60){ $d = $etime / $secs; if ($d >= 1) { $r = round($d); return $r . $str; } } else { return $str; } }; }?>在 list_log.php 列表页调用<?php echo ea_timeago(timeago(gmdate('Y-m-d', $value['date']))); ?>在 echo_log.php 文章阅读页调用<?php echo ea_timeago(gmdate('Y-n-j', $date)); ?>
2021年01月16日
3,605 阅读
0 评论
0 点赞
2015-05-22
EMlog 5.3.1 For 新浪SAE
新浪SAE在2015年4月29日宣布正式进入全民免费时代,这让所有的人都可以开始使用SAE了,修改整理了下目前网上搜到的资料,分享给需要的朋友们。 EMlog 5.3.1 for SAE 移植版 EMlog 5.3.1 for SAE 基于 EMlog 官方 5.3.1 版本修改,只适合 SAE 平台使用。 使用 SAE 自有的 KVDB 技术,缓存速度更快,占用豆豆资源更低; 使用 Storage 存储文件,解决了 SAE 本地不能读写的问题; 添加和修改常用插件以适合 Emlog SAE 版本。 由于 SAE 不支持本地代码写入,所以无法在线编辑主题,在线安装主题、插件,建议通过 SVN 修改上传。 优化说明: 1、手机访问时自动识别并跳转到手机版本对应文章页面 2、附带了笑忘书的手机模板,同时保留原版的手机模板 3、增加 SAE 伪静态支持,需在后台修改文章链接设置 4、支持 Windows Live Writer 离线写作 5、为笑忘书手机模板增加保存草稿功能 插件支持: 1、添加 SAE 二级域名插件,对绑定未备案域名的博客,将 Emlog 中的静态资源使用原 SAE 二级域名访问,提升速度,节省云豆 2、修改 sitemap 插件以支持 SAE 3、添加安全防护插件 4、添加 Ping 服务插件 5、修改反垃圾评论插件以支持 SAE 7、添加图片本地化插件 8、修改 SendMail 插件以支持SAE,美化发送邮件格式,区分发信邮箱和发信账号,方便使用邮件服务商(如:SendGrid 等)提供的发信账号 9、添加自动摘要插件 10、添加 HighSlide 插件 11、添加修改的支持 SAE 平台的图片加水印插件 12、添加时间轴文章归档插件,修改支持展开全部/折叠全部 13、修改 EM 相册插件以支持 SAE 14、添加 JiaThis 分享插件 演示网站: 桔子92:http://www.huangju.tk 代码地址: GitCafe:https://gitcafe.com/xhhjin/EmlogForSAE 百度云:http://pan.baidu.com/s/1kTglibt (2015-05-09) 更多内容在这里:http://xuhehuan.com/2037.html
2015年05月22日
3,383 阅读
0 评论
0 点赞
2014-10-22
Emlog修改模版一些常用代码
Emlog随机查看文章<?php //随便看看 function sbkk_logs() { $db = MySql::getInstance(); $sql = "SELECT gid FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' ORDER BY rand() LIMIT 0,1"; $sbkk_logs_list = $db->query($sql); while($row = $db->fetch_array($sbkk_logs_list)){ echo Url::log($row['gid']); } } ?> 调用方式: <a href="<?php sbkk_logs();?>">随便看看</a> Emlog按天数时间调用随机热门文章列表<?php //30天按点击率排行文章 function getdatelogs($log_num) { $a=""; $b=1; $c=""; $d=1; $db = MySql::getInstance(); $time = time(); $sql = "SELECT gid,title,views,comnum FROM ".DB_PREFIX."blog WHERE type='blog' AND date > $time - 30*24*60*60 ORDER BY `views` DESC LIMIT 0,$log_num"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ ?> <li><p class="text-muted"><span class="post-comments">评论 (<?php echo $row['comnum']; ?>)</span><a class="post-like"> ℃ (<span><?php echo $row['views']; ?></span>)</a></p><span class="label label-<?php echo $c+$d++;?>"><?php echo $a+$b++;?></span><a href="<?php echo Url::log($row['gid']); ?>" title="<?php echo $row['title']; ?>"><?php echo $row['title']; ?></a></li> <?php } ?> <?php } ?> 调用方式: <?php getdatelogs('5');?>“5”是显示数量,30*24*60*60为30天,如要改成7天只需要把30改为7即可,一年就改成365即可。Emlog实现最新文章标题加摘要显示代码<?php //首页置顶头条 function getZhidingLogs() { $db = MySql::getInstance(); $sql = "SELECT gid,title,content,date FROM ".DB_PREFIX."blog WHERE type='blog' and top='y' ORDER BY `top` DESC ,`date` DESC LIMIT 0,1"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ //$row['content'] = htmlspecialchars($row['content']); $row['content'] = strip_tags($row['content']);?> <h1><a href="<?php echo Url::log($row['gid']); ?>" title="<?php echo $row['title']; ?>" target="_blank"><?php echo $row['title']; ?></a></h1> <span class="note"><?php echo mb_substr($row['content'],0,85,'utf-8'); ?>...</span><a href="<?php echo Url::log($row['gid']); ?>" class="font2_2" target="_blank">阅读全文>></a> <?php } ?> <?php } ?> 在需要的地方使用<?php getZhidingLogs();?>调用,输出摘要文字字数请自行修改<?php echo mb_substr($row['content'],0,85,'utf-8');?>这段代码中,中间的85为字数,自己根据需要调整。Emlog两串美化代码判断时间<?php $t=time() - 3*24*60*60; $log_t=gmdate('Y-m-d',$$value['date']); $diy_t=date("Y-m-d",$t); if($log_t > $diy_t) echo '<img src="new.png" alt="newico" />'; ?>判断浏览量<?php if ($value['views'] >= 100) echo '<img src="hot.png" alt="hotico" />'; ?> Emlog狂欢一下特效这个不好讲,请直接访问http://lanyes.org/zuopin/615.html查看吧Emlog所有标签列表代码<?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 = '所有标签列表 - '.Option::get('blogname'); $site_key = '博客标签列表'; $site_description = '博客所有标签列表页面'; include View::getView('header'); ?> <div style="background:#fff;padding:10px;display: table;height:100%"> <div style="font-size:16px;padding-bottom:5px;margin-bottom:10px;color:#0C3;border-bottom:1px solid #00aff0"> 现在位置:<a title="返回首页" href="<?php echo BLOG_URL; ?>">首页</a> ? 所有标签列表 </div> <ul> <?php global $CACHE; $tag_cache = $CACHE->readCache('tags'); ?> <?php foreach($tag_cache as $value): ?> <li style="white-space:nowrap;margin:0 10px 10px 0;float:left"> <span style="font-size:<?php echo $value['fontsize']; ?>pt; line-height:30px;border: 1px dashed #CCC;padding: 5px;border-radius: 10px;display: block;"> <a style="color:#<?php echo dechex(rand(0,16777215));?>" href="<?php echo Url::tag($value['tagurl']); ?>" title="<?php echo $value['usenum']; ?> 篇日志"> <?php echo $value['tagname']; ?>(<?php echo $value['usenum']; ?>) </a> </span> </li> <?php endforeach; ?> </ul> </div> <div style="clear:both"></div> <?php include View::getView('footer');?> 使用方式:在您网站的根目录下创建一个tag.php文件,然后访问即可,“tag”可以更好为您要的名字,这个随意EMLOG调用指定多个分类文章列表代码<?php function Get_newlogs($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 } ?> 调用方式: <?php Get_newlogs(5);?>代码中的5表示需要输出的文章列表条数。 Emlog自动获取网站Favicon图标代码并自动保存<?php //获取友链favicon站标 function favicon_file($site_url){ $site_url = strtolower(rtrim($site_url,'/')); $site_md5 = md5($site_url); $fav_url = TEMPLATE_URL.'favicon/'; $fav_path = TEMPLATE_PATH.'favicon/'; $t = 2592000; //30天,单位:秒 if(!is_file($fav_path.$site_md5.'.png') || (time() - filemtime($fav_path.$site_md5.'.png')) > $t) { copy('http://www.google.com/s2/favicons?domain='.str_replace('http://','',$site_url),$fav_path.$site_md5.'.png'); } return $fav_url.$site_md5.'.png'; }?> 调用方式: <?php echo favicon_file($value['url']); ?>Emlog评论实现IP显示<?php function convertip($ip){ $dat_path = EMLOG_ROOT . '/content/templates/xiu/ip.dat'; //*数据库路径*// if (!($fd = @fopen($dat_path, 'rb'))) { return 'IP数据库文件不存在或者禁止访问或者已经被删除!'; } $ip = explode('.', $ip); $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3]; $DataBegin = fread($fd, 4); $DataEnd = fread($fd, 4); $ipbegin = implode('', unpack('L', $DataBegin)); if ($ipbegin < 0) { $ipbegin += pow(2, 32); }$ipend = implode('', unpack('L', $DataEnd)); if ($ipend < 0) { $ipend += pow(2, 32); } $ipAllNum = ($ipend - $ipbegin) / 7 + 1; $BeginNum = 0; $EndNum = $ipAllNum; while ($ip1num > $ipNum || $ip2num < $ipNum) { $Middle = intval(($EndNum + $BeginNum) / 2); fseek($fd, $ipbegin + 7 * $Middle); $ipData1 = fread($fd, 4); if (strlen($ipData1) < 4) { fclose($fd); return '系统出错!'; } $ip1num = implode('', unpack('L', $ipData1)); if ($ip1num < 0) { $ip1num += pow(2, 32); } if ($ip1num > $ipNum) { $EndNum = $Middle; continue; } $DataSeek = fread($fd, 3); if (strlen($DataSeek) < 3) { fclose($fd); return '系统出错!'; } $DataSeek = implode('', unpack('L', $DataSeek . chr(0))); fseek($fd, $DataSeek); $ipData2 = fread($fd, 4); if (strlen($ipData2) < 4) { fclose($fd); return '系统出错!'; } $ip2num = implode('', unpack('L', $ipData2)); if ($ip2num < 0) { $ip2num += pow(2, 32); } if ($ip2num < $ipNum) { if ($Middle == $BeginNum) { fclose($fd); return '未知'; } $BeginNum = $Middle; } } $ipFlag = fread($fd, 1); if ($ipFlag == chr(1)) { $ipSeek = fread($fd, 3); if (strlen($ipSeek) < 3) { fclose($fd); return '系统出错!'; } $ipSeek = implode('', unpack('L', $ipSeek . chr(0))); fseek($fd, $ipSeek); $ipFlag = fread($fd, 1); } if ($ipFlag == chr(2)) { $AddrSeek = fread($fd, 3); if (strlen($AddrSeek) < 3) { fclose($fd); return '系统出错!'; } $ipFlag = fread($fd, 1); if ($ipFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if (strlen($AddrSeek2) < 3) { fclose($fd); return '系统出错!'; } $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while (($char = fread($fd, 1)) != chr(0)) { $ipAddr2 .= $char; } $AddrSeek = implode('', unpack('L', $AddrSeek . chr(0))); fseek($fd, $AddrSeek); while (($char = fread($fd, 1)) != chr(0)) { $ipAddr1 .= $char; } } else { fseek($fd, -1, SEEK_CUR); while (($char = fread($fd, 1)) != chr(0)) { $ipAddr1 .= $char; } $ipFlag = fread($fd, 1); if ($ipFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if (strlen($AddrSeek2) < 3) { fclose($fd); return '系统出错!'; } $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while (($char = fread($fd, 1)) != chr(0)) { $ipAddr2 .= $char; } } fclose($fd); if (preg_match('/http/i', $ipAddr2)) { $ipAddr2 = ''; } $ipaddr = "{$ipAddr1} {$ipAddr2}"; $ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr); $ipaddr = preg_replace('/^s*/is', '', $ipaddr); $ipaddr = preg_replace('/s*$/is', '', $ipaddr); if (preg_match('/http/i', $ipaddr) || $ipaddr == '') { $ipaddr = '未知'; } $ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr); if ($ipaddr != ' ') { return $ipaddr; } else { $ipaddr = '评论者来自火星,无法或者其所在地!'; } return $ipaddr; } ?> 调用方式: <?php echo convertip($comment['ip']); ?>,ip.dat自己从纯真官网下载好了 Emlog评论显示系统浏览器及用户操作系统请使用http://www.emlog.net/plugin/164插件1、下载插件并解压;2、上传至emlog插件根目录并后台激活此插件;3、打开你所用模板中的module.php,找到评论列表模块和子评论列表模块,在foreach和endforeach之间的合适位置插入一段显示浏览器和操作系统的代码。以官方模板为例:找到评论列表模块和子评论列表模块的<?php echo $comment['poster']; ?>,在这之后1.0~1.1版添加:<?php if(function_exists('display_useragent')){display_useragent($comment['cid']);} ?>1.2版以后添加:<?php if(function_exists('display_useragent')){display_useragent($comment['cid'],$comment['mail']);} ?>Emlog获取制定分类文章及数量<?php //调用主分类和子分类文章 function lonewolf_getlogs($sortid,$log_num) { $db = MySql::getInstance(); $sql = "SELECT gid,title,date FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid in (".lonewolf_getsortids($sortid).") ORDER BY `date` DESC LIMIT 0,$log_num"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ ?> <li><span><?php $log_t=gmdate('Y-m-d',$row['date']);echo $log_t;?></span><i>+</i><a title="<?php echo $row['title'];?>" href="<?php echo Url::log($row['gid']);?>"><?php echo $row['title'];?></a></li> <?php } } ?> 调用方式: <?php lonewolf_getlogs(1,16);?>“1”为分类ID,“16”为显示数量 Emlog日志列表文字显示限制<?php $logdes = blog_tool_purecontent($value['content'], 178);?> 调用方式: <?php echo $logdes; ?>,178就是显示数量 Emlog首页置顶代码<?php //首页置顶日志 function Home_Top_Logs() { $db = MySql::getInstance(); $sql = "SELECT gid,title,content,date FROM ".DB_PREFIX."blog WHERE type='blog' and top='y' ORDER BY `top` DESC ,`date` DESC LIMIT 0,12"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ ?> <li><img src="<?php get_thum($row['gid']);?>" width="220" height="125" alt="<?php echo $row['title'];?>" /><div class="logtitle"><?php echo $row['title'];?></div><div class="logtouming"></div><div class="logbackground"><a href="<?php echo Url::log($row['gid']);?>"></a></div><div class="hot"></div></li> <?php } ?> <?php } ?> 调用方式: <?php Home_Top_Logs();?>Emlog判断分类输出子分类ID号<?php //判断分类输出子分类ID号 function getsortids($sortid){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); $sort = $sort_cache[$sortid]; if ($sort['pid'] != 0 || empty($sort['children'])) { $fenlei_ids = $sortid; } else { $sortids = array_merge(array($sortid), $sort['children']); $fenlei_ids = implode(',', $sortids); } return $fenlei_ids; }?> Emlog分类置顶代码<?php //分类置顶日志 function Sort_Top_Logs($sortid) { $db = MySql::getInstance(); $sql = "SELECT gid,title,content,date,sortid FROM ".DB_PREFIX."blog WHERE type='blog' and sortop='y' and sortid in (".getsortids($sortid).") ORDER BY `sortop` DESC ,`date` DESC LIMIT 0,4"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ ?> <li><img src="<?php get_thum($row['gid']);?>" width="220" height="125" alt="<?php echo $row['title'];?>" /><div class="logtitle"><?php echo $row['title'];?></div><div class="logtouming"></div><div class="logbackground"><a href="<?php echo Url::log($row['gid']);?>"></a></div><div class="hot"></div></li> <?php } ?> <?php } ?> 调用方式: <?php Sort_Top_Logs($sortid);?> Emlog获取文章缩略图<?php //获取文章缩略图 function get_thum($logid){ $db = MySql::getInstance(); $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg'; if (is_file($thum_pic)) { $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg'; }else{ $sqlimg = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$logid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1"; $img = $db->query($sqlimg); while($roww = $db->fetch_array($img)){ $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath'])); } if (empty($thum_url)) { srand((double)microtime()*1000000); $randval = rand(0,8); $thum_url = BLOG_URL.'content/templates/xiu/images/rand/'.$randval.'.jpg'; } } echo $thum_url; } ?> Emlog调用网站统计代码日志总数:<?php echo $sta_cache['lognum'];?>评论总数:<?php echo $sta_cache['comnum_all'];?>碎语总数:<?php echo $sta_cache['twnum'];?>运行时间:<?php echo floor((time()-strtotime("2014-01-30"))/86400); ?>2014-01-30替换为您博客开始时间选择在侧边栏显示站点统计,把以上代码添加到模板文件(side.php)对应位置可以了。也可使用小劣开发的EMLOG统计插件(飞机票:http://www.emlog.net/plugin/172)Emlog日志列表显示图片(文章有图则显示文章图)<?php if(pic_thumb($value['content'])){ $imgsrc = pic_thumb($value['content']); }else $imgsrc = TEMPLATE_URL.'images/'.rand(1,40).'.jpg'; ?> 调用方式: <?php echo $imgsrc; ?> Emlog评论头像显示图片<?php $heads=array("img/logcmt/01.jpg"=>"01","img/logcmt/02.jpg"=>"02","img/logcmt/03.jpg"=>"03","img/logcmt/04.jpg"=>"04","img/logcmt/05.jpg"=>"05","img/logcmt/06.jpg"=>"06","img/logcmt/07.jpg"=>"07","img/logcmt/08.jpg"=>"08","img/logcmt/09.jpg"=>"09","img/logcmt/10.jpg"=>"10","img/logcmt/11.jpg"=>"11","img/logcmt/12.jpg"=>"12","img/logcmt/13.jpg"=>"13","img/logcmt/14.jpg"=>"14"); ?> <?php if(empty($comment['mail'])){ echo TEMPLATE_URL;echo array_rand($heads);}else{echo getGravatar($comment['mail']);} ?> Emlog头像缓存<?php function get_avatar($mail,$alt,$size = '60',$default='wavatar'){ $alt = strip_tags($alt); $email_md5=md5(strtolower($mail));//通过MD5加密邮箱 $cache_path=TEMPLATE_PATH."cache"; //缓存文件夹路径,需要换上你的主题目录名称 if(!file_exists($cache_path)) { mkdir($cache_path,0700); } $avatar_url=TEMPLATE_URL."cache/".$email_md5.'.jpg'; //头像相对路径 $avatar_abs_url=$cache_path."/".$email_md5.'.jpg'; //头像绝对路径 $cache_time=24*3600*7; //缓存时间为7天 if (empty($default)) $default = $cache_path. '/default.png'; if(!file_exists($avatar_abs_url) || (time()-filemtime($avatar_abs_url)) > $cache_time)//过期或图片不存在 { $new_avatar = getGravatar($mail,$size,$default); copy($new_avatar,$avatar_abs_url); } return "<img title='{$alt}' alt='{$alt}' src='{$avatar_url}' height='{$size}' width='{$size}' />"; } ?> 调用方式: <?php get_avatar($comment['mail'],"{$comment['poster']}{$comment['comment_nums']}");?> Emlog文章页路径获取分类<?php //文章页路径获取分类 function sortbread($sortid){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> <?php if (isset($sort_cache[$sortid])): ?> <?php if (isset($sort_cache[$sort_cache[$sortid]['pid']])): ?> <a href="<?php echo Url::sort($sort_cache[$sortid]['pid']); ?>"><?php echo $sort_cache[$sort_cache[$sortid]['pid']]['sortname']; ?></a> » <?php endif; ?> <a href="<?php echo Url::sort($sortid); ?>"><?php echo $sort_cache[$sortid]['sortname'];?></a> » <?php endif;?> <?php }?> 调用方式: <?php sortbread($sortid); ?> Emlog标签作为页面关键词<?php //标签作为页面关键词 function page_tag_key($blogid){ global $CACHE; $log_cache_tags = $CACHE->readCache('logtags'); if (!empty($log_cache_tags[$blogid])){ $tag = ''; foreach ($log_cache_tags[$blogid] as $value){ $tag .= $value['tagname'].','; } echo $tag; } }?>留着以后备用,先收着,来源xlonewolf.net
2014年10月22日
5,304 阅读
0 评论
0 点赞
2013-10-15
Emlog插件 – 七牛镜像储存
本文作测试用,关于七牛及方法请看:http://cuelog.com/archives/202.html 我把插件也上传一份作备份。emlogqiniu.zip图片测试:
2013年10月15日
5,660 阅读
0 评论
0 点赞
2013-09-19
EMlog静态化插件免费下载
这次EMlog论坛中秋活动给力,把这个静态化插件免费了。对于一直喜爱HTML的我,立马测试了一翻。我都差点想去换zblog的php版了,可是发现它也忽视真正生成静态的功能了。所以还是把这个EMLOG好好弄下,还要发布个模版,在做一个自己用。好插件当然收藏先,百度下载地址:http://pan.baidu.com/share/link?shareid=1258721631&uk=1261552365&third=15 em_static.zip官方下载地址:http://www.emlog.net/plugin/134
2013年09月19日
4,966 阅读
0 评论
0 点赞
2013-09-18
黑色质感 gallery for emlog 正式发布
模版几天前已经重新做好了,一直没发布就是等着备案下来。今天备案下来了,域名可以访问了,故将此gallery模版发布以便分享。 如果有什么问题,欢迎留言提问! 我在emlog5.1.2中测试没发现什么问题,FF,Chrome IE8 9中没见明显错位现象。 首页图: ![请输入图片描述][1] 文章: 相册页: 碎语: 模版下载: gallery.zip 欢迎留言交流。
2013年09月18日
4,860 阅读
6 评论
0 点赞
2013-08-28
EMLOG调用指定多个分类文章列表代码
对于SQL命令不是很熟悉,昨日想用EMLOG做一个文章类表调用,需要用到SQL命令代码,调用指定多个分类EMLOG文章列表,研究了好些时间没整明白,求人也不是个事,只好自己继续边看教程边测试,功夫不负有心人,最终给我整明白了,用这个SQL命令可以正确调用指定多个分类的EMLOG文章列表,蓝叶分享给有需要的站长们,把以下代码复制到模板的脚本文件中,设置好需要调用的分类ID号,在前台模板里写入调用代码就可以实现你想要的效果了。<?php function Get_newlogs($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 Get_newlogs(5);?>代码,代码中的5表示需要输出的文章列表条数。
2013年08月28日
6,222 阅读
0 评论
0 点赞
2013-07-31
BAE版EMLOG的伪静态设置
BAE上设置伪静态很简单导航栏“管理中心” -> 左侧“应用管理” -> 左侧“全部” -> 右侧点击自己的应用左侧“云环境” -> 右侧版本列表最右端“高级” -> 鼠标移上去 -> 配置右侧添加1.规则类型:URL2.规则:/blog/post-.*.html3.执行:/blog/index.phpPs:因为我的博客放在blog目录下,所以加 blog/ 如果在根目录则不用加,为:/post-.*.html 第三条同理依次添加所有规则即可,只更换第二条“规则”,例如 /blog/sort/等,第三条不变添加完成后,请点击保存! ★ 转载请注明出处,本文地址:http://fengyu.name/?cat=coding&id=34
2013年07月31日
4,294 阅读
0 评论
0 点赞
2013-03-27
Akismet反垃圾评论插件 for Emlog
从昨天晚上到现在,一个IP为208.53.158.59,(来源美国)。老是在我博客上发垃圾留言,现在安装这个wordpress上超强的垃圾评论插件,试试效果看看。下载地址:http://www.emlog.net/plugin/8
2013年03月27日
3,837 阅读
0 评论
0 点赞
2013-03-20
EMLOG调用最新文章代码
首先声明,本代码是网友“秦时明月”写的,拿来同大家分享下,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:置顶文章数量不要大于这个最新文章显示数量
2013年03月20日
5,988 阅读
0 评论
0 点赞
2013-03-20
emlog添加楼层显示功能
方法一:首先在module.php中找到:<?php //blog:博客评论列表 function blog_comments($comments){作如下更改:<?php //blog:博客评论列表 function blog_comments($comments,$params){然后在“$isGravatar = Option::get('isgravatar');”后添加:$comnum = count($comments); foreach($comments as $value){ if($value['pid'] != 0){ $comnum--; } } $page = isset($params[5])?intval($params[5]):1; $i= $comnum - ($page - 1)*Option::get('comment_pnum');然后在你想要显示楼层的地方写:<?php echo $i; ?>L最后别忘了在把:<?php endforeach; ?>更改为:<?php $i--;endforeach; ?>此时还没有完,因为这样为函数blog_comments()添加了一个参数$params,所以在echo_log.php和page.php文件中调用评论的函数都要相应的做一更改。更改为“<?php blog_comments($comments,$params); ?>”方法二:1。先在module.php的评论列表<div class="comment-info">……</div>里添加以下HTML代码(用于显示楼层号):<span id="comm_id"></span>。CSS样式自己编写。2。然后把子评论中<div class="comment comment-children">改为<div class="comment-children">。如果不改则会将所有的评论(包括子评论)都加上楼层号的。3。将以下代码添加到加载的JS里面。如下:JavaScript代码:var len=$(".comment").length;for(var i=0;i<len;i++){$(".comment").eq(i).find("#comm_id").append((i+1)+"#")}; 解释一下就是:先查询评论的个数,然后循环给每个评论添加楼层号……
2013年03月20日
5,791 阅读
0 评论
0 点赞
2013-03-20
Emlog不修改内核文件实现翻页效果
Emlog 默认的分页函数没有上、下页翻页效果,只是在日志页面有一个上、下篇的函数,如果想自己在页码当中增加翻页效果,就 得对系统的基本函数库文件进行修改。具体的方法很多技术控比如动点创想的胡杨等有专门的文章介绍,这里就不啰嗦了。这里所要讲的,是另外一种方法,就是不用修改系统内核文件,而是直接在自己使用的模板中创建一个有翻页功能的自定义函数,然后在需要使用的地方引用就行了。 下面讲具体的操作步骤。首先要在模板中的 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."\">pre</a> " . $re; } if($page < $pnums) { $i = $page + 1; $re .= " <a href=\"".$url.$i."\">next</a> "; } return $re; } ?>然后在 log_list.php 中要使用本函数的地方加入以下代码:<?php $page_loglist = my_page($lognum, $index_lognum, $page, $pageurl); echo $page_loglist; ?>若在碎语页中也要使用本函数,则在 t.php 中的相应位置加入以下代码:<?php $page_t = my_page($twnum, Option::get('index_twnum'), $page, BLOG_URL.'t/?page='); echo $page_t; ?> PS:这些代码是从互联网上收集来的,如果你对这些东西感兴趣可以自己DIY一下,看看效果如何。本方法的优势就是不会伤害系统内核,好吧,就说到这里。
2013年03月20日
5,675 阅读
0 评论
0 点赞
2013-02-25
Emlog全部调用所有的标签页面源码
类似于zblog的tag 所有的标签都集中到一个页面。<?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; $blogtitle = '标签 - '.$blogname; include View::getView('header'); ?> <div id="infooter"> <?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['fontsize']; ?>pt; line-height:30px;"> <a href="<?php echo Url::tag($value['tagurl']); ?>" title="<?php echo $value['usenum']; ?> 篇日志"><?php echo $value['tagname']; ?></a></span> <?php endforeach; ?> <div style="clear:both;"></div> <!--end content--> </div> <?php include View::getView('footer'); ?> </body> </html>可以直接另存以tags.php文件,后上传于你网站的根目录,直接访问即可。这样就不必每次都去选现成的标签了!来源http://myenvp.com/post-425.html及下载:tags.rar
2013年02月25日
4,994 阅读
0 评论
0 点赞
2013-02-09
给Emlog增加模板预览功能
1、第一步(可跳过):用编辑器打开init.php,修改第10行代码。 setrawcookie("theme",$_GET['theme'],time()+20); //模板预览有效时间设置:+20表示持续20秒,20秒过后自动恢复为下面第17行设置的默认模板。 //例:设置为60秒钟 setrawcookie("theme",$_GET['theme'],time()+60); 2、第二步(必须):继续在init.php内修改第17行代码。 $theme="default"; //将default替换为你现在使用的模版的模板文件夹名称 //例:我使用的主题为ThunderV1,对应的文件夹名称为thunder,修改为$theme="thunder"; 3、第三步(必须):用Ftp登录网站,将对应文件覆盖即可。注意一定要先备份哦! 4、第四步:预览链接代码,前台访问 http://www.你的网址.com/?theme=模版文件夹名称 例:http://www.xxx.com/?theme=thunder 特别说明:代码编辑器禁止用记事本,否则可能会出错。推荐EditPlus、Dreamwaver等。以上代码并非原创,本站仅作整理。
2013年02月09日
3,897 阅读
0 评论
0 点赞
2013-01-25
同步到QQ空间插件 for emlog
插件名称:同步到QQ空间说明:发表日志时可以选择是否拷备一份至QQ空间,基于寒川版Qzone日志插件制作,增加发布文章时自选同步与否、加密日志不会被同步。 安装: 1、上传插件至博客插件目录。 2、后台激活插件,并设置。 3、发表文章时勾选Qzone即同步到QQ空间。 4、加密日志不会被同步。注意:本插件原理很简单,利用QQ邮箱发表日志。因此,在使用本插件前请先确认以开通QQ邮箱、QQ空间及QQ邮箱中IMAP服务功能。下载地址:qqblog.zip 问题反馈及文章来源:http://www.justintseng.com/emlog-qqblog
2013年01月25日
3,568 阅读
0 评论
0 点赞