首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
搜索
舍力
登录
搜索
舍力
静以修身。
累计撰写
1140
篇文章
累计收到
3628
条评论
首页
栏目
首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
存档于 【201506】 的文章
2015-6-30
利用@media screen实现自适应网页布局兼容IE的respond.js
respond.js 是一个快速、轻量的 polyfill,用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-width 和 max-width 特性,实现响应式网页设计(Responsive Web Design)。 (function(w) { "use strict"; w.matchMedia = w.matchMedia || function(doc, undefined) { var bool, docElem = doc.documentElement, refNode = docElem.firstElementChild || docElem.firstChild, fakeBody = doc.createElement("body"), div = doc.createElement("div"); div.id = "mq-test-1"; div.style.cssText = "position:absolute;top:-100em"; fakeBody.style.background = "none"; fakeBody.appendChild(div); return function(q) { div.innerHTML = '­<style media="' + q + '"> #mq-test-1 { width: 42px; }</style>'; docElem.insertBefore(fakeBody, refNode); bool = div.offsetWidth === 42; docElem.removeChild(fakeBody); return { matches: bool, media: q }; }; }(w.document); })(this); (function(w) { "use strict"; var respond = {}; w.respond = respond; respond.update = function() {}; var requestQueue = , xmlHttp = function() { var xmlhttpmethod = false; try { xmlhttpmethod = new w.XMLHttpRequest(); } catch (e) { xmlhttpmethod = new w.ActiveXObject("Microsoft.XMLHTTP"); } return function() { return xmlhttpmethod; }; }(), ajax = function(url, callback) { var req = xmlHttp(); if (!req) { return; } req.open("GET", url, true); req.onreadystatechange = function() { if (req.readyState !== 4 || req.status !== 200 && req.status !== 304) { return; } callback(req.responseText); }; if (req.readyState === 4) { return; } req.send(null); }, isUnsupportedMediaQuery = function(query) { return query.replace(respond.regex.minmaxwh, "").match(respond.regex.other); }; respond.ajax = ajax; respond.queue = requestQueue; respond.unsupportedmq = isUnsupportedMediaQuery; respond.regex = { media: /@media+\{(*\{*\})+/gi, keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes+\{(?:*\{*\})+*\}/gi, comments: /\/\**\*+(*\*+)*\//gi, urls: /(url\()?(+)?(\))/g, findStyles: /@media *(+)\{(+?)$/, only: /(only\s+)?(+)\s?/, minw: /\(\s*min\-width\s*:\s*(\s*+)(px|em)\s*\)/, maxw: /\(\s*max\-width\s*:\s*(\s*+)(px|em)\s*\)/, minmaxwh: /\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*+)(px|em)\s*\)/gi, other: /\(*\)/g }; respond.mediaQueriesSupported = w.matchMedia && w.matchMedia("only all") !== null && w.matchMedia("only all").matches; if (respond.mediaQueriesSupported) { return; } var doc = w.document, docElem = doc.documentElement, mediastyles = , rules = , appendedEls = , parsedSheets = {}, resizeThrottle = 30, head = doc.getElementsByTagName("head") || docElem, base = doc.getElementsByTagName("base"), links = head.getElementsByTagName("link"), lastCall, resizeDefer, eminpx, getEmValue = function() { var ret, div = doc.createElement("div"), body = doc.body, originalHTMLFontSize = docElem.style.fontSize, originalBodyFontSize = body && body.style.fontSize, fakeUsed = false; div.style.cssText = "position:absolute;font-size:1em;width:1em"; if (!body) { body = fakeUsed = doc.createElement("body"); body.style.background = "none"; } docElem.style.fontSize = "100%"; body.style.fontSize = "100%"; body.appendChild(div); if (fakeUsed) { docElem.insertBefore(body, docElem.firstChild); } ret = div.offsetWidth; if (fakeUsed) { docElem.removeChild(body); } else { body.removeChild(div); } docElem.style.fontSize = originalHTMLFontSize; if (originalBodyFontSize) { body.style.fontSize = originalBodyFontSize; } ret = eminpx = parseFloat(ret); return ret; }, applyMedia = function(fromResize) { var name = "clientWidth", docElemProp = docElem, currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body || docElemProp, styleBlocks = {}, lastLink = links, now = new Date().getTime(); if (fromResize && lastCall && now - lastCall < resizeThrottle) { w.clearTimeout(resizeDefer); resizeDefer = w.setTimeout(applyMedia, resizeThrottle); return; } else { lastCall = now; } for (var i in mediastyles) { if (mediastyles.hasOwnProperty(i)) { var thisstyle = mediastyles, min = thisstyle.minw, max = thisstyle.maxw, minnull = min === null, maxnull = max === null, em = "em"; if (!!min) { min = parseFloat(min) * (min.indexOf(em) > -1 ? eminpx || getEmValue() : 1); } if (!!max) { max = parseFloat(max) * (max.indexOf(em) > -1 ? eminpx || getEmValue() : 1); } if (!thisstyle.hasquery || (!minnull || !maxnull) && (minnull || currWidth >= min) && (maxnull || currWidth <= max)) { if (!styleBlocks) { styleBlocks = ; } styleBlocks.push(rules); } } } for (var j in appendedEls) { if (appendedEls.hasOwnProperty(j)) { if (appendedEls && appendedEls.parentNode === head) { head.removeChild(appendedEls); } } } appendedEls.length = 0; for (var k in styleBlocks) { if (styleBlocks.hasOwnProperty(k)) { var ss = doc.createElement("style"), css = styleBlocks.join("\n"); ss.type = "text/css"; ss.media = k; head.insertBefore(ss, lastLink.nextSibling); if (ss.styleSheet) { ss.styleSheet.cssText = css; } else { ss.appendChild(doc.createTextNode(css)); } appendedEls.push(ss); } } }, translate = function(styles, href, media) { var qs = styles.replace(respond.regex.comments, "").replace(respond.regex.keyframes, "").match(respond.regex.media), ql = qs && qs.length || 0; href = href.substring(0, href.lastIndexOf("/")); var repUrls = function(css) { return css.replace(respond.regex.urls, "$1" + href + "$2$3"); }, useMedia = !ql && media; if (href.length) { href += "/"; } if (useMedia) { ql = 1; } for (var i = 0; i < ql; i++) { var fullq, thisq, eachq, eql; if (useMedia) { fullq = media; rules.push(repUrls(styles)); } else { fullq = qs.match(respond.regex.findStyles) && RegExp.$1; rules.push(RegExp.$2 && repUrls(RegExp.$2)); } eachq = fullq.split(","); eql = eachq.length; for (var j = 0; j < eql; j++) { thisq = eachq; if (isUnsupportedMediaQuery(thisq)) { continue; } mediastyles.push({ media: thisq.split("(").match(respond.regex.only) && RegExp.$2 || "all", rules: rules.length - 1, hasquery: thisq.indexOf("(") > -1, minw: thisq.match(respond.regex.minw) && parseFloat(RegExp.$1) + (RegExp.$2 || ""), maxw: thisq.match(respond.regex.maxw) && parseFloat(RegExp.$1) + (RegExp.$2 || "") }); } } applyMedia(); }, makeRequests = function() { if (requestQueue.length) { var thisRequest = requestQueue.shift(); ajax(thisRequest.href, function(styles) { translate(styles, thisRequest.href, thisRequest.media); parsedSheets = true; w.setTimeout(function() { makeRequests(); }, 0); }); } }, ripCSS = function() { for (var i = 0; i < links.length; i++) { var sheet = links, href = sheet.href, media = sheet.media, isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet"; if (!!href && isCSS && !parsedSheets) { if (sheet.styleSheet && sheet.styleSheet.rawCssText) { translate(sheet.styleSheet.rawCssText, href, media); parsedSheets = true; } else { if (!/^(*\/\/)/.test(href) && !base || href.replace(RegExp.$1, "").split("/") === w.location.host) { if (href.substring(0, 2) === "//") { href = w.location.protocol + href; } requestQueue.push({ href: href, media: media }); } } } } makeRequests(); }; ripCSS(); respond.update = ripCSS; respond.getEmValue = getEmValue; function callMedia() { applyMedia(true); } if (w.addEventListener) { w.addEventListener("resize", callMedia, false); } else if (w.attachEvent) { w.attachEvent("onresize", callMedia); } })(this); 直接下载>>respond.zip<<文件
2015年6月30日
10418 阅读
2 评论
代码教程
2015-6-26
删除ecshop手机网页WAP版的方法分享
删除ecshop自带的WAP版。用手机打开ECSHOP,就会跳转到mobile文件夹,如果打开wap功能,就能看到wap版得网站,且有BUG,难看。但目前智能手机、PAD、IPhone、Android可以跟电脑一样浏览和购物。实在不行,就下载个uc浏览器。所以这个wap功能实在无用武之地,可以彻底删除,且提高安全性。 1、删除/wap和/mobile目录和目录下的所有文件 2、删除根目录index.php中的 3、删除相关数据库(在SQL执行以下代码) DELETE FROM ecs_shop_config WHERE ecs_shop_config.code in ( "wap", "wap_config","wap_logo"); 4、删除languages/zh_cn/admin/shop_config.php中的
2015年6月26日
22103 阅读
1 评论
Ecshop教程
2015-6-13
必知信息发布技巧 - 关于关键词不得不知道的四点
1、选择核心关键字:饰品作为核心关键字其热门程度之高可想而知,一般像饰品这样的热门关键字基本上是通过百度推广做上去的,如果不惜金钱为代价可以通过百度推广,搜索发现,这个关键字已经被一些权威站点或者百度竞价垄断。不过你可以选择其他的相关的做核心关键字。比如"饰品+赠送","女性饰品购物”等等。 2、相关关键字:每个搜索引擎都给大家提供了参考。百度,雅虎,谷歌都有相关搜索,而且雅虎还有一个热门搜索,显示近期常用的相关词语。大家可以把相关关键字词作为网站的分类栏目。作为分类栏目好处是可以突出关键字,让其他内页辅助,并且可以在网站内多次合理的出现。稍微细心的朋友都会发现,很多时候页面里无相关内容,只因为分类栏目与搜索的关键字相同,却出现在搜索结果里。 3、生僻关键字:做生僻关键字主要是将来结合百度下拉进行生僻关键字炒作,比如在百度中输入品牌(公司名称)+空格出现你想要的生僻关键词,做生僻关键词前期需要大量投入文章,其文章标题要以热门关键字+生僻关键字的组合出现,例如OBH 气泡水机,最后通过百度下来营销工具,把生僻关键字做到百度下拉菜单栏目里。 4、垃圾关键字:你可以自己根据自己的网站内容,寻找一些相关的,但是很少被人使用的关键字。虽然这类关键字带来的流量很小,不过排名容易上去,也许一个页面,一个更新信息,被收录后当天就能排在第一页。补充一些相关页面比制造一直垃圾页面更能带来流量。特别是对于一些地方站,行业站来说,这是个比较好的方法。我有个网站,在来路统计里看到,关键字舍力博客一个月才被搜索几十次,但是所有的生僻关键字加一起,却占据了10%。
2015年6月13日
11403 阅读
8 评论
SEO优化教程
2015-6-13
标题拟定 - 如何设置关键词更好的被收录(标题关键词策划)
更好的被收录策划关键词: 1、产品名称 2、公司名+产品名称 3、地区+产品名称 4、型号+产品名称 5、类别+产品名称 6、用途+产品名称 7、地区+型号+产品名称 8、品牌+型号+产品名称 9、性能+产品名称 10、产品名称+价格 11、产品名称+厂家 12、产品名称+批发 13、产品名称+供应商 ……其它的产品也是一样,如果是全国市场,可以在产品的前面加上各城市名。 (要注意的是产品名称里不要放电话号码或者QQ之类的)这样的话您的客户就可以通过不同的关键词搜索到您这边,效果自然就来得快了。
2015年6月13日
9956 阅读
0 评论
SEO优化教程
2015-6-13
信息发布技巧 - 百度收录规则(百度内部人员大揭底)
如果想让百度收录的更多,我们就要写原创,而且要保质保量的完成,这样才能将即时客户转变成潜在客户,如果一个网站不能做到吸引客户,让他们没有了解的欲望,那这样的网站是很不成功的。所以我们不仅要提高网站的内容质量,还要了解百度收录的秘密。 百度讨厌的几种做法: 1、点击后打开的页面与客户想看的页面大相径庭,是另一个不相干的网页,这是一些作弊行为,百度是很不喜欢的,如果这种情况很多或者说是主要的“优化”形式,这个站的收录内容应该是很少了,而且是越来越少,因为用户体验上不去,权重也会越来越低。 2、这个问题很常见,百度要求内容与题目要有呼应。如果只是标题中有这种关键词,而内容中出现的很少这就属于作弊行为,百度会察觉到的,如果百度不在信任你的网站,那收录的内容一定会越来越少。 3、百度收录如果都是千篇一律,那用户体验一定也会下降,所以他们并不喜欢收录同样的内容,即使很精彩很经典,也不如新的更能吸引眼球。百度喜新厌旧,如果网站每天都更新,而且内容原创,受客户欢迎,那何愁百度不来收录呢?所以想增加收录量,网站内容一定要新颖。 百度对于内容的要求: 一、标题 1、原创:标题也需要原创,不要复制粘贴,搜索引擎喜欢原创的内容,重复的内容发布没有意义,搜索引擎不会收录。 2、带有长尾核心关键词:首先,确定你要推广的主关键词,如果你要推广高顶灯,那么,你的关键词就是“高顶灯”。然后,你要知道,主关键词的竞争是比较剧烈的,而且笼统的一个“高顶灯”,既不利于百度搜索引擎收录,也不能有效打动顾客,那么,如何具体化这个主关键词,至关重要,那就需要加入“长尾关键词”。 站在消费者的角度,这样一个标题也呼之欲出了,一连串的带有关键词的标题就出来了。 二、如何写内容 内容可以从多个方面进行描述如:产品概述、适用场所、性能、售后服务、特点等分段描述,注意用户体验。 三、图片 “治大国如烹小鲜”,发布产品信息,也应该有炒一碟菜的细致、精心。而一篇没有精美的图片相辉映的产品信息,就好比讲究“色香味俱全”的菜肴,少了“色”这一味,让人顿失胃口。 四、收录 只要不是重复性的内容,属原创内容百度,360,搜狗等搜索引擎一定会收录,客户在搜索引擎上搜索“高顶灯”类相关信息搜索结果中即会有您发布的信息。
2015年6月13日
9298 阅读
1 评论
SEO优化教程
2015-6-12
【转】5月份百度算法调整,排名下降原因分析
受夫唯老师的邀请,昨天在搜外的公开课上分享了百度K站的一些分析和算法的调整,经过今天为各位朋友同学分析了几十个网站之后,基本上确定了5月百度打击的核心目的是“SEO优化过度”。 经过数据整理得出以下特征: 1、绝大部被降权网站,标题、关键词、描述中都有关键词堆砌行为,推荐学习58同城的TDK写法。在TDK中堆砌关键词也是百度识别SEO站点的主要有效方式之一。 2、大部分被降权网站在文本、alt、超链接中的title属性中有堆砌关键词。这属于搜索引擎反作弊规则的重要一环,建议合理使用这些标签,而不是在其中使劲添加关键词。 3、部分网站有过度使用加粗标签。这个标签是百度打击SEO优化的一个主要标签。非常容易造成降权。 4、部分网站有多个H1等作弊行为,多个H1将会导致被反作弊规则识别,直接降权。 5、不少站点出现了大量的空连接或者重复链接,这是用户体验差的表现,有一定概率造成降权。 6、有大约1/5的站点访问速度特别慢。请及时更换空间或者服务器,访问速度过低会被降权,这是百度站长平台多次声明过的。 7、不少网站使用了QQ客服代码链接:http://wpa.qq.com/msgrd?v=3……,是以直接的链接形式出现的,建议这样的链接用JS实现或者加nofollow。有可能导致搜索引擎误判。 8、少量的网站存在一定数量死链接,建议尽快处理好。 9、在诊断过程中出现了一个可能是被百度误伤的正常优化站,建议可以调整自己的优化手法,或者向百度反馈,或者等待即可。 10、大部分网站都有大量的重复链接(内链),或者重复导出链接(向外导出链接),这是容易触发反作弊规则的一个情况。 以下是今天网站诊断过程中找到的几个很有代表性的截图: 上面的网站同时匹配了TDK堆砌关键词、多个H1作弊、重复链接、alt中关键词堆砌、title属性关键词堆砌、内页存在大量导出链接。嗯,这个站不调整自己的网站基本上不可能恢复排名了。
2015年6月12日
15710 阅读
0 评论
SEO优化教程
2015-6-12
SEO中TDK写法的意思以及注意事项
在SEO中,所谓的TDK其实就是title、description、keywords这三个标签,这三个标签在网站的优化过程中,至关重要所以今天童童来和大家分享下,如何去写好TDK标签! 1、title标题标签 一般采用的是关键词+网站名模式,建议是1-3个关键词用下划线_连接,最后小划线-链接网站名,标题一般建议是28个字,百度对网站标题索引是28个字,即你写的多排名结果不会显示出完整标题,所以最好是28个字内。 2、keywords关键词标签 建议选取网站的核心关键词3个左右,不要太多,用半角逗号相连。新人朋友有些喜欢在keywords标签中加入很多关键词,生怕浪费了,其实没这个必要,想什么都抓住,最后什么也抓不住。而且现在的keywords标签搜索引擎都不怎么看的。 3、description描述标签 建议是站名开头,用网站关键词说成一句话,一定要通顺。描述标签一般写120字以内,建议是64个字以内,因为百度等搜索引擎对描述标签排名索引是64个字。 Title标签是最为重要的一环,关系着目标关键词的排名,Keywords标签对百度搜索结果影响不大,Description标签是对title的一个补充,适合长尾关键词出现。 所有标签要符合四不过三,三不过四,二不过五的关键词撰写原则。所谓原则就是指四个字的关键词不要重复出现超过三次,三个字的关键词不要重复出现超过四次,二个字的关键词不要重复出现超过五次。
2015年6月12日
12787 阅读
0 评论
SEO优化教程
2015-6-12
emlog教程:手机访问自动跳转到首页或相应文章地址
手机访问自动跳转到首页或相应文章地址,在模板文件header.php中<head></head>之间加入如下代码即可。 <script type="text/javascript"> if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){ if(window.location.href.indexOf("?mobile")<0){ try{ if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){ window.location.href="<?php echo BLOG_URL; ?>/m/?post=<?php echo $logid;?>"; } }catch(e){} } } </script>
2015年6月12日
13201 阅读
16 评论
Emlog教程
2015-6-12
红尘渡口,你的痴心遇见了谁的情缘
自古红尘多忧愁,入了红尘,亦醉了红尘。红尘多梦,梦亦然,红尘梦里一场烟,梦里红尘一场空。一支断箫,承载了多少迷人的爱情故事;一曲离殇,吟唱了多少不舍的红尘美梦。梦,早已随风消逝,情,却在红尘里徘徊缠绵。 相思桥下,你的痴心会遇见谁的情缘?谁的等待会邂逅你的守候?青石板旁,你的脚步会为谁停留?而谁又会是那个一直等待你出现的有缘人?几经波折,几经弯路,你眉下的倾城笑容为谁扬起?红尘彼岸的烟花又为谁灿烂绽放?风萧萧,路遥遥,一指嫣红为谁停留,一倾相思为谁痴守。 红尘渡口渡有缘,有缘遇见便是分,缘分自古三分天意,七分争取,如能牵手便是福分,如若不能一起白头,便惟愿各自安好。红尘渡口不知渡了多少有缘人,渡桥边不知又有多少人在苦苦等待有缘人的到来。等待只是为了遇见对的人,而对的人总会在恰当的时候出现,不浮不躁,不卑不亢,冥冥之中,我们都会遇见一个倾心之人。 成长的步伐从来不会为谁而停止,不知不觉,后知后觉,时光的脚步带领着自己也来到了红尘的渡口,矫情的岁月在渡桥边焕发着多少的痴男怨女,唯美浪漫的爱情故事不知让多少人甘愿一往情深。在这红尘渡口下,我终于遇见了人潮汹涌里那个特别的你,情愿一生痴守的你。今生有幸与你牵手,今世甘愿为你守候。 渡桥边,西楼上悬挂着如钩的月儿,庭院一角锁着的是谁的落寞?窗前的一帘幽梦,苍老了谁的痴心等待?今宵月光正好,星星也正闪耀,晚风开始唤起我对你美好的追忆,那一段柔情岁月。渡口旁,我邀明月共赏,我等天地见证。 一刻停留,一世等待,遇见你是我今生的缘,牵起你的手更是我今世的分。奈何,烟花易冷;奈何,情缘难分。当痴心遇上了冷风,不知吹散了多少的相遇,而那瞬间绚丽的花期,又不知辜负了多少的斑斓年华。 我想在红尘渡口边建一间温暖小屋,在那里只有属于我们的世界,那是我期盼已久的事情,那是我能想到最浪漫的事情,与你一起牵手,看尽繁华流年,阅遍风花雪月。于是,在每一个风淡云轻的日子里,在每一个夜深人静的黑夜里,我总是忍不住遥望远方灯火阑珊处,不敢挑逗脑海里不灭的思绪,亦不想去思量心底那缠绵的思念。偏偏,夜越是深,人越是静,我越是控制不了自己去想你,幻想着一切只属于我们的美好。 红尘渡口停留凝望注视,回首彼岸,犹记当初相遇时,你仿佛诗歌里柔情的女子一般出现在我的世界,你我只一眼的对视,你的容颜从此扣动着我的心弦,让我惹上了孤独的相思,无尽的眷恋。一世情长只为你一人,一生眷恋独倾你一人心。 当过往被定格成照片,岁月覆盖了所有美好的曾经,往事一幕一幕在脑海里放映,可爱的人儿被一页一页翻过,而你始终是我最不愿翻过的一页。岁月辗转,流年似水一去不复返,时光如同激流一般匆匆逝去,纵然一切早已物是人非,纵然一切早已随风飘逝,但你依然是我红尘渡口上不舍的眷恋。 自古红尘美梦令人醉,醉心红尘入凡间,痴心永存心底成追忆。我欲剪一段流年光阴,寄于岁月深处下;拾一段时光回忆,藏于红尘碎梦里。我想要把你就这样一笔一划地写进心里,写成心底最美丽的诗。我想要把你就这样一字一句地唱到脑海,唱成记忆里最动听的歌。 红尘渡口,你的痴心遇见了谁的情缘?而又是谁的等待邂逅了你的守候?凡尘俗世里,在经历了感情的风风雨雨之后,在漫长的独自等待之后,愿你我都能遇见一个动心的温暖人儿,如此,甚好。
2015年6月12日
8798 阅读
0 评论
美文欣赏
2015-6-11
Ecshop:后台添加新功能栏目以及管理权限设置
一、添加菜单项 打开 /admin/includes/inc_menu.php文件(后台框架左边菜单),在最后添加一行如下: 1$modules = 'sns_list.php?act=list'; ecshop默认一级菜单项有16项,所里这里的例子从17开始。当然这个key可以随便取的,index.php文件中对菜单用了ksort排序。“17_other_menu” 表示一级菜单,“sns_list”表示二级菜单。等号后面的值表示该菜单栏目打开的页面链接。 二、配置菜单语言 打开 /languages/zh_cn/admin/common.php文件,添加语言 1$_LANG = '其它设置'; 2$_LANG = 'SNS管理'; 这时候,用管理员身份(admin用户)登录后台,便可看到新添加的菜单项了。因为admin的权限是“all”。如果后台有多个管理员,比如ecshop商城的供货商们,或者其它管理人员(由admin创建的其它可登陆后台的账户),如果想让他们也拥有新添加菜单的查看权利,则必须为他们分配该栏目的管理权限。 三、把新菜单加入权限列表 打开 /languages/zh_cn/admin/priv_action.php文件,在“权限管理的一级分组”注释行下面添加如下代码 1$_LANG = '其它设置'; 这里的“other_manager”是该一级栏目的权限名称,这里和栏目名称“17_other_menu”保持一致,也可以随便取个名。这里以示区别,就没有和菜单名一样。 然后,添加二级栏目“sns_list”的权限名称。在本文件的最后添加即可 1//其它管理 2$_LANG = 'SNS管理'; 这里这个权限名称和二级菜单名是一致的。这两项现在在哪里呢?如下图 四、把一级菜单和二级菜单的权限关联起来 Ecshop:后台添加新栏目打开数据库,看到{pre}_admin_action表,新增两行数据。如下图 截图中第1列数据是action_id,是该表的自增主键。第2列数据是parent_id,来自上级的action_id。第3列数据就是step3中定义的权限名(键)。这样的话,两种权限就联系起来了。到这里,打开后台“管理员列表”,点击“分派权限”的图标,便可以看到step3示图所示权限了。用某后台用户勾选提交,该用户登陆后就能看到新增的菜单项了。
2015年6月11日
20945 阅读
0 评论
Ecshop教程
2015-6-11
Ecshop一些比较常用的标签函数分享
限制某个参数调用的数量: <!-- {if $smarty.foreach.参数.index lt 数量}-->代码<!-- {/if} --> 控制当某个参数少于多少时的显示方式: <!-- {if $smarty.foreach.参数.iteration<数量}-->代码<!-- {/if} --> 以上的参数函数如下(提供部分): 排行榜:top_goods 热门商品:hot_goods 精品推荐:best_goods 新品上市:new_goods 分类商品:cat_goods 最新文章:new_articles 举例: <!-- {foreach name=top_goods from=$top_goods item=goods}--> <!-- {if $smarty.foreach.top_goods.iteration<3}--><ul class="topcp_tp"><li><a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}" class="samllimg" /></a></li></ul><!-- {/if} --> <!-- {if $smarty.foreach.top_goods.iteration>3}--><ul class="topcp_wz"><li><a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name}</a></li></ul><!-- {/if} --> <!-- {/foreach} -->
2015年6月11日
20401 阅读
0 评论
Ecshop教程
2015-6-6
谈草根站长的钱途问题?
www.vprol.com
2015年6月6日
7918 阅读
4 评论
广告投放
1
2