首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
搜索
舍力
登录
搜索
舍力
静以修身。
累计撰写
1142
篇文章
累计收到
3504
条评论
首页
栏目
首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
代码教程
2015-6-4
Emlog模板设置插件使用教程及开发规范
一直以来,emlog走的轻量级路线,没有集成模板后台设置,于是很多功能强大的模板不得不在需要的时候,修改文件以改变设置。那么,有了这个插件以后,就可以不用如此纠结了,只要模板按照开发规范来开发,就可以使用本插件在后台进行设置了。重点强调,本插件是辅助插件,所有设置依赖于模板的功能,而不是插件本身,因此不要问我为什么没有blabla功能,请去寻求模板作者。 插件名称:模板设置 插件作者:奇遇 下载地址:http://www.emlog.net/plugin/144 哪些模板支持? 多模板,尤其是CMS模板,会有很多设置项,大多会有一个options.php文件,当你需要修改配置时,就得去修改文件,那么哪些模板才能用上插件的后台设置功能呢? 答案是:按照规范来开发的模板。模板开发者请看下面! 如何让模板能被插件识别? 在模板目录里放入options.php,内容格式如下即可,可以任意增加设置项,注意$options变量和注释: <?php /*@support tpl_options*/ !defined('EMLOG_ROOT') && exit('access deined!'); $options = array( 'sidebar' => array( 'type' => 'radio', 'name' => '侧边栏位置', 'values' => array( 'left' => '左边', 'right' => '右边' ), 'default' => 'right', ), 'sortIcon' => array( 'type' => 'image', 'name' => '分类图标设置', 'values' => array( TEMPLATE_URL . 'images/star.png', ), 'depend' => 'sort', 'unsorted' => true, 'description' => '给不同的分类设置不一样的小icon,以20×20为宜', ), ); options.php里,每个元素都该写什么? 如上所示,$options数组里,key为设置项的id,而value是一个数组,数组里包含若干个元素。其中type属性和name属性必选,name是设置项名字,而type用来指定设置项的类型,支持的类型如下: radio: 单选按钮 checkbox: 复选按钮 text: 文本 image: 图片 page: 页面 sort: 分类 tag: 标签 对于所有类型,default属性用于指定默认值,当没有指定default时,使用values里第一个值,若都没有指定,则会使用奇怪的默认值。 对于radio和chexkbox,values属性用来设置各个按钮的值和显示名称。 除sort外,均可以指定depend为sort,表示该选项可以根据不同的分类设置不同的值,当指定depend为sort时,可选unsorted属性,为true时,表示包括未分类,为false不包括,默认为true。 sort和page可设置multi属性为true,表示多选。 description属性可选,用以描述该选项。 若type为text,可设置multi属性为true,表示多行文本,即input和textarea的区别,可选属性rich用以支持富文本,若设置该值,将加载编辑器。 若type为sort、page或者tag,且设置了多选,默认值将为空,否则将为第一个该类型的值。 模板里如何调用设置项 插件提供简单方法_g($key),如上示例,可以使用_g('sidebar')来获取侧边栏的设置,取到的值将为0或者1,使用_g('sortIcon')来获取分类icon的全部设置,以分类id为key的数组,使用_g('sortIcon.1')来获取分类id为1(如果存在)的sortIcon。需要注意的是,对于类型为page的,将取到页面id,类型为sort的,将取到分类id,类型为tag的,将取到标签名。 若不传递参数,即使用_g()方法将获取到所有设置项,对于老的模板迁移来的,可以用extract(_g());来代替原来的加载option文件。
2015年6月4日
15819 阅读
1 评论
Emlog教程
2015-6-4
Emlog博客程序像置顶文章一样显示热门和最新文章图标
Emlog是一款基于PHP和MySQL的功能强大的博客及CMS建站系统。致力于为您提供快速、稳定,且在使用上又极其简单、舒适的内容创作及站点搭建服务。 如何像置顶文章一样显示热门和最新文章图标,如下图所示 代码直接放入标题后面即可 <?php if(((date('Ymd',time())-date('Ymd',$value))<=2)&&($value=='n')){?> 说明:当发布日期小于2天则显示 <?php }elseif($value>=300){?> 说明:当访问量大于300则显示 <?php }?>
2015年6月4日
8910 阅读
2 评论
Emlog教程
2015-6-4
Emlog时间格式转化,约几天、几月、几年的方式显示
本代码已经更新,请移步新教程《关于Emlog博客文章时间显示方式几种表达方式》; 看到很多博客的发布时间都是显示约几天前、约几月前、约几年前,舍力也捣鼓了一下,本次分享的代码月和年是按30天计算的,没有考虑其他,可能造成和准确日期有所差异; 以前写过一篇《分享Emlog文章日期显示时间及星期的方法》有需要的朋友可以参考一下的。下面是详细设置方法:首先打开模板文件module.php,在最后加入如下代码 <?php function sldate($datetemp, $dstr = 'Y-m-d H:i') { $timezone = Option::get('timezone'); $op = ''; $sec = time() - $datetemp; $min = floor($sec / 60); $hover = floor($sec / 3600); $day = floor($hover / 24); $month = floor($day / 30); $Year = floor($month / 12); if($Year==0){if($day < 30){$op = "约 {$day} 天前";}elseif($month < 12){$op = "约 {$month} 个月前";} }elseif($Year >= 1){$op = "约 {$Year} 年前";}else{$op = "24小时之内";} return $op; }?> 然后在你需要的地方调用就可以了; 文章页调用方法:<?php echo sldate($date);?> 列表页调用方法:<?php echo sldate($value);?>
2015年6月4日
8738 阅读
0 评论
Emlog教程
2015-6-3
如何利用sql语句批量替换数据库内容命令的方法
如果一个网站,里面的信息内容,已经成千上万,当有一天想要修改大部分文章中的信息时,单篇文章修改的方法不是太现在,那么现在给大家介绍一下用数据库批量修改替换网站文章标题、内容等方法如下: 首先进入数据库,然后直接用SQL执行一下语句,如图 即可批量替换数据库中的内容 Update 表名 SET 字段名=replace(字段名,'原内容','新内容')
2015年6月3日
8815 阅读
0 评论
代码教程
2015-6-1
非插件实现Emlog内容页判断百度收录与否
本方法有插件实现,本教程由独狼移植四少爷博客制作的插件,这样就不用开启插件就可以使用了,舍力经过测试正常方才发布,只为收集EMLOG教程,让更多的网友受益。不废话了,下面进入正题,首先将以下代码存放在模板目录的module文件中: <?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 logurl($id){$url=str_replace(array('http://'),'',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>";}} ?> 在模板的echo_log.php文件中调用<?php echo logurl($logid);?>即可。
2015年6月1日
9964 阅读
2 评论
Emlog教程
2015-5-29
解决ecshop分类列表页和搜索页面出现空白商品
在一些模板里,会发现分类列表页或者搜索页面多出一个空白商品,这是由于模板没有判断是否存在商品ID导致的问题。 解决办法如下:打开模板文件library/goods_list.lbi文件,找到<!--{foreach from=$goods_list item=goods}-->...<!–{/foreach}–> 在此循环里的首尾分别添加<!-- {if $goods.goods_id} -->和<!--{/if}-->即可解决问题。 即:<!--{foreach from=$goods_list item=goods}--><!-- {if $goods.goods_id} -->...<!--{/if}--><!–{/foreach}–>;后台清理缓存后刷新查看
2015年5月29日
25161 阅读
0 评论
Ecshop教程
2015-5-23
emlog缩略图不同实现方法:正文-附件-随机图片
实现emlog列表也缩略图按先调用正文第一张图片,没有则调用附件图片,如果前两者都没有则调用随机图片代码 第一步:首先在模板的module.php文件中最后面加入如下代码 <?php //全局匹配正文中的图片并存入imgsrc中 function img_zw($content){preg_match_all("|<img+src=\"(+)\"?*>|is", $content, $img);$imgsrc = !empty($img) ? $img : '';if($imgsrc):return $imgsrc;endif;} //Custom: 获取附件第一张图片 function img_fj($logid){$db = MySql::getInstance();$sql = "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";$imgs = $db->query($sql);$img_path = "";while($row = $db->fetch_array($imgs)){$img_path .= BLOG_URL.substr($row,3,strlen($row));} return $img_path;}?> 第二步:然后在log_list.php的foreach循环中加入如下代码 <?php if(img_zw($value)){$imgurl = img_zw($value); }elseif(img_fj($value)){$imgurl = img_fj($value); }else{$imgurl = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';} ?><p><img src="<?php echo $imgurl;?>" /></p> 本教程代码结束!!!! 以下代码为舍力自用代码,请不必理会,直接替换上面第二步代码,即实现有调用正文第一张图片 => 附件图片 => 无图片则不显示。 <?php if(img_zw($value)){$imgurl = img_zw($value);?><p><img src="<?php echo $imgurl;?>" /></p> <?php }elseif(img_fj($value)){$imgurl = img_fj($value);?><p><img src="<?php echo $imgurl;?>" /></p> <?php }else{}?>
2015年5月23日
13630 阅读
2 评论
Emlog教程
2015-5-21
删除ECSHOP后台升级提示/下载最新补丁升级提示
删除最新补丁: v 2.7.3 released 20121106, 发布日期: 2013-12-06. 点击下载 提示 admin/templates/start.htm 大概204行:Ajax.call('index.php?is_ajax=1&act=main_api','', start_api, 'GET', 'TEXT','FLASE'); 改成: // Ajax.call('index.php?is_ajax=1&act=main_api','', start_api, 'GET', 'TEXT','FLASE');
2015年5月21日
21758 阅读
1 评论
Ecshop教程
2015-5-21
Ecshop后台如何去除云提醒未激活,点击激活
Ecshop如何去除云提醒未激活,点击激活,接下来我就为大家详细介绍,找到admin/templates/start.htm中的 <script type="Text/Javascript" language="JavaScript"> <!-- Ajax.call('cloud.php?is_ajax=1&act=cloud_remind','', cloud_api, 'GET', 'JSON'); function cloud_api(result) { //alert(result.content); if(result.content=='0') { document.getElementById("cloud_list").style.display ='none'; } else { document.getElementById("cloud_list").innerHTML =result.content; } } function cloud_close(id) { Ajax.call('cloud.php?is_ajax=1&act=close_remind&remind_id='+id,'', cloud_api, 'GET', 'JSON'); } //--> </script> 注释掉如图所示的一段代码,到</script>截止全部删除即可。登陆后台,更新缓存,问题就解决了
2015年5月21日
17931 阅读
0 评论
Ecshop教程
2015-5-20
ecshop修改文件代码头部的Generator标记的方法分享
修改文件:includes/cls_template.php 查找: / 在头部加入版本信息 / $source = preg_replace('/<head>/i', "<head>\r\n<meta name=\"Generator\" content=\"" . APPNAME .' ' . VERSION . "\" />", $source); 注释这段代码!直接去掉即可。
2015年5月20日
21627 阅读
0 评论
Ecshop教程
2015-5-20
如何限制ecshop底部帮助中心文章条数(help.lbi)
ECSHOP帮助中心如何限制文章条数 有的站长的帮助中心的文章可能会很多,都显示在帮助中心里,感觉会很乱。教您一个“在ECSHOP帮助中心限制文章显示条数”的方法,例如只显示每个帮助分类的前5篇文章。为了照顾大多数站长,本教程倾向于在ecshop模板里修改实现。以默认模板为例, 打开 /themes/default/library/help.lbi 文件,以默认模板为例,将其中的 <!-- {foreach from=$help_cat.article item=item} --> <dd><a href="{$item.url}" title="{$item.title|escape:html}">{$item.short_title}</a></dd> <!-- {/foreach} --> 修改为 <!-- {foreach from=$help_cat.article name="help_list" item=item} --> {if $smarty.foreach.help_list.iteration lt 6} <dd><a href="{$item.url}" title="{$item.title|escape:html}">{$item.short_title}</a></dd> {/if} <!-- {/foreach} --> 其中的6表示文章数量少于6,即只显示5篇文章
2015年5月20日
16394 阅读
1 评论
Ecshop教程
2015-5-18
css控制不溢出,不换行,溢出部分省略号显示
css控制不溢出,不换行,溢出部分省略号显示:white-space:nowrap;text-overflow:ellipsis;overflow:hidden; ext-overflow 取值: clip : 默认值。不显示省略标记(...),而是简单的裁切 ellipsis : 当对象内文本溢出时显示省略标记(...) white-space : normal | pre | nowrap 取值: normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行 pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象 nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性 overflow : visible | auto | hidden | scroll 取值: visible : 默认值。不剪切内容也不添加滚动条。假如显式声明此默认值,对象将以包含对象的 window 或 frame 的尺寸裁切。并且 clip 属性设置将失效 auto : 在必需时对象内容才会被裁切或显示滚动条 hidden : 不显示超过对象尺寸的内容 scroll : 总是显示滚动条
2015年5月18日
8137 阅读
0 评论
代码教程
15
16
17
18
19