destoon分类调用 如何用两中循环调用同一个模块分类,不出现重复

destoon(18)
&if($catid) {
if($CAT['parentid']) {
$seo_catname = '';
$tmp = strip_tags(cat_pos($CAT, 'DESTOON'));
$tmp = explode('DESTOON', $tmp);
$tmp = array_reverse($tmp);
foreach($tmp as $k=&$v) {
$seo_catname .= $v.$seo_
$seo_catname .= $tmp[0];
//$seo_catname = $CAT['catname'].$seo_
$seo_catname = $CAT['catname'];
$seo_cattitle = $CAT['seo_title'] ? $CAT['seo_title'].$seo_delimiter : $seo_
$seo_catkeywords = $CAT['seo_keywords'] ? $CAT['seo_keywords'] : '';
$seo_catdescription = $CAT['seo_description'] ? $CAT['seo_description'] : '';
}上面文件在seo.inc.php中
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:264867次
积分:4072
积分:4072
排名:第4698名
原创:143篇
转载:31篇
评论:25条
(1)(3)(1)(1)(3)(7)(5)(4)(5)(9)(10)(7)(15)(6)(1)(1)(1)(2)(2)(3)(1)(4)(7)(20)(16)(25)(13)(1)(1)当前位置:&>&&>&
destoon怎么复制新模块?destoon新模块复制方法
发布时间:编辑:
destoon复制新模块,destoon怎么复制新模块,如何复制已有模块来根据已有模块建立新的模块,本文介绍了实现方法,有需要的朋友参考下。
在destoon使用中需要根据情况建立一些系统没有的模块,则需要复制已有的模块来根据已有模块建立新的模块。
具体操作方法:
首先,选择一个模块(因为系统默认文章和信息模块是可以复制的,在这里只研究非默认的模块怎么复制),我选择的是模块名称是品牌,目录名是brand,模块ID是13,也可以根据需要选择要复制的模块。
第一步,复制根目录下的brand这个文件夹,粘贴然后重命名,这里用rename命名作为示范。
根目录下多了一个名称为rename的文件夹,打开这个文件夹,找到config.inc.php这个文件,打开:
复制代码 代码示例:
$moduleid = 13;
把这里的13改成一个你现在模块ID里没有的数字,我们用88代替它作为示范。
第二步,找到根目录下/module这个文件夹打开,复制里面的brand文件夹,粘贴后重命名为rename,打开这个新文件夹内的admin/config.inc.php这个文件,里面的文件是这样的(为方便理解,此处增加了注释)
复制代码 代码示例:
defined(&IN_DESTOON') or exit(&Access Denied');
$MCFG['module'] = &brand';//这里改为 &rename';
$MCFG['name'] = &品牌';//这里改为你的新模块名比如: &新模块';
$MCFG['author'] = &';
$MCFG['homepage'] = &';
$MCFG['copy'] =//这里改为
$MCFG['uninstall'] =
$MCFG['moduleid'] = 13;//这里改为88;
$RT = array();
$RT['file']['index'] = &品牌管理';
$RT['file']['html'] = &更新网页';
$RT['action']['index']['add'] = &添加品牌';
$RT['action']['index']['edit'] = &修改品牌';
$RT['action']['index']['delete'] = &删除品牌';
$RT['action']['index']['check'] = &审核品牌';
$RT['action']['index']['expire'] = &过期品牌';
$RT['action']['index']['reject'] = &未通过品牌';
$RT['action']['index']['recycle'] = &';
$RT['action']['index']['move'] = &移动品牌';
$RT['action']['index']['level'] = &品牌级别';
将这里的品牌,()全部替换为你的新模块名比如:'新模块',并根据注释做相应修改后保存,然后打开同级目录内的html.inc.php这个文件在大概65和66行找到
复制代码 代码示例:
if($update) {
MD_ROOT.'/brand.class.php';
$do = new brand($moduleid);
把两个brand替换为rename后保存,再打开同级目录内的index.inc.php这个文件,在大概在第三行找到:
复制代码 代码示例:
require MD_ROOT.'/brand.class.php';
$do = new brand($moduleid);
同样把这两个brand替换为rename后保存,OK,找到上级目录(根目录/module/rename)的my.inc.php这个文件,用编辑器的替换功能把所有brand替换为rename后保存,再打开同级目录下的brand.class.php这个文件,同样用编辑器的替换功能把所有brand替换为rename后另存为(注意是另存为)rename.class.php。
第三步,找到你的模板路径(默认为根目录/template/default)复制brand文件夹粘贴后重命名为rename,再打开同级目录下的member文件夹找到my_brand.htm这个文件,复制粘贴后重命名为my_rename.htm。
做完以上三步,我们的复制模块之路的代码方面就基本完成了,接下来就是复制了,找到数据库中destoon_brand和destoon_brand_data这两张表,复制后重命名为destoon_rename和destoon_rename_data,(如果数据库在运行中,可能需要暂停后执行以上操作)
完成之后登录后台,在 我的面板-》模块管理 里面选择添加模块,然后填入模块名称如: &新模块&,在所属模型这个下拉选项中你会发现多出来一个名为&新模块&的选项,选中它,在安装目录里填上rename,点确定。然后去功能模块中看,是否已经多出来一个名为 &新模块&的功能模块?如果出现,说明你刚刚的操作没有问题,恭喜你模块已经添加完成了。但是你沉浸在喜悦之中急切的想在新模块中添加数据的时候发现页面是空白的,这是为什么呢?原因就在于在模块设置里面有个信息排序方式,在这里随便选择一个,顺便把下面的列表或搜索主字段也填填吧,填完之后点确定,再去试一试添加是不是就可以使用了?
实际使用过程中还会遇到一个问题,就是添加的这个模块在会员中心使用的时候提示没有权限,请升级,去看了后台会员组权限发布信息的权限已经做了勾选,为什么还提示权限不够呢?解决方法是,找到根目录/module/member/admin/template/group_edit.tpl.php这个文件,在大概762行找到如下代码
复制代码 代码示例:
&td class=&tl&&发布下载总数限制&/td&
&input type=&text& name=&setting[down_limit]& size=&5&P value=&&?php echo $down_?&&/&
&td class=&tl&&免费发布新模块数量&/td&
&input type=&text& name=&setting[down_free_limit]& size=&5&P value=&&?php echo $down_free_?&&/&
复制代码 代码示例:
&td class=&tl&&发布新模块总数限制&/td&
&input type=&text& name=&setting[rename_limit]& size=&5&P value=&&?php echo $rename_?&&/&
&td class=&tl&&免费发布下载数量&/td&
&input type=&text& name=&setting[rename_free_limit]& size=&5&P value=&&?php echo $rename_free_?&&/&
将以上代码放在前面找到的那段代码下面,保存后刷新,再去设置中查看,最下面多出来两个需要填写的输入框,填进相关数字,点确定。
到这里会员就可以使用新模块了。
推荐阅读:
与 destoon怎么复制新模块?destoon新模块复制方法 有关的文章
本文标题:
本页链接:
12345678910
12345678910destoon新添加模块,请问如何增加分类?_百度知道
destoon新添加模块,请问如何增加分类?
?谢谢好像新增的模块在功能模块 ,请问这样的情况下如何增加分类?
我有更好的答案
新建模块 模块设置 基本设置首页默认模板 默认模板
[新建] 列表默认模板 默认模板
[新建] 内容默认模板 默认模板
[新建] 搜索默认模板 默认模板
在后台左侧功能模块 你新加的模块里有 分类管理
我添加新模块,但都调用同一个模板,怎么修改呀?
其他类似问题
为您推荐:
destoon的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Destoon B2B标签(tag)调用手册 - 帮助文档 - Destoon B2B网站管理系统
您的位置: &
Destoon B2B标签(tag)调用手册
什么是标签调用?
标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,最终通过标签模板的布局输出数据。
可以看出,标签的工作分两个部分,一是读取数据,二是显示数据。
标签函数原型
标签函数保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter 表示传递给tag函数的字符串,系统自动将其转换为多个变量。
例如传递 table=destoon&pagesize=10&hello=world
系统相当于得到:
$table = 'destoon';
$pagesize = 10;
$hello = 'world';
$expires 表示标签缓存过期时间
缓存$expires秒;0 - 系统默认标签缓存时间;-1 - 不缓存;-2 - 缓存SQL结果;
一般情况保持默认不需要传递。
数据读取过程
例如以下标签:
&!--{tag("moduleid=5&condition=status=3&order=addtime desc&pagesize=10")}--&
会被转换为如下的SQL语句:
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10
读出的数据会保存在 $tags 数组里
通常情况下不需要写table=xxx,应该写moduleid=模块ID,系统会自动对应模块的表
数据显示过程
1、通过标签模板显示
传递&template=abc给标签函数,例如:
&!--{tag("moduleid=...&template=abc")}--&
默认的标签模板保存在模板目录/tag/目录里,例如&template=abc将调用模板目录/tag/abc.htm模板来显示数据。
如果标签模板存放于其他目录,例如def,则传递&dir=def&template=abc,系统将调用模板目录/def/abc.htm模板。
2、直接在模板里循环数据
&!--{php $tags=tag("moduleid=...&template=null");}--&
此写法传递标签模板为null,并且直接返回数据给$tags数组,此时可以直接在模板里循环了。
以下为一个完整的示例:
&!--{php $tags=tag("moduleid=...&template=null");}--&
{loop $tags $t}
第一种写法一般用于多次调用的数据,第二种写法一般用于只调用一次的数据。
常用参数及含义
moduleid指模块ID,可在后台模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递table参数,系统会自动获取。
例如传递moduleid=5,系统将识别为调用供应信息,自动设置table参数为sell。
一般情况下,除了扩展模块里的功能都需要通过moduleid来调用。
table指表名,可在后台数据库维护里查询。对于Destoon系统表,不需要加表的前缀;对于非Destoon系统表,需要填写完整的表名,且传递prefix参数。
例如对于Destoon系统表,传递table=announce,如果表前缀为destoon_,系统将识别表名为 destoon_announce。
对于非Destoon系统表,传递table=tb_abc&prefix=或者table=abc&prefix=tb_,系统将识别表名为 tb_abc。
fields指查询的字段,默认为*。可以传递例如 fields=title,addtime,但是一般情况下无需传递,Destoon独有的标签缓存机制会自动缓存查询结果,不必担心效率问题。
condition指查询的条件,如果不传递,则为1,代表任意条件的数据(此项需了解SQL语法)。Destoon所有模块遵循统一标准开发,所以很多条件是通用的。
例如 status=3表示正常通过的信息、status=3 and level=1表示级别为1的信息、status=3 and thumb''表示有标题图片的信息等。
order指数据的排序方法(此项需了解SQL语法)。
例如order=addtime desc表示按添加时间降序排列、order=itemid desc表示按itemid降序排列、order=rand()表示随机数据等。
pagesize指调用数据的数量,如果不传递,默认为10。
template指指定的标签模板,如果不传递,默认为list,位于模板目录/tag/list.htm,如果传递为null,表示不应用标签模板。参见上述数据显示过程。
debug参数用于调试标签,例如传递&debug=1,系统将输出标签构造成的SQL语句,以便验证标签写法是否正确,不需要调试的标签不用加此参数。
其他常见用法举例
&和and的区别
&用来分割参数,and是sql语句where后的读取条件,二者完全不同。
多表联合查询
例如查询会员名为destoon的会员和公司资料,可以使用:
{tag("table=destoon_member m,destoon_company c&prefix=&condition=m.userid=c.userid and m.username='destoon'&template=list-com")}
destoon_member和destoon_company是表的实际名称(包含表前缀),prefix=表示系统不再自动在表名前加前缀。
通常通过传递moduleid可以实现大部分的调用,除非您确认熟悉联合查询,否则不推荐使用。
截至目前,系统默认模板里还没有一个功能需要用到联合查询。
控制标题长度
在标签里传递length参数,例如&length=20表示20个字符长度(一个汉字占2个字符),一般情况建议用css隐藏多余字符(定义height和overflow:hidden)。
传递length参数,系统仅对title字段自动截取,如果需要截取其他字段,可用dsubstr函数。
例如 {dsubstr($t[company], 20, '...')} 表示截取company字段为20个字符,截取后,结尾追加...
设置日期显示格式
可以在标签里传递datetype参数:
1 表示 年;
2 表示 月-日;
3 表示 年-月-日;
4 表示 月-日 时:分;
5 表示 年-月-日 时:分;
6 表示 年-月-日 时:分:秒
也可以在模板里直接使用date函数,例如{date('Y-m-d', $t[addtime])} 表示将时间转换为 年-月-日 格式
date函数的使用请参阅PHP手册。
调用某一分类的信息
在标签里传递catid参数,例如&catid=5表示调用分类ID为5的所有信息。
如果调用多个分类,用逗号分隔分类ID,例如 &catid=5,6,7表示调用分类ID为5、6、7的所有信息。
分类调用默认包含子分类的信息,如果不需要包含子分类,可设置&child=0参数。
例如&catid=5&child=0表示只调用分类ID为5的信息,不包括子分类的信息。
调用某一地区的信息
调用地区信息和上述调用分类信息的方法完全相同,将其中的catid换为areaid即可。
显示信息所在分类
&a href="{$MODULE[$moduleid][linkurl]}{$CATEGORY[$t[catid]][linkurl]}"&{$CATEGORY[$t[catid]][catname]}&/a&
注意:自V4.0,以上写法将不可用,需要在标签里传递&showcat=1参数,然后在模板里写&a href="{$t[caturl]}"&{$t[catname]}&/a&
此项常用于图片的布局,可使用cols参数。
例如调用12张图片,一行显示4个,共3行,则传递&pagesize=12&cols=4
支持cols参数的标签模板限thumb-table.htm和list-table.htm
其中,thumb-table.htm显示图片列表,list-table.htm显示文字列表
如果新建支持cols的标签模板或直接循环$tags,可参考以上两个模板的写法
上述效果可以也可以通过CSS实现,无需使用表格,请自行书写
显示文章的简介
使用{$t[introduce]}变量,如果要截取字数,例如80字符,可使用{dsubstr($t[introduce], 80, '...')}
标签看似复杂难懂,实际上在理解各个参数的含义和调用流程后,您会了解到标签实际简单自由、灵活易用、功能强大。
默认模板里已提供了大量的调用范例和标签模板,可以在学习中参阅和调试。
标签调用是制作模板必备的知识,希望您能早日掌握。

我要回帖

更多关于 destoon分类调用 的文章

 

随机推荐