EMLOG常用的几种时间组合方式 emlog教程
在EMLOG博客程序中,我们有的时候需要用显示文章的发布时间、网站的建站时间等,那么,现在就来为大家分享一些EMLOG常用的几种时间组合方式。
1、EMLOG默认的时间显示代码
<?php echo gmdate('Y-n-j', $value['date']); ?>//无前导0
2、英文式的时间显示代码:
<?php echo gmdate('M.jS.Y D', $value['date']); ?>//星期,月份缩写。例如:Mar.17th.2015 Tue <?php echo gmdate('F.jS.Y l', $value['date']); ?>//星期,月份不缩写。例如:March.17th.2015 Tuesday
3、数字式的时间显示代码:
<?php echo gmdate('Y-n-j 星期w', $value['date']);?>//无前导。例如:2015-3-3 星期2 <?php echo gmdate('Y-m-d', $value['date']); ?>//有前导。例如:2015-03-03 <?php echo gmdate('y-m-d', $value['date']); ?>//有前导且年份缩写。例如:15-03-03
4、分秒式的时间显示代码:
<?php echo gmdate('g:i:s a', $value['date']); ?>//12小时制,“时”无前导。例如:2:09:08 pm <?php echo gmdate('h:i:s A)', $value['date']); ?>//12小时制,“时”有前导。例如:02:09:08 PM <?php echo gmdate('G:i:s)', $value['date']); ?>//24小时制,有前导(不含G)。例如:14:09:08
5、其他常见的时间组合代码
//例如:2015/03/17 20:00:19 <?php echo gmdate('Y/m/d G:i:s', $value['date']); ?> //例如:2015年9月12日 16:12 星期六 <?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $value['date']);echo" 星期".$weekarray[gmdate('w', $value['date'])];?>
EMLOG侧边栏二级分类实现折叠和树状展开 emlog教程
我们知道,EMLOG原生侧边栏上的分类组件默认是展开的,如果网站分类比较多的话就占用很大的侧边栏篇幅,因此我们需要对其进行折叠,现在就来为大家分享一个将EMLOG侧边栏二级分类进行折叠和树状展开的效果。
一、操作步骤
1、打开模板文件module.php,大概在第51行找到如下代码
<?php //widget:分类 function widget_sort($title){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> <li> <h3><span><?php echo $title; ?></span></h3> <ul id="blogsort"> <?php foreach($sort_cache as $value): if ($value['pid'] != 0) continue; ?> <li> <a href="<?php echo Url::sort($value['sid']); ?>"><?php echo $value['sortname']; ?>(<?php echo $value['lognum'] ?>)</a> <?php if (!empty($value['children'])): ?> <ul> <?php $children = $value['children']; foreach ($children as $key): $value = $sort_cache[$key]; ?> <li> <a href="<?php echo Url::sort($value['sid']); ?>"><?php echo $value['sortname']; ?>(<?php echo $value['lognum'] ?>)</a> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> </li> <?php }?>
2、将上面的代码替换为下面的代码即可
<?php //widget:分类 function widget_sort($title){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> <div class="widget m-echo"> <h3><?php echo $title; ?></h3> <ul id="blogsort"> <?php // lognum description foreach($sort_cache as $value): if ($value['pid'] != 0) continue; $Children = ''; $LogNum = $value['lognum']; if (!empty($value['children'])) { $Children .= '<i class="fa"></i><ul>'; foreach ($value['children'] as $sid) { if(isset($GLOBALS['ja_zt']['sort']) && $sort_cache[$sid]['sid'] == $GLOBALS['ja_zt']['sort']) $class = "class=\"ja_sort\" "; else $class = ""; $Children .= '<li><a '. $class .'href="'. Url::sort($sort_cache[$sid]['sid']) .'" title="当前分类下文章 ['.$sort_cache[$sid]['lognum'].'] '.$sort_cache[$sid]['description'].'">'; $Children .= $sort_cache[$sid]['sortname'] .'('. $sort_cache[$sid]['lognum'] .')</a></li> '; $LogNum += $sort_cache[$sid]['lognum']; } $Children .= '</ul>'; } if(isset($GLOBALS['ja_zt']['sort']) && $value['sid'] == $GLOBALS['ja_zt']['sort']) $class = "class=\"ja_sort\" "; else $class = ""; ?> <li> <a <?php echo $class; ?>href="<?php echo Url::sort($value['sid']); ?>" title="当前分类下文章 [<?php echo $value['lognum']; ?>] <?php echo $value['description']; ?>"><?php echo $value['sortname']; ?>(<?php echo $LogNum ?>)</a> <?php echo $Children; ?> </li> <?php endforeach; ?> </ul> <style> #blogsort li:hover .sb { color: #F60 } #blogsort ul li { line-height: 20px; padding: 0 0 5px 8px; margin-bottom: 0; border-bottom: 0 } #blogsort li ul { display: none } #blogsort li:hover ul { display: block }</style> </div> <?php }?>
二、注意事项
1、本教程所使用的样式比较简陋,如果您觉得这样作出来的效果不好看的话,您可以自行编写css样式
2、本教程可以对侧边栏上的标签组件进行折叠,实现将鼠标移到一级分类上会自动展开显示二级分类的效果
EMLOG增加文章阅读时间计时的方法 emlog教程
很多博主都在自己网站的文章页面设置过阅读耗时的功能,那么,EMLOG如何增加这项功能呢?现在就来为大家分享一个EMLOG增加文章阅读耗时的方法。
一、操作步骤
1、打开模板文件header.php,将<body>替换为<body onload="time_fun()">
2、打开模板文件side.php,在底部插入如下js代码
<script> function two_char(n) { return n >= 10 ? n : "0" + n; } function time_fun() { var sec=0; setInterval(function () { sec++; var date = new Date(0, 0) date.setSeconds(sec); var h = date.getHours(), m = date.getMinutes(), s = date.getSeconds(); document.getElementById("mytime").innerText = " 阅读计时:您阅读本文已花了" +two_char(h) + "小时" + two_char(m) + "分钟" + two_char(s)+ "秒;"; }, 1000); } </script>
3、打开模板文件echo_log.php,合适的位置插入如下代码
<div id="mytime">阅读计时:您阅读本文已花了00小时00分钟00秒;</div>
二、注意事项
1、本教程中所使用的调用代码和使用代码必须放在同一个页面里,否则使用失败浏览器会报错,请您务必注意。
2、本教程中所使用的代码不含任何css样式,如果您觉得比较丑,可以自行增加css样式。
EMLOG底部调用页面加载时间的方法 emlog教程
网站页面的加载时间和访客的耐心程度、搜索引擎的评级都有着直接关系,那么现在就来为大家分享一个在EMLOG底部增加调用页面加载时间的方法。
一、操作步骤
1、打开模板文件module.php,粘贴如下代码
<?php !defined('EMLOG_ROOT') && exit('Access Deined!'); if (!isset($_SERVER['REQUEST_TIME_FLOAT'])) { $_SERVER['REQUEST_TIME_FLOAT'] = microtime(TRUE); } function runtime_display() { echo sprintf('加载耗时: %.2fms', (microtime(TRUE) - $_SERVER["REQUEST_TIME_FLOAT"]) * 1000); } addAction('index_footer', 'runtime_display'); ?>
2、打开模板文件footer.php,粘贴如下代码
<?php doAction('index_footer'); ?>
二、注意事项
1、本教程第2步中的引用代码<?php doAction('index_footer');>存在于默认模板和主流模板中,如果该代码存在则您不需要再添加
2、本教程操作后所显示的页面加载时间和博客志之前分享的EMLOG添加页面加载耗时的教程所显示的时间有差异,具体原因未知
EMLOG调用相关文章的实现代码 emlog教程
我们知道,设置相关文章有助于增进访客在本站的停留时间,有利于网站的发展和搜索引擎评级,现在就来为大家分享一个EMLOG调用相关文章的代码。
1、打开模板文件module.php,在底部粘贴如下代码
<?php //相关日志 function related_logs($logData = array()) { $configfile = EMLOG_ROOT.'/content/plugins/related_log/related_log_config.php'; if (is_file($configfile)) { require $configfile; }else{ $related_log_type = 'sort';//相关日志类型,sort为分类,tag为日志; $related_log_sort = 'rand';//排列方式,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['id']; $sortid = $value['sortid']; 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[$logid] as $key => $val) { $related_log_id_str .= ','.$Tag_Model->getTagByName($val['tagname']); } $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['gid'] = intval($row['gid']); $row['title'] = htmlspecialchars($row['title']); $related_logs[] = $row; } $out = ''; if(!empty($related_logs)) { foreach($related_logs as $val) { $out .= "<li><a href=\"".Url::log($val['gid'])."\">{$val['title']}</a></li>"; } } if(!empty($value['content'])) { if($related_inrss == 'y') { $abstract .= $out; } }else{ echo $out; } } ?>
2、打开模板文件echo_log.php,在需要展示相关文章的位置粘贴如下代码
<div id="art_about"> <b>也许您还会对下面的内容感兴趣:</b> <ul class="art_col"> <?php related_logs($logData);?> </ul> </div>
3、打开公用样式css文件,粘贴如下样式代码
#art_about{margin:10px 5px; padding: 10px 0; overflow:hidden; padding-bottom:10px;font-size:12px;} #art_about ul{padding:10px;} #art_about ul li { line-height:1.5em; float:left; background:0px 50% transparent; margin:5px 15px; width:250px; white-sapce:nowrap; overflow:hidden; display:inline; }
EMLOG获取文章总字数、阅读量和评论量的方法 emlog教程
很多时候,为了自己统计方便也为了更好的访客体验,我们需要在前端展示文章字数、阅读量等数据,那么现在就来为大家分享一个EMLOG获取文章字数、阅读量和评论量的方法。
一、操作步骤
1、打开模板文件echo_log.php,在适当的位置粘贴如下代码
2、获取文章字数的代码
字数:<?php echo mb_strlen(preg_replace(array("'<(.*?)>'is","' '","'\n\r'","' '","'\r'","'\n'"),'',$log_content),'UTF-8');?>
3、获取文章阅读量的代码
阅读:<?php echo $views; ?>
4、获取文章评论量的代码
评论:<?php echo $comnum; ?>
二、注意事项
1、本教程的第2步即获取文章字数的代码,并不适用于教程类网站,因为该代码会将代码等当做文字一并计入文章字数
EMLOG调用指定单页面内容的方法 emlog教程
在做网站的时候,我们有的时候需要调用EMLOG指定文章页面的内容,同样的,有时候我们也会用到调用指定单页面,那么现在就来为大家分享一个EMLOG调用指定单页面内容的方法。
一、操作步骤
1、打开模板文件module.php,在最后粘贴如下代码
<?php $sl_dynr=mysql_fetch_array(mysql_query("SELECT * FROM ".DB_PREFIX."blog WHERE gid =2"));echo $sl_dynr['content'];?>
2、在需要调用的地方添加下面的引用代码即可
<?php echo html_page("2","content"); ?>
二、注意事项
1、本教程第2步中的数字2指的是需要调用的单页面ID,请根据自己的需要自行修改
2、本教程第2步中的content为单页面的内容,可以根据需要修改为title,也就是只调用页面标题
EMLOG调用指定文章里面的内容的方法 emlog教程
我们在做网站的时候需要调用一些定量内容,但EMLOG官方并没有这样的功能,因此就有大神专门对此进行了开发,那么现在就来为大家分享一个EMLOG调用指定文章内容的方法。
一、操作步骤
1、打开模板文件module.php,在最后粘贴如下代码
<?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"); ?>
二、注意事项
1、本教程第2步中的数字2指的是需要调用的文章ID,请根据自己的需要修改为相应的文章ID
EMLOG非插件实现投稿功能的方法 emlog教程
很多网站在做大做强后势必需要增加投稿、会员等功能,而利用EMLOG程序做大做强的网站并不在少数,现在就来为大家分享一个EMLOG非插件实现投稿功能的方法。
1、在根目录建议一个名为tougao的文件夹
2、在tougao文件夹中建立一个index.php文件,然后粘贴如下代码
<?php require_once '../init.php';//emlog程序此文件的路径,如在一级栏目中请去除../ define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/');//前台模板路径 $sl = isset($_GET['sl'])?intval($_GET['sl']):0; global $CACHE; $options_cache = $CACHE->readCache('options'); $navibar = unserialize($options_cache['navibar']); $blogname = $options_cache['blogname'];?> <!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta http-equiv="Cache-Control" content="no-transform" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> <title>在线投稿 - <?php echo $blogname;?></title> <meta name="keywords" content="" /> <meta name="description" content="" /> <script charset="utf-8" src="<?php echo BLOG_URL;?>admin/editor/kindeditor.js"></script> <style> body{background:#fff;font:14px/1.5 tahoma,arial,"Microsoft YaHei";margin:0px;padding:0px;font-size:12px;}ul,li,p,h1,h2,h3,h4,h5,h6{padding:0px;margin:0px;list-style:none;}a{color:#444;text-decoration:none;}a:hover{color:#F36;} .sltgq{margin:auto;overflow:hidden;clear:both; max-width:800px;} .sltgbt{border-bottom:1px dashed #ccc;line-height:30px;height:30px;font-size:16px;padding-left:10px; margin-top:20px;font-weight:bold;color:#F00;} .tougao1,.tougao2{margin:0 10px;overflow:hidden;clear:both;} .tougao1 li{clear:both; overflow:hidden;} .tougao1 li p{line-height:20px;font-weight:bold; margin:5px 0;} .tougao1 li input{height:26px;line-height:26px;} .tougao1 li b{color:#F00;} .tougao2{margin-top:10px; width:90%;} .tougao2 li{overflow:hidden;float:left; margin-right:10px;} .tougao2 li p{float:left;border:1px solid #999;height:30px;line-height:30px;padding:0 10px; font-weight:bold;} .tougao2 li input{height:26px; line-height:26px;} .tougao2 li img{ margin-top:5px;} .button input{height:32px;float:left;} .tougao2 label{height:32px;line-height:32px; float:right;} .nr{margin:auto;overflow:hidden;clear:both; margin-bottom:20px;} .nr ul{margin:10px; line-height:25px; font-size:14px;} .foot{margin:10px auto;text-align:center;clear:both;overflow:hidden;border-top:1px dashed #ccc;padding:10px 0;line-height:22px;font-size:12px;background:#fff;} </style> </head><body> <?php if($sl==0){$Sort_Model = new Sort_Model();$sorts = $Sort_Model->getSorts();?> <div class="sltgq"><div class="sltgbt">在线投稿</div> <form action="<?php echo BLOG_URL;?>tougao/?sl=1" method="post" enctype="multipart/form-data" name="addlog" > <div class="tougao1"> <li><p>文章标题 <b>*</b> </p><input name="title" maxlength="200" style="width:98%;" placeholder="文章标题大于10字少于30字" /></li> <li><p>作者昵称</p><input name="tags" maxlength="200" style="width:98%;" placeholder="作者名称,10字以内," /></li> <li><p>原文地址</p><input name="excerpt" maxlength="200" style="width:98%;" placeholder="不加http://,否则无法提交,如本站首发请不要填写任何网址信息" /></li> <li><p>注意事项:文章内容不得少于300字,请排版好,去掉没有必要的html代码,内容中的链接自动过滤</p><textarea name="text" style="width:98%;height:400px;" id="text"></textarea><script>loadEditor('text');</script></li></div> <div class="tougao2"> <li><select name="sortid" style="width:100px;height:30px;"><option value="-1">选择分类...</option><?php foreach($sorts as $val){?><option value=<?php echo $val['sid'];?>><?php echo $val['sortname'];?></option><?php }?></select></li> <li><p>验 证 码</p><p>SheLi</p></li> <li><input name="imgcode" type="text" size="5" tabindex="5" /></li> <div class="button"><input type="submit" value="提交" onclick="return checkform();" /></div><label for="sheli"><input type="checkbox" value=9 id="sheli" name="sheli" required autocomplete="on" title="发表评论确认框:请勾选我再发表评论!"><font color="red">请勾选我再提交!</font></label></div> </form> <div class="nr"><div class="sltgbt">注意事项</div><ul> 1、要认真写作,写完后多读几遍,注意排版及去除不必要的html代码<br> 2、请尊重原作者的权益,请注明文章的作者、原文地址;如果不提供这些信息,文章可能不能通过审核;<br> 3、本站接受稿件的前提是该信息对广大用户有所帮助,或者比较有创意的产品广告宣传;<br> 4、标题力求简短、醒目、新颖、吸引人,杜绝标题党,标题尽量不少于10个汉字,不多于30个汉字;<br> 5、文章应避免用 "今天"、"昨天",应改成具体日期;请尽量给文章配上图片(请注意调用的图片是否屏蔽外部调用); </ul></div> <div class="foot">Copyright © <?php echo date('Y');?> <?php echo $options_cache['blogname'];?> 版权所有</div> </div> <?php }elseif($sl==1){ $Log_Model = new Log_Model(); $Tag_Model = new Tag_Model(); $title = isset($_POST['title']) ? addslashes(trim($_POST['title'])) : ''; $content = isset($_POST['text']) ? addslashes(trim($_POST['text'])) : ''; $excerpt = isset($_POST['excerpt']) ? addslashes(trim($_POST['excerpt'])) : ''; $tags = isset($_POST['tags']) ? addslashes(trim($_POST['tags'])) : ''; $imgcode = isset($_POST['imgcode']) ? addslashes(trim(strtoupper($_POST['imgcode']))) : ''; $slCode = 'SHELI'; $author = ''; $sortid = isset($_POST['sortid']) ? intval($_POST['sortid']) : $config['sort']; $date = time() + Option::get('timezone') * 3600; $sb_title = mysql_query("select title from emlog_blog where title='$title' limit 1"); $sb_excerpt = mysql_query("select title from emlog_blog where excerpt='$excerpt' limit 1"); if(empty($title) || strlen($title) < 30 || strlen($title) > 90 || mysql_fetch_array($sb_title)){emMsg('提交失败:标题出错,可能以下原因造成<br />1、少于10个字或多于30个字<br />2、已经存在','javascript:history.back(-1);'); }elseif(strlen($tags) > 30){emMsg('提交失败:网址名称出错,多于10个字','javascript:history.back(-1);'); }elseif(!empty($excerpt) && preg_match("/^[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\"])*$/",$excerpt) == false){emMsg('提交失败:原文地址出错,可能以下原因造成<br />1、是否加了http://<br />2、网址格式是否正确<br>3、已经存在','javascript:history.back(-1);'); //}elseif(mysql_fetch_array($sb_excerpt)){emMsg('提交失败:原文地址出错,此网址已经发表过文章','javascript:history.back(-1);'); }elseif(empty($content) || strlen($content) < 900 ){emMsg('提交失败:内容没有按要求填写,少于300个字','javascript:history.back(-1);'); }elseif(preg_match("/^[0-9]*[1-9][0-9]*$/",$sortid)==false &&$config["sort"] =='0'){emMsg('提交失败:请选择分类','javascript:history.back(-1);'); }elseif($imgcode != $slCode){emMsg('提交失败:验证码错误','javascript:history.back(-1);'); } $logData = array( 'title' => $title, 'alias' => '', 'content' => $content, 'excerpt' => $excerpt, 'author' => '2',//指定作者ID 'date' => $date, 'top'=> 'n', 'sortop'=> 'n', 'sortid'=> $sortid, 'allow_remark' => 'y', 'hide' => 'y', //n为直接通过,y为放入草稿 'checked' => 'n',//n不需要审核,y为需要审核 'password' => '' ); $blogid = $Log_Model->addlog($logData); $Tag_Model->addTag($tags, $blogid); header('Location:'.BLOG_URL.'tougao/?sl=2');die;} elseif($sl==2){emMsg('提交成功,文章将在审核后发布。<br />请耐心等待,非常感谢您的贡献!',''.BLOG_URL.'tougao');}?> </body></html>
3、访问您的网站+tougao查看效果
EMLOG文章页添加字体大中小功能的方法 emlog教程
很多网站上都有控制字号的功能,而EMLOG原生模板上则没有此功能,那么现在就来为大家分享一个EMLOG文章页添加字体大中小功能的方法。
1、打开模板文件header.php,在<head/>标签前添加如下代码
<!--设置字体大小--> <script type="text/javascript">function SetFont(size){ var divBody = document.getElementById("article_content"); if(!divBody) { return; } divBody.style.fontSize = size + "px"; var divChildBody = divBody.childNodes; for(var i = 0; i < divChildBody.length; i++) { if (divChildBody[i].nodeType==1) { divChildBody[i].style.fontSize = size + "px"; } }}</script>
2、打开模板文件echo_log.php,在合适的位置添加如下代码
<span class="meat_span" ><i class="fa fa-font"></i> 字号:<a href="javascript:SetFont(18)">大</a> | <a href="javascript:SetFont(16)">中</a> | <a href="javascript:SetFont(14)">小</a></span>
3、打开公用样式表,添加如下代码
.article-font-size{position:absolute;right:0;}.article-font-size a{border:1px solid #ccc;padding:0.1em 0.2em;color:#bbb;}
4、如果上述css代码无效,则需要查看是否是因为没有设置DIV样式的ID,可修改为
<div id="article_content"><?php echo $log_content; ?></div>