ECshop中TemplateBeginEditable 和后台编辑讲解
在ecshop的dwt文件里面经常发现有“<!-- TemplateBeginEditable name="doctitle" -->和<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->”这么一段代码,有很多朋友误认为只是注释用的,这里首先来介绍一下#BeginLibraryItem这段代码。可以看到后面有“page_header.lbi“这个.lbi文件是一个库文件,打开后发现里面就是一些html代码,index.dwt为模板,那么这个.lbi可以理解为模板index.dwt的子模板,.lbi专门供别的的dwt模板导入的子模板. 那么 TemplateBeginEditable这个又是干什么用的呢? 很多人知道这个是可编辑区域的意思,意思就是在TemplateBeginEditable 和 TemplateEndEditable之间的位置是可编辑区域,具体的我们来举个例字。首先我们到ecshop 管理员后台的模板管理->设置模板里面可以看到以下这个
可以看到上面的默认选择了首页模板,假如当你将 商品分类树 选择为右边主区域 点击确定之后 清楚缓存,在刷新首页这是你会发现,原来的 商品分类树 从左边跑到右边了。在上面的下拉框中我们看到只有三个选择,右边主区域,左边主区域,广告位,如果你想多加几个选项,那么很简单,只要你在你要改的模板内多加上几个就行了,假如你要在index.dwt模板添加 “左上角主区域”,和“右下角主区域”,那么你可以在index.dwt 里面加入
<!-- TemplateBeginEditable name="左上角主区域" -->
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="右上角主区域" -->
<!-- TemplateEndEditable -->
这是你再到后台,模板设置里面看首页的选项中就有这个选项
下面我来讲解一下怎么制作自己的模板, 我拿index.dwt为例, 首先在\themes\default\下将index.dwt文件拷贝一份改名为home.dwt在<body>里面加一句话 "这是自己定义的home.dwt模板" 以方便调试, 同样在根目录下的index.php文件拷贝一份改名为home.php里面加一行 echo '这是自己定义的home.php'; 代码以便调试 同时把$smarty->display('index.dwt', $cache_id);改为$smarty->display('home.dwt', $cache_id);然后 清楚缓存 在浏览器通过http://localhost/ecshop/home.php执行你会发现这个页面跟首页一样,只是多了一段 "这是自己定义的home.php 这是自己定义的home.dwt模板" 文字。 当然home.php 和home.dwt 文件里面的内容可以自己定义.
当你再到后台模板管理->设置模板 里面的 选择模板下拉框选项中没有你加的home模板,这时你就要在\admin\includes\lib_template.php里配置一下。在代码”$template_files = array('index.dwt', “ 加上你的模板”$template_files = array('home.dwt','index.dwt',“ ,告诉系统有home.dwt这么一个模板,其次在$page_libs = array( 这个二位数组里面的 'index' => array( 这个数组拷贝一份,改名为home ,意思就是告诉系统你这个home模板里面可以导入哪些.lbi文件.这点配置还不够,你还要在\languages\zh_cn\admin/template.php语言包里面加一行$_LANG['template_files']['home'] = 'Myhome模板';代码.然后你再到后台模板管理->设置模板可以看到如下结果
你会发现下拉框中多了一个Myhome模板选项,当你点击旁边的确定按钮时会报错,这是因为你还有一个xml文件没修改,打开themes\default\libs.xml文件,将 <file name="index.dwt"> 节点内的代码拷贝一份把节点名改为<file name="home.dwt">这时你再来重复上次的操作点击旁边的确定,就不会报错了。
接下来我们制作.lbi库文件
首先我们在\themes\default\library\目录下新建一个home.lbi文件 里面输入"这是我自的lbi文件"然后在\admin\includes\lib_template.php文件里面,你刚才新加的'home' => array(home数组里面 添加你的home.lbi 既在这个数组末尾加'/library/home.lbi' => 0 同样像修改模板一样在\languages\zh_cn\admin\template.php 里面加入一行 $_LANG['template_libs']['home'] = 'Myhome库文件'; 代码 这时你到后台 模板管理->库项目管理 你就会发现刚刚你加的库文件出来了。
里面代码可以自己修改
这时候你再到 模板管理->设置模板->选择Myhome模板 确定后,下面可以发现你要编辑的lbi出来了,
(责任编辑:最模板)
ECshop中TemplateBeginEditable 和后台编辑讲解的更多相关文章
- 在帝国cms中新建只具有编辑某些栏目权限的后台用户或新建编辑用户在选择栏目时不能选择问题解决方法
在帝国cms中,鉴于有些部门只允许编辑自己部门所负责栏目内的新闻.信息等,所以创建只具有某一栏目或某几个栏目的编辑权限的后台用户至关重要. 1. 点击上面导航栏中的“用户”按钮 2. 点击左侧菜单中的 ...
- ectouch第十讲 之ecshop中 dwt, lbi 文件详解
原文:http://www.yunmoban.cn/article-241.html Ecshop包括的文件夹有admin.api.cert.data.images.includes.js. lang ...
- ECSHOP 模版文件里的编辑区域
Ecshop 中的模板能够有可编辑区域,在模板中是通过 <!-- TemplateBeginEditable name="左边区域" --> <!-- Templ ...
- Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)
这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...
- php后台编辑关联数据
数据库中两张表: info表中"民族"关联了nation表中的"code". php通过后台编辑info表中民族显示成用户可看懂及可直接修改的选项. 新建xin ...
- ActiveReports中如何在后台导出运行时绑定数据源报表
ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源 ...
- ecshop中$user对象
ecshop中$user对象 2011-10-01 18:41:23| 分类: ECSHOP | 标签:ecshop $user 对象 |举报|字号 订阅 http://blog.163.c ...
- ecshop中404错误页面设置
在ecshop系统当中,比如你随意将商品详细页面的地址中的ID修改为一个不存在的商品ID,ecshop会自动跳转到首页.ecshop在这方面做得非常的差,甚至导致了很多的站不被搜索引擎收录.最模板提供 ...
- 关于ECSHOP中sql注入漏洞修复
标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...
随机推荐
- 做IT不能一辈子只靠技术生存
在中国你千万不要以为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事市场开发,跑腿的人,没有前途. 不知你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜 ...
- 使用mysql 的docker
sudo docker run --name phpmyAdmin3 --link some-mysql:mysql -d phpmyadmin/phpmyadmin:latest -p 8080:8 ...
- ios之无限 自动 图片轮播器的实现
比较之前发布的手动无限图片轮播器进行了改进.实现了自动无限轮播的功能.比较适合团购标题分类下面的轮播器功能. 实现思路: * 开启一个定时器,把操作放入消息循环池.每隔一定时间,操作执行一次. * 注 ...
- SHA-2 Certificate Signing Request
To request an SSL certificate is now a SHA-2 Certificate Signing Request (CSR) is required. Using th ...
- sql语句感想
select出来内容可以当成表拿来用,,比如取别名什么的. union是纵向的,追加记录(行) join on是横向的,追加列
- c#两个数据库之间进行表拷贝
- C++向量(Vector)
向量Vector: 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器. 与string相同, vector 同属于STL(Standard Template L ...
- ofbiz进击 第六节。 --OFBiz配置之[widget.properties] 配置属性的分析
配置内容分析如下 # -- 定义上下文使用者 -- security.context =default # -- 定义密码限制长度最小值 -- password.length.min =5 # -- ...
- bzoj 4358 permu
比较容易想到莫队算法+线段树,但是这样时间复杂度是O(nsqrtnlogn)无法通过,考虑如果不进行删除操作,只有添加操作的话那么并查集就可以实现了,于是可以设定sqrtn块,每个块范围为(i-1)* ...
- swt byte[] 与 Image的转换
1. 从byte[]得到Image private static Image createImage(byte[] imageBytes) { Image image = null; try { By ...