dede列表页添加自定义联动
- 格式:doc
- 大小:42.50 KB
- 文档页数:6
织梦添加和调用自定义字段的方法织梦自定义字段要想在任何位置任何模版中调用或者在{dede:list }和{dede:arclist }标签中调用,需要特殊设置。
自定义字段就是列表附加字段自定义的字段。
一,织梦如何添加自定义字段:网站后台》核心》频道模型》内容模型管理》选择要添加自定义字段的频道模型,这里以图片集频道举例注意:创建字段,前台参数这里“使字段可以在列表的底层模板中获得”这个必须勾选在字段管理》添加新字段中添加(价格属性)在基本设置里》列表附加字段中添加jiage(可以在列表模板{dede:list}{/dede:list}中用[field:name /]调用)二,织梦如何调用自定义字段:1、在{dede:list }中调用{dede:list pagesize='5' addfields='jiage' channelid='2'}<P>标题:[field:title/]</P><P>价格:[field:jiage/]</P>{/dede:list}说明:addfields='jiage'指定要获得的字段addfields='字段1,字段2'channelid='2'指定channelid 属性(内容模型的id值)图片模型的ID为22、在{dede:arclist }中调用{dede:arclist typeid='3' row='4' addfields='jiage' channelid='2' } <P>标题:[field:title/]</P><P>价格:[field:jiage/]</P>{/dede:arclist}3、单独调用价格:{dede:field name='jiage'/}。
dede5.6在列表页调用tag的方法在使用DedeCMs的时候,设计模版的过程中,处于SEO的考虑,难免要到处调用系统内的关键词.然而DedeCMS里面tag的调用只有全部和当前页这两种方式.那么在分类列表页的时候,tag如何调用呢?是用全部还是当前页?显然全部的话和分类信息又有些不着调,如果用当前页的话,没有文章id,你也调不出东西来.难道这就没辙了吗?我们打开DedeCMS的数据库,看见库中的dede_taglist表的结构如下:方法1:在列表需要的地方加下列代码:[field:id runphp=yes]$tsql = new DedeSql(false);$tags = '';$tsql->SetQuery("Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid='@me'");$tsql->Execute('t');while($row = $tsql->GetArray('t',MYSQL_ASSOC)){$tags .= "<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>";}@me=$tags;[/field:id]方法2:在inc_functions.php文件里参加function listtag($aid){$tsql = new DedeSql(false);$tags = '';$tsql->SetQuery("Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid='@me'");$tsql->Execute('t');while($row = $tsql->GetArray('t',MYSQL_ASSOC)){$tags .= "<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>";}return $tags;}然后在列表页相应地位参加[field:ID function="listtag(@me)"/]标记。
dedecms程序新建栏目自定义优化设置,则栏目跳转的网址为/chunyang/dierjuan/,如果默认页名称假设是1.html,则跳转的网址为/chunyang/dierjuan/1.html。
“链接到列表第一页”后面讲到。
接下来再看高级设置,看下图:多站点支持就是把这个栏目里面的路途都生成以你所输入的网址,如果你多站点的网址是,那么栏目的路途就会变成/chunyang/dierjuan/。
再看画红线的规则:{typedir}意思就是前面常规选项中的文件保存目录,也就是/chunyang/dierjuan,{ Y}/{M}{ D}/{ aid}.html意思是发表文章的年/月/日/文章id.html,假设2012-9-25发id为25,则这个栏目的文章路途为/chunyang/dierjuan/2012/9/25/25.html。
同样,如果设置多站点,也会变成你设置的网址。
list_{ tid}_{ page}.html的意思是list_栏目id_第几页.html,例list_1_1.html,栏目的的第一页路途就是/chunyang/dierjuan/list_1_1.html。
所以前面的链接到列表第一页的意思就是点击栏目链接直接就跳到第一页的链接上。
说完这么多该知道怎么修改使得栏目路途跟文章路途变短了吧,假设一个例子,如果把文章保存目录变成/chunyang,文章命名规则变成{ typedir}/{ aid}.html,列表命名规则变成/{ tid}_{ page}.html,那么链接就会变成(文章)/chunyang/25.html,(列表,链接到默认页,默认页为1.html)/1.html,(列表,链接到列表第一页)/1_1.html好了就这些了,自己多搞搞试试就都明白了。
本文由纨绔/分享,在a5首发,转载请保留链接,谢谢*_*文章来源于:/article-26643-1.html。
友情提供: 联动类别使用说明教程织梦在新版本V5.3中加入了一个联动类别的功能,不少人不理解这个联动类别的使用方法,本教程天涯就来介绍如何使用这个功能。
联动类别使用的地方还是比较多的,首先我们可以通过后台的[核心]-[频道模型]-[联动类别管理]查看,联动类别其定义如下:系统一种特殊的枚举数据类别,可以有系统内置或由用户管理。
系统内置的枚举用户是不可以删除的,但可以对这些数据进行添加子分类及修改。
到这里可能一些用户还是不了解什么是联动类型,下面我们举几个简单的例子。
一个最简单的联动类型是只有一级选择的类型,比如说系统内置的星座、教育程度、血型,这种类型你可以点击进去查看,其结构很简单,例如星座(star):在这个联动类别中级数为“一级选择”,就是在这个星座类别下面只有一列品级数据进行选择,我们点击进去可以查看到以下内容:这个让我们很容易联想到许多网站中设置用户资料的时候,需要用户选择星座,我们就可以通过一个下拉框进行选择:当然,上面说到的是最简单的联动类别,只有一级联动,这种一级联动就可以好比是一个下拉框,用户在选择具体数据的时候只要通过下拉框这种形式就可以对数据进行选择。
但是我们在很多联动数据中遇到不少需要二级联动的类型,例如我们在资料设置中选择“所在城市”这个类别,如下图所示这种数据类型就属于需要选择2次分类,首先选择上海市,然后列出上海市拥有的地区,然后再进行第二次选择,这就是一个二级联动的类别,我们可以通过系统后台查看联动类别中的地区来看看系统的枚举类型。
通过以上2个例子我们不难理解联动类型的概念,其实说简单了就是一种特殊的枚举数据类型,这种特殊的枚举类型运用在创建内容模型、用户资料等数据录入的页面中,其中应用在创建模型及用户自定义表单是联动类别最常用的地方,下面我们来介绍如何使用这个联动模型。
我们以创建一个“图书(book)”内容模型为例,这个模型中我们需要网站管理员(用户)提交一个图书特征的分类,我们知道以下图书特征的分类:线装书,精装书,平装书,袋装书,电子书,有声读物,盲人书下面我们就创建一个这个一级选择的枚举类型,这个类型叫图书特征(bookfeature),我们点击“新增类别组”来创建分类。
织梦DedeCMS频道页联动调用方法-电脑资料最近想把行业做一个分类,分类调用到频道页面上去,。
发现直接调用是无法实现的!那怎么才能实现呢?方法如下:行业的联动类别字段是:vocation。
为了方便大家看,我把vocation都改成:“自定义联动类别字段名”,相信大家能看的懂!第一修改: include\taglib\infolink.lib.phprequire_once(DEDEROOT.'/data/enums/infotype.php');下面添加require_once(DEDEROOT.'/data/enums/自定义联动类别字段名.php');function lib_infolink(&$ctag,&$refObj){global $dsql,$nativeplace,$infotype,$自定义联动类别字段名,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;global $em_nativeplaces,$em_infotypes,$em_自定义联动类别字段名s; //看清楚,这里后面的个S$fields = array('nativeplace'=>'','infotype'=>'','自定义联动类别字段名'=>'','typeid'=>0id, 'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'','linkea ll自定义联动类别字段名'=>'');$fields['nativeplace'] = $fields['infotype'] = $fields['自定义联动类别字段名'] = '';====================================== ======================$fields['linkalltype'] = "不限";//下面添加一行$fields['linkeall自定义联动类别字段名'] = "不限";====================================== ========================搜索 if(is_array($ctp->CTags)) 在这句上面添加//自定义联动类别字段链接if(empty($自定义联动类别字段名)){foreach($em_自定义联动类别字段名s as $eid=>$em){if($eid % 500 != 0) continue;$fields['自定义联动类别字段名'] .= " {$em}";}}else{$sontype = ( ($自定义联动类别字段名 % 500 != 0) ? $自定义联动类别字段名 : 0 );$toptype = ( ($自定义联动类别字段名 % 500 == 0) ? $自定义联动类别字段名 : ( $自定义联动类别字段名-($membertype%500) ) );$fields['自定义联动类别字段名'] = "{$em_自定义联动类别字段名s[$toptype]} ";foreach($em_自定义联动类别字段名s as $eid=>$em){if($eid < $toptype+1 || $eid > $toptype+499) continue;if($eid == $自定义联动类别字段名) {$fields['自定义联动类别字段名'] .= " {$em}";}else {$fields['自定义联动类别字段名'] .= " {$em}";}}}//以上文件修改完了!第二修改:plus\list.php 文件搜索$infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype ); 在下面添加一句:$自定义联动类别字段名= ( (empty($自定义联动类别字段名) || !is_numeric($自定义联动类别字段名)) ? 0 : $自定义联动类别字段名 );再搜索 if(!empty($infotype)) $cArr['infotype'] = $infotype; 在下面添加。
Dedecms栏目自定义字段的方法鉴于这个教程没人发过,网上搜索的人也比较多。
所以就做了个。
比如我要添加:栏目图片,和栏目关键字等。
随便你吧。
好。
我们现在开始做。
第一我们要进去mysql 数据库里添加字段,自己命名好!比如我下面添加了一个栏目搜索关键字字段,当然你字段可以自己新建,找到表dede_arctype ,这个是栏目模型的数据库表,前面是你安装的表名,新手要注意,不要问我,我找不到这个表,注意。
这里老鸟跳过然后点击图片1在点击添加字段图片2添加字段图片3到这里数据库字段添加好了。
接下来我们开始做后台。
大家写找到后台栏目管理模版!要更改的 2个 D:\www\dede\templets 模版:catalog_add.htm、catalog_edit.htm下面就演示一个图片4然后添加字段表单,这个一般大家都会的我添加的代码是:<tr><td height="65">栏目搜索关键字:</td><td> <textarea name="lanmukeywrod" cols="70" rows="4"id="lanmukeywrod" class="alltxt" ><?php echo$myrow['lanmukeywrod']?></textarea></td></tr>这里大家注意了。
表单的name 和id 要和添加的 mysql表字段一样,不应的话。
还要多写个取值代码。
一样的话。
默认dedecms会自动取的,然后我们做最后一部,把数据添加进去。
大家找到: D:\www\dede\catalog_edit.php 目录可能和大家不一样也就是后台里面的 catalog_edit.php,catalog_add.php catalog_edit.php要改的地方有: 38行$upquery = "Update `dede_arctype` setissend='$issend',sortrank='$sortrank',typename='$typename',typedir='$typedir',isdefault='$isdefault',defaultname='$defaultname',issend='$issend',ishidden='$ishidden',channeltype='$channeltype',tempindex='$tempindex',templist='$templist',temparticle='$temparticle',namerule='$namerule',namerule2='$namerule2',ispart='$ispart',corank='$corank',description='$description',keywords='$keywords',moresite='$moresite',`cross`='$cross',`content`='$content',`crossid`='$crossid',`smalltypes`='$smalltypes'$uptopsqlwhere id='$id' ";sql语句里面添加我们刚才的字段进去。
织梦DedeCMS添加自定义属性
转自:/a/DEDEjiaocheng/185.html
我今天主要说如何添加自定义属性,如果增加使用织梦DedeCMS的人,肯定知道自定义属性是啥,他主要用来设置推荐文章,对标题加粗,设置跳转这些功能,并且这些自定义属性还可以组合使用,但是如果站点比较大的时候,这些自定义属性怕是就不够用了,但DedeCMS又没有添加自定义属性的功能,让我们很无奈。
我添加一天的研究,读源代码,看数据库结构,终于打开了方法,但是需要修改数据库:第一步:打开dede_archives表,修改表字段flag 这个字段是set类型的,我们可以增加值,并且必须是与之前不重复的单字母,比如我这里设置的e (我使用工具的是Navicat for MySQL,其它工具方法类似)
第二步:打开dede_arcatt表,添加记录att就是之前设置的字母,attname就是提示文字
OK,完成。
刷新后台就有增加的自定义属性了
转自:/a/DEDEjiaocheng/185.html。
dedecms中实现列表页面调用其它栏目的信息Posted on June 4th, 2008 by 肥龙龙 | 1,718 views群里有人问如何在dedecms中实现列表页面调用不同栏目的文章信息,以下给出解决方法,针对dedecms4.0。
首先,为dedecma增加一个标签的属性,我修改的标签为【List 标记】增加属性addonid,使用方法为:addonid= ‘调用的栏目编号’,不同的栏目请用半角“,”的分隔,这些栏目必须是最终列表栏目,同时不必在这个栏目编号中增加本栏目的编号。
例子:{dede:list pagesize=’2′ addonid=’1,2′} {/dede:list}继续修改include/inc_arclist_view.php,这个比较麻烦,不会的话,直接拷贝粘贴。
第一步,新增$addonid变量,如下:class ListView{var $dsql;var $dtp;var $dtp2;var $TypeID;var $TypeLink;var $PageNo;var $TotalPage;var $TotalResult;var $PageSize;var $ChannelUnit;var $ListType;var $Fields;var $PartView;var $StartTime;var $addonid; //这里为新增的变量……第二步:获得模板中的addonid的值,并且统计文章总数,修改function CountRecord()函数:原本代码为://——————//统计列表里的记录//——————function CountRecord(){global $cfg_list_son;//统计数据库记录$this->TotalResult = -1;if(isset($GLOBALS[’TotalResult’])) $this->TotalResult = $GLOBALS[’TotalResult’];if(isset($GLOBALS[’PageNo’])) $this->PageNo = $GLOBALS[’PageNo’];else $this->PageNo = 1;if($this->T otalResult==-1){$addSql = ” arcrank > -1 “;if($cfg_list_son==’否’) $addSql .= ” And (typeid=’”.$this->TypeID.”‘ or typeid2=’”.$this->TypeID.”‘) “;else $addSql .= ” And (”.$this->TypeLink->GetSunID($this->TypeID,”#@__archives”, $this->Fields[’channeltype’]).” Or #@__archives.typeid2=’”.$this->TypeID.”‘) “;if($this->StartTime>0) $addSql .= ” And senddate>’”.$this->StartTime.”‘”;$cquery = “Select count(*) as dd From #@__a rchives where $addSql”;$row = $this->dsql->GetOne($cquery);if(is_array($row)) $this->TotalResult = $row[’dd’];else $this->TotalResult = 0;}//初始化列表模板,并统计页面总数$tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$this->TypeLink->TypeInf os[’templist’];$tempfile = str_replace(”{tid}”,$this->TypeID,$tempfile);$tempfile = str_replace(”{cid}”,$this->ChannelUnit->ChannelInfos[’nid’] ,$tempfile);if(!file_exists($tempfile)){$tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$GLOBALS[’cfg_df_style’].”/list_default.htm”;}if(!file_exists($tempfile)||!is_file($tempfile)){echo “模板文件:’”.$tempfile.”‘ 不存在,无法解析文档!”;exit();}$this->dtp->LoadT emplate($tempfile);$ctag = $this->dtp->GetTag(”page”);if(!is_object($ctag)){ $ctag = $this->dtp->GetTag(”list”); } if(!is_object($ctag)) $this->PageSize = 20;else{if($ctag->GetAtt(”pagesize”)!=”") $this->PageSize = $ctag->GetAtt(”pagesize”);else $this->PageSize = 20;}$this->TotalPage = ceil($this->T otalResult/$this->PageSize);}修改为://——————//统计列表里的记录//——————function CountRecord(){global $cfg_list_son;//初始化列表模板,并统计页面总数$tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$this->TypeLink->TypeInfos[’templist’];$tempfile = str_replace(”{tid}”,$this->TypeID,$tempfile);$tempfile = str_replace(”{cid}”,$this->ChannelUnit->ChannelInfos[’nid’] ,$tempfile);if(!file_exists($tempfile)){$tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$GLOBALS[’cfg_df_style’].”/list_default.htm”;}if(!file_exists($tempfile)||!is_file($tempfile)){echo “模板文件:’”.$tempfile.”‘ 不存在,无法解析文档!”;exit();}$this->dtp->LoadT emplate($tempfile);$ctag = $this->dtp->GetTag(”page”);if(!is_object($ctag)){ $ctag = $this->dtp->GetTag(”list”); } if($ctag->GetAtt(”addonid”)!=”") $this->addonid = $ctag->GetAtt(”addonid”);if(!is_object($ctag)) $this->PageSize = 20;else{if($ctag->GetAtt(”pagesize”)!=”") {$this->PageSize = $ctag->GetAtt(”pagesize”);}else $this->PageSize = 20;}//统计数据库记录$this->TotalResult = -1;if(isset($GLOBA LS[’TotalResult’])) $this->TotalResult = $GLOBALS[’TotalResult’];if(isset($GLOBALS[’PageNo’])) $this->PageNo = $GLOBALS[’PageNo’];else $this->PageNo = 1;if($this->T otalResult==-1){$addSql = ” arcrank > -1 “;if($this->addonid!=”") $isaddon = ” Or #@__archives.typeid in (”.$this->addonid.”)”;else $isaddon = “”;if($cfg_list_son==’否’) $addSql .= ” And (typeid=’”.$this->TypeID.”‘ or typeid2=’”.$this->TypeID.”‘ “.$isaddon.”) “;else $addSql .= ” And (”.$this->TypeLink->GetSunID($this->TypeID,”#@__archives”, $this->Fields[’channeltype’]).” Or #@__archives.typeid2=’”.$this->TypeID.”‘ “.$isaddon.”) “;if($this->StartTime>0) $addSql .= ” And senddate>’”.$this->StartTime.”‘”;$cquery = “Select count(*) as dd From #@__archives where $addSql”;$row = $this->dsql->GetOne($cquery);if(is_array($row)) $this->TotalResult = $row[’dd’];else $this->TotalResult = 0;}$this->TotalPage = ceil($this->T otalResult/$this->PageSize);}说明,首先把统计数据库记录这部分代码后移,目的是为了利用获得的属性参数addonid,接着通过$this->addonid = $ctag->GetAtt(”addonid”);获得模板中的addonid的值,然后生成新的统计数据库的sql语句。
织梦dedecms搜索页面调用自定义字段的方法织梦dedecms搜索页面调用自定义字段的方法。
在做给一个客户做软件下载的时候,做到搜索页要调用软件大小、星级等字段,怎么也调用不出来附加表的字段。
打开include/extend.func.php 这个文件,在文件末尾添加如下代码:function Search_addfields($id,$result){global $dsql;$mnkj = $dsql->GetOne("SELECT * FROM `dede_addsoft` where aid='$id'");$name=$mnkj[$result];return $name;}其中addosoft是要调用自定义字段的附加表,在织梦后台核心->频道模型->内容模型管理可以看到,软件模型一般是addoshop,普通文章一般是addonarticle,这个需要根据具体的情况来更改,其他的不用修改。
然后打开include/arc.searchview.class.php 这个文件,搜索“ //处理一些特殊字段”,在下面添加如下代码:$row["softsize"]=Search_addfields($row["id"],"softsize");其中softsize是软件大小的名称,如果有多个自定义字段这添加多行,但是一定要把softsize修改下。
添加之后就完成了最后一步就是在搜索模板也调用了,在search.htm中使用[field:softsize/] 就可以调用出来了,其中softsize是软件大小的字段。
如果你的数据表前缀不是dede_,适当调整dede_addsoft里的"dede_"。
本文实例讲述了dedecms列表页上一页下一页翻页单独调用的方法。
分享给大家供大家参考。
具体实现方法如下:在列表页单独调用上一页和下一页,以及首页,简单搞了一下,仅作上下翻页,主页类似,可自行添加。
在模板中以复制代码代码如下:{dede:pagelist listitem=up/}{dede:pagelist listitem=down/}来调用。
修改办法如下:在include\arc.listview.class.php找到:复制代码代码如下:/获得上一页和主页的链接if($this->pageno != 1){$prepage.=<</b>li>上一页\r\n;$indexpage=<</b>li>首页\r\n;$uppage.=<</b>a href='.str_replace({page},$prepagenum,$tnamerule).'>上一页\r\n;}else{$indexpage=<</b>li>首页\r\n;$uppage.=<</b>a>没有了<</b>/a>\r\n;} </p> <p>//下一页,未页的链接if($this->pageno!=$totalpage && $totalpage>1){$nextpage.=<</b>li><</b>a href='.str_replace({page},$nextpagenum,$tnamerule).'>下一页\r\n;$endpage=<</b>li><</b>a href='.str_replace({page},$totalpage,$tnamerule).'>末页\r\n; </p> <p>$downpage.=<</b>a href='.str_replace({page},$nextpagenum,$tnamerule).'>下一页\r\n;}else{$endpage=<</b>li>末页\r\n;$downpage.=<</b>a>没有了\r\n;}然后:复制代码代码如下:$plist = '';if(preg_match('/up/i', $listitem)) $plist .= $uppage;if(preg_match('/down/i', $listitem)) $plist .= $downpage;if(preg_match('/index/i', $listitem)) $plist .= $indexpage; if(preg_match('/pre/i', $listitem)) $plist .= $prepage;if(preg_match('/pageno/i', $listitem)) $plist .= $listdd;if(preg_match('/next/i', $listitem)) $plist .= $nextpage; if(preg_match('/end/i', $listitem)) $plist .= $endpage;if(preg_match('/option/i', $listitem)) $plist .= $optionlist; if(preg_match('/info/i', $listitem)) $plist .= $maininfo; 希望本文所述对大家的dedecms建站有所帮助。
DEDE内页或列表常用调用标签,DEDE调用相关内容标签DEDE调用当前栏目的相关内容标签:(标签如下)Dede教程<div><dl><dt><strong>相关文章</strong></dt><dd><ul>{dede:likearticle col='2' row='10' titlelen='42'}<li><a href="[field:arcurl/]">[field:title/]</a></li>{/dede:likearticle}</ul></dd></dl></div>释义:col='2' (表示分为两列显示)row='10' (表示调用10条主题)titlelen='42' (表示调用主题的标题的文字长度为42)DEDE调用整站所有栏目的相关内容标签:(标签如下)<div><dl><dt><strong>相关文章</strong></dt><dd><ul>{dede:likearticle typeid='1,2,3,4,5' col='2' row='10' titlelen='42'}<li><a href="[field:arcurl/]">[field:title/]</a></li>{/dede:likearticle}</ul></dd></dl></div>释义:typeid='1,2,3,4,5' (表示调用栏目ID为1,2,3,4,5当中所有相关内容)col='2' (表示分为两列显示)DEDE技术吧row='10' (表示调用10条主题)titlelen='42' (表示调用主题的标题的文字长度为42)注:如果你栏目过多,请分别把栏目ID编号按我上面的格式用" , "隔开填写.这样就可以方便直接的调用到所有站内的相关内容.如果你不知道怎么查看栏目ID的话,请看下图:以上框红的部分就是各个栏目所对应的栏目ID编号了.帖子信息:DEDE技术吧 | 分类:Dede教程 | 本文地址:/75.html。
dede自定义模型使用教程在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。
通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。
当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点,本篇将讲述如何使用系统的自定义模型管理功能来实现内容模型的构建。
我们首先登录系统后台,点击[核心]-[内容模型管理],进入内容模型管理界面,如下图所示:这里我们介绍几个相关参数的概念:•ID号用于区分模型的唯一ID,一般常规模型的ID都是大于0的,比如普通文章、软件等,如果使用了单表模型,ID一般需要小于-1,例如这里的分类信息模型;•频道名称用于识别频道类型的标识;•识别id系统用于识别的id,这个关系到模板方面;•附加表系统内容附加表项;•模型类型分为系统类型和自动类型,系统类型为固化在系统中的内容模型,自动类型为用户可创建的内容模型类型;接下来我们开始介绍如何使用自定义模型管理来创建一个自己的模型,并且用于建设不同内容类型的网站中去。
这里我们介绍一些周边的内容,几个要用到的概念:•字段在数据库中,表的列称为字段,织梦系统也是如此,但更恰当的说法,存储某个内容信息单元,称为字段,例如标题、来源、作者等都是一个字段;•内容系统主表程序将一些公用字段存储在系统主表dede_archives,例如:标题、关键词、缩略图等,主表具体字段可以查询织梦帮助中心()的有关二次开发手册数据表部分的内容;•附加表不同内容模型对应不同的附加表,通常以dede_addon[识别ID]命名,附加表中存放的都是详细内容的相关字段(非公用),例如:文章内容(dede_addonarticle)、软件类型(dede_addonsoft)、图片集合(dede_addonimage)等;•单表独立模型存储时候不用到“主表+附加表”的结构形式,直接使用单个数据表进行存储内容数据,这样脱离主从表,减少主表数据服在开销,可以从很大程度上解决数据负载问题;明白了以上几个概念我们可以来学习如何来自己创建一个内容模型了。
DEDECMS 第三节 搜索页调用 arclist 及自定义主页一、DEDECMS 织梦搜索页调用 arclist 标签的方法打开 include/arc.searchview.class.php查找:require_once(DEDEINC."/taglib/hotwords.lib.php"); require_once(DEDEINC."/taglib/channel.lib.php");在下面加入:require_once(DEDEINC."/taglib/arclist.lib.php"); require_once(DEDEINC."/taglib/channelartlist.lib.php");找到:else if($tagname=="hotwords") { $this->dtp->Assign($tagid,lib_hotwords($ctag,$this)); }在下面插入:else if($tagname=="arclist") { $this->dtp->Assign($tagid,lib_arclist($ctag,$this));} else if($tagname=="channelartlist") { $this->dtp->Assign($tagid,lib_channelartlist($ctag,$this)); }这样就可在 dedecms 织梦搜索页面使用 arclist 和 channelartlist 标签调用数据了。
此操作无需生成,预览效果即可,如在搜索页中加入: {dede:arclist typeid="1" titlelen=42 row=6}<li><a href="[field:arcurl/]">[field:title/]</a> <p>[field:description function='cn_substr(@me,80)'/]...</p> </li> {/dede:arclist} 即可调用 ID 为 1 的表中的信息,如果没有 typeid="1",则调用所有表中的信息 二.自定义主页,主要代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset={dede:global.cfg_soft_lang/}" /> <title>{dede:global.cfg_webname/}</title> <meta name="description" content="{dede:global.cfg_description/}" /> <meta name="keywords" content="{dede:global.cfg_keywords/}" /> <link href="{dede:global.cfg_templets_skin/}/style/css.css" rel="stylesheet" media="screen"type="text/css" /></head> <body> <div id="header"> <img src="{dede:global.cfg_templets_skin/}/images/logo.gif" width="250" height="84" /> <div id="nav"> <ul> <li><a href='{dede:global.cfg_cmsurl/}/'><span>网站主页</span></a></li> {dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~'~rel~><span>~typename~</span></a></li>"} <li><a href='[field:typeurl/]' [field:rel/]><span>[field:typename/]</span></a></li> {/dede:channel} <div class="cls"></div> </ul> </div> </div> <div id="content">fff</div> <div id="footer">sssss</div> </body> </html>。