织梦首页和列表页怎么调用自定义字段
- 格式:doc
- 大小:13.50 KB
- 文档页数:1
dedecms织梦模板⽤array调⽤多个⾃定义字段并判断的⽅法⾸页、列表页增加多字段判断⽤[field:array runphp='yes']标签,这个标签可以获取任意字段的值。
⽐如,有两个字段分别为:tishi,leibie,先判断 tishi 这个字段是否为空,同时判断 leibie 是否是指定字符,如果条件都满⾜,就只调⽤tishi字段内容,就可以这样写(和平时⽤的@me不同,这⾥的字段按照 @me['tishi'] 如下⾯橙⾊部分)。
{dede:arclist row='5'}[field:array runphp='yes']if(@me['tishi'] !='' && @me['leibie'] == '类别1')@me='提⽰信息不为空,类别1的信息如下:' . @me['tishi'];if(@me['tishi'] !='' && @me['leibie'] == '类别2')@me='提⽰信息不为空,类别2的信息如下:' . @me['tishi'];if(@me['tishi'] !='' && @me['leibie'] == '类别3')@me='提⽰信息不为空,类别3的信息如下:' . @me['tishi'];[/field:array]{/dede:arclist}&&是逻辑且的意思,有不明⽩的可以⽹上找找相应的资料,就不重复了。
内容页增加多字段判断⽅法稍微复杂点,主要有两种⽅法,都介绍⼀下吧,使⽤{dede:field.xx}写php调⽤{dede:php}$GLOBALS['tishi']=$arc->Fields['tishi']{/dede:php} <!--把tishi字段放到数组-->{dede:field.leibie runphp="yes"}if(@me=='类别1' && $GLOBALS['tishi']!='')@me = "提⽰信息不为空,类别1的信息如下:".$GLOBALS['tishi'];elseif(@me=='类别2' && $GLOBALS['tishi']!='')@me = "提⽰信息不为空,类别2的信息如下:".$GLOBALS['tishi'];elseif(@me=='类别3' && $GLOBALS['tishi']!='')@me = "提⽰信息不为空,类别3的信息如下:".$GLOBALS['tishi'];else @me='⽆';{/dede:field.leibie}使⽤{dede:field name='array'}写php调⽤这个⽅法和⾸页、列表的相似。
今天的项目中遇到一个问题:在内容模型字段中我已经选择了“使字段可以在列表的底层模板中获得”但这一个也只是在DEDE:LIST中调用可以,同时也试过CMS的addfields 这个属性,也没起作用。
像是这样在首页中调用一些自定义字段就是调用不出来。
通过测试找到了问题的解决方法。
这里说明一下以便有遇到此问题的人参考一下:arclist标签调用附加表字段不再以频道模型指定的字段为依据,调用时需注意下面两个问题:
1、必须指定channelid (内容频道id)
这句的意思是你是在那个模型上创建的字段,比如你在【普通文章】或【商品】模型上增加了1个字段flvurl,在【内容模型管理】中,【普通文章】模型或【商品】模型的ID是【1】或【6】
2、直接在标记指定要调用的字段(可以在内容提模型管理中看这些字段名)
示例如下:
复制代码代码如下:{dede:arclist addfields='language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /] - [field:language /]
{/dede:arclist}
这里假设,你的字段就是在普通文章模型里,那么它的ID值是1,这里的channelid指定值为1(既【内容模型管理】中,【普通文章】模型的ID值),而不是栏目分类的ID。
这个可千万要注意。
更多信息请查看IT技术专栏。
织梦文章调用
在织梦(DedeCMS)系统中,文章可以通过以下方式进行调用:使用标签调用文章:在DedeCMS中,你可以使用标签来调用文章。
常用的标签有:{dede:arclist}、{dede:field}等。
你可以根据需要选择适当的标签,并设置相应的参数来获取文章列表或文章的特定字段。
使用模板调用文章:在DedeCMS中,你可以创建自定义的模板来调用文章。
你可以在模板中编写相应的代码,使用DedeCMS提供的标签或函数来获取文章列表或文章的特定信息,并将其呈现在页面上。
使用插件调用文章:除了标签和模板,你还可以使用DedeCMS提供的插件来调用文章。
插件是一种可扩展的功能模块,可以在DedeCMS 中添加额外的功能。
你可以选择适合的插件,按照插件的文档进行配置和使用,以实现文章的调用。
需要注意的是,具体的调用方式可能因DedeCMS版本和你的需求而有所不同。
回答完毕。
dedecms按照自定义字段搜索教程之前看到很多人想要自定义字段搜索功能,官方又不给出,而我自己也正需要自定义字段搜索,于是就花了半天时间研究了下DEDE的搜索代码,终于研究出来了,现在分享给大家好了,废话不多说了,具体操作如下一:打开你的数据库,找到dede_full_search这个表,在里面把你自定义的字段添加进表,这里以我的网站为例,我添加了myskill,myexchange,mygoods,myexgoods,这4个字段二:打开/member/article_add_action.php,找到"//更新全站搜索索引",在下面的一段代码中插入刚才添加的4个字段,例:“'myskill'=>$myskill,'myexchange'=>$myexchange,'mygoods'=>$mygoods,'myexgoods'=>$myex goods”,这里说明一下,前面的'myskill'为你发布文章时添加的自定义字段,后面的为刚才在表dede_full_search中添加的字段(建议在表中添加字段的时候写成跟你之前字定义的字段一样)这里最好写成一样,可以省去很多麻烦三:打开/include/inc_arcsearch_view.php,搜索titlekeyword,找到如下代码Copy codeif($this->SearchType != "titlekeyword"){$kwsqlarr[] = " ying_full_search.title like '%$k%' ";}else{$kwsqlarr[] = " ying_full_search.title like '%$k%' ";$kwsqlarr[] = " ying_full_search.addinfos like '%$k%' ";$kwsqlarr[] = " ying_full_search.keywords like '%$k%' ";}分析下代码SearchType != "titlekeyword,搜索类型为titilekeyword,即前台搜索下拉框中的智能模糊搜索,$kwsqlarr[] = " ying_full_search.title like '%$k%' ";为搜索full_search表中的title字段,好了,知道了这段代码的作用,我们就知道该如何添加自己的搜索了下面把我的代码作为例子Copy codeif($this->SearchType != "skill"){$kwsqlarr[] = " ying_full_search.myskill like '%$k%' ";$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";}else{$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";$kwsqlarr[] = " ying_full_search.myskill like '%$k%' ";}if($this->SearchType != "goods"){$kwsqlarr[] = " ying_full_search.mygoods like '%$k%' ";$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";}else{$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";$kwsqlarr[] = " ying_full_search.mygoods like '%$k%' ";},因为我的myskill和myexchange2个字段是一起的,而mygoods和myexgoods是一起的,所以我用了2个if else语句四:修改搜索框代码,代码在哪我就不说了吧,大家都知道在哪,搜索框原代码为Copy code<select name="searchtype" id="searchtype"><option value="titlekeyword" selected>智能模糊搜索</option><option value="title">仅搜索标题</option></select>这里只需修改上面的代码,修改后的代码为Copy code<select name="searchtype" id="searchtype"><option value="skill" selected>搜技能</option><option value="goods">搜物品</option></select>value="",这填的是第三步中添加的SearchType后面的,即搜索类型,这个你自己定义五:还是打开/include/inc_arcsearch_view.php,找到//处理一些特殊字段,把你之前的自定义的字段添加进去,这里还是以我的为例子在先面添加Copy code$row["myskill"] = $this->GetRedKeyWord(cn_substr($row["myskill"],$infolen));$row["myexchange"] = $this->GetRedKeyWord(cn_substr($row["myexchange"],$infolen)); $row["mygoods"] = $this->GetRedKeyWord(cn_substr($row["mygoods"],$infolen));$row["myexgoods"] = $this->GetRedKeyWord(cn_substr($row["myexgoods"],$infolen));其实只要添加$row["myskill"] = $row["myskill"];(另外3个我就不写了,类似)就够了,但是我为什么要这样写呢,这样写的作用就是让你在搜索结果页调用的时候显示关键子为红色六:最后一步了,打开templets/default/search.htm,这里就是搜索页调用的模版,这里要调用只要[field:你自定义的字段/],还是以我的网站为例[field:myskill/],这样调用就OK,但是要注意一点,假如你2个字段放一起调用中间最好加个空格或者其他符号,假如[field:myskill/][field:mygoods/]这样连在一起是显示不出来的好了,写的这么详细,相信大家应该看的懂吧,虽然有点复杂,不过有总比没有好,呵呵。
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列表页调用文章正文内容的方法。
分享给大家供大家参考。
具体分析如下:一般来说,在列表页面要获取文章内容简单描述的话我们可以直接使用description标签就可以了,但是如果要有很多估计我们需要进行一些简单的修改。
在制作织梦模板的时候,有的时候我们需要调用文章部分内容,用[field:description/]标签字数不够多(数据库设计字段是varchar(255)的),另外修改了文章内容但是摘要还需要手动修改,所以只能调用文章正文内容了.实现织梦DedeCMS列表页调用文章正文的方法有两种,不过都是使用的dede:arclist标签,如果使用dede:list标签的话,第一种方法是调用不出结果的.以下是织梦DedeCMS列表页调用文章正文的第一种方法,代码如下:复制代码代码如下:{dede:arclist flag='h' row='10′}<h1><a href='[field:arcurl/]'>[field:title/]</a></h1><p>[field:id runphp='yes'] $aid = @me; $row = $GLOBALS['dsql']->GetOne("Select body From 'dede_addonarticle' where aid='$aid' "); @me =cn_substr(strip_tags("{$row['body']}"),400);[/field:id]<a href='[field:arcurl/]'>【阅读详细】</a></p>{/dede:arclist}代码中的数字400是用来设置需要调用多少内容的,因为调用的是body里面的内容,如果有里面包含代码的话也会被调用出来,这点比较不好,不过可以使用html2tex()函数解决一下.第二种方法则是利用了织梦可以自定义模型内容数据,并调用的原理,把文章模板的body字段看做在自定义的,调用的代码如下:复制代码代码如下:{dede:arclist row='10' addfields='body' channelid='1'}<p> [field:body function='cn_substr(html2text(@me),600)'/]...</p><span class="more"><a href=" [field:arcurl/]" style="text-decoration:none; color:#990000;"& gt; [详情] </a></span>{/dede:arclist}以下是这种方法的详细说明:1.addrields=”字段一,字段二…”2.idlist:文章编号,调用指定内容3.function=’cn_substr(html2text(@me),600)’将文章内容转化为文字格式4.channelid,模型编号,文章默认为1,查看位置:后台–核心–内容模型管理两种方法各有优劣,第一种方法比较繁琐,不是那么容易看懂,还是比较推荐采用第二种方法实现织梦DedeCMS列表页调用文章正文的功能的.谁说dede:list 标签不能调用body内容,现在就告诉你,直接就可以调用第一步,打开后台核心-->频道模型-->内容模型管理-->普通文章,在列表附加字段中添加body.第二步,在dede:list语句中指定addfields='body',然后直接用[field:body/]调用全部内容.实例代码如下:复制代码代码如下:{dede:list pagesize='18' addfields='body'}<li><p>[field:body/]</p><p><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></p></li>{/dede:list}另外,如果像摘要一样调用可以用,代码如下:复制代码代码如下:[field:body function='cn_substr(html2text(@me),200)'/]替代:复制代码代码如下:[field:description /]调出文章前200个字符内容,经过这两步,可以彻底关掉系统默认的文章摘要功能,最后还有就是官方的一个[field:description/]字段了,这个如果对于要求几十个字的完全可以了,但是如果太多字此字段就无效了.希望本文所述对大家的dedecms建站有所帮助。
自定义模型使用教程:在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。
通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。
当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点,本篇将讲述如何使用系统的自定义模型管理功能来实现内容模型的构建。
我们首先登录系统后台,点击[核心]-[内容模型管理],进入内容模型管理界面,如下图所示:这里我们介绍几个相关参数的概念:•ID号用于区分模型的唯一ID,一般常规模型的ID都是大于0的,比如普通文章、软件等,如果使用了单表模型,ID一般需要小于-1,例如这里的分类信息模型;•频道名称用于识别频道类型的标识;•识别id系统用于识别的id,这个关系到模板方面;•附加表系统内容附加表项;•模型类型分为系统类型和自动类型,系统类型为固化在系统中的内容模型,自动类型为用户可创建的内容模型类型;接下来我们开始介绍如何使用自定义模型管理来创建一个自己的模型,并且用于建设不同内容类型的网站中去。
这里我们介绍一些周边的内容,几个要用到的概念:•字段在数据库中,表的列称为字段,织梦系统也是如此,但更恰当的说法,存储某个内容信息单元,称为字段,例如标题、来源、作者等都是一个字段;•内容系统主表程序将一些公用字段存储在系统主表dede_archives,例如:标题、关键词、缩略图等,主表具体字段可以查询织梦帮助中心()的有关二次开发手册数据表部分的内容;•附加表不同内容模型对应不同的附加表,通常以dede_addon[识别ID]命名,附加表中存放的都是详细内容的相关字段(非公用),例如:文章内容(dede_addonarticle)、软件类型(dede_addonsoft)、图片集合(dede_addonimage)等;•单表独立模型存储时候不用到“主表+附加表”的结构形式,直接使用单个数据表进行存储内容数据,这样脱离主从表,减少主表数据服在开销,可以从很大程度上解决数据负载问题;明白了以上几个概念我们可以来学习如何来自己创建一个内容模型了。
首页和列表页怎么调用自定义字段呢!这个问题我一直想了很久,在网上也查了很多资料,一直没结果,结果黄天不负有心人啊,终于找到办法了
下面复制一段我的代码:
代码如下:
{dede:arclist row='4' typeid='10' flag='p' channelid='2' addfields='shop_money' } <table width="4%" height="212" border="0" cellpadding="0" cellspacing="0" class="yangshi" style="font-size:12px;">
<tr>
<td height="212" colspan="3" align="center">
<a href="[field:arcurl/]" title="[field:fulltitle/]" target="_blank"><img src="[field:litpic/]" target="_blank" width="168" height="180"
alt="[field:fulltitle/]" style="float:left; padding:5px; border:3px solid #333333;" border="0" /></a></td>
</tr>
<tr><td width="32%" style="margin-top:8px;" ><span>&nbsp;&nbsp;原价:
<span style="color:#cc0000;">[field:shop_money/]</span></span></td>
<td width="35%" style="margin-top:8px;">&nbsp;&nbsp;有[field:click/]人喜欢</td>
</tr>
</table>
{/dede:arclist}
channelid------是模型的id
addfields-------是自定义字段的名称
单独调用:{dede:field name=' ' /}
更多信息请查看IT技术专栏。