dede列表页添加自定义联动
织梦添加和调用自定义字段的方法

织梦添加和调用自定义字段的方法织梦自定义字段要想在任何位置任何模版中调用或者在{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'/}。
dede让首页列表以及内页自动更新首页生成HTML

on.inc.php");require_once(DEDEINC."/arc.par
tview.class.php");/*$row=$dsql-GetOne("Sele ct*Fromdede_homepageset");$dsql-Close();$te
mplet=$row[&39;templet&39;];$position=$row[
eplace("\\","/",$homeFile);$homeFile=str_re
place("//","/",$homeFile);$pv=newPartView() ;$pv-SetTemplet($cfg_basedir.$cfg_templets_
dir."/".$templet);$pv-SaveToHtml($homeFile)
&39;position&39;];*/$templet="templets/inde x.htm";//这里是首页模板位置,当前是 dede 默认 首 面 位
置 .$position="../index.html";$homeFile=dirn ame(__FILE__)."/".$position;$homeFile=str_r
权
st_time=0;if(sp_input($_GET[&39;renew&39;]) =="now")$last_time=0;if((time()-$last_time)
=$autotime){define(&39;DEDEADMIN&39;,ereg_r
dede5.6在列表页调用tag的方法

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程序新建栏目自定义优化设置

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。
dede(织梦)二次开发手册之联动类别使用说明教程篇

友情提供: 联动类别使用说明教程织梦在新版本V5.3中加入了一个联动类别的功能,不少人不理解这个联动类别的使用方法,本教程天涯就来介绍如何使用这个功能。
联动类别使用的地方还是比较多的,首先我们可以通过后台的[核心]-[频道模型]-[联动类别管理]查看,联动类别其定义如下:系统一种特殊的枚举数据类别,可以有系统内置或由用户管理。
系统内置的枚举用户是不可以删除的,但可以对这些数据进行添加子分类及修改。
到这里可能一些用户还是不了解什么是联动类型,下面我们举几个简单的例子。
一个最简单的联动类型是只有一级选择的类型,比如说系统内置的星座、教育程度、血型,这种类型你可以点击进去查看,其结构很简单,例如星座(star):在这个联动类别中级数为“一级选择”,就是在这个星座类别下面只有一列品级数据进行选择,我们点击进去可以查看到以下内容:这个让我们很容易联想到许多网站中设置用户资料的时候,需要用户选择星座,我们就可以通过一个下拉框进行选择:当然,上面说到的是最简单的联动类别,只有一级联动,这种一级联动就可以好比是一个下拉框,用户在选择具体数据的时候只要通过下拉框这种形式就可以对数据进行选择。
但是我们在很多联动数据中遇到不少需要二级联动的类型,例如我们在资料设置中选择“所在城市”这个类别,如下图所示这种数据类型就属于需要选择2次分类,首先选择上海市,然后列出上海市拥有的地区,然后再进行第二次选择,这就是一个二级联动的类别,我们可以通过系统后台查看联动类别中的地区来看看系统的枚举类型。
通过以上2个例子我们不难理解联动类型的概念,其实说简单了就是一种特殊的枚举数据类型,这种特殊的枚举类型运用在创建内容模型、用户资料等数据录入的页面中,其中应用在创建模型及用户自定义表单是联动类别最常用的地方,下面我们来介绍如何使用这个联动模型。
我们以创建一个“图书(book)”内容模型为例,这个模型中我们需要网站管理员(用户)提交一个图书特征的分类,我们知道以下图书特征的分类:线装书,精装书,平装书,袋装书,电子书,有声读物,盲人书下面我们就创建一个这个一级选择的枚举类型,这个类型叫图书特征(bookfeature),我们点击“新增类别组”来创建分类。
织梦DedeCMS频道页联动调用方法-电脑资料

织梦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栏目自定义字段的方法

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)的标签功能对于普通的用户来说已经非常的强大,但是如果对于我们做 一些稍微大型的网站, 对于一些织梦的功能二次开发, 就需要用我们来自定义织梦的标签了。 今天恰维网络就织梦如何自定义标签来给大家讲解一下,希望对大家有所帮助。
首先,像织梦的 dede:arclist,这样的标签来说,主要是列举出符合条件的文章列表,比如某 个栏目下的,某个属性的。如果我们要修改调用某个自定义属性的内容,而这个标签无法满 足我们的时候, 怎么去做呢?在织梦的后台–模板–标签源码管理, 这个里面会列举出我们常 用的一些标签,其实,我们用的这些标签都是在这里定义的,如果我们需要重新定义一个标 签,可以点击右上角的【增加一个新的标签】 。 这个会有详细的说明,标签文件名为:标签名.lib.php 接口函数定义为:function lib_标签名 (&$ctag,&$refObj),返回值是结果字符串修改标签时为了防止出错,您也可以修改它的名称 (同时修改文件名和函数名),这样等同继承了原来标签的代码建立一个新的标签。 <?php if(!defined(‘DEDEINC’)) { exit(“Request Error!”); } function lib_demotag(&$ctag,&$refObj) { global $dsql,$envs; //属性处理 $attlist=”row|12,titlelen|24″; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ”; //你需编写的代码,不能用 echo 之类语法,把最终返回值传给$revalue //—————————————————— $revalue = ‘Hello Word!’; //—————————————————— return $revalue;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为:
global $dsql,$nativeplace,$infotype,$disease,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
global $em_nativeplaces,$em_infotypes,$em_disease;
修改代码:
$fields = array('nativeplace'=>'','infotype'=>'','typeid'=>$typeid,
>{$em}</a>\r\n";
}
}
else
{
$sontype = ( ($disease % 500 != 0) ? $disease : 0 );
$toptype = ( ($disease % 500 == 0) ? $disease : ( $disease-($disease%500) ) );
}
}
}
添加到合适的位置。。 这样就可以实现了吗? 还差一点。 找到 templets\system\info_link.htm,添加如下代码:
<tr>
<td> 类 型:</td>
<td align='center' nowrap='yes'>
<div>[field:linkalldisease/]</div>
}
else {
$fields['disease'] .= " <a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&disease={$eid}&infotype={$infotype}'
>{$em}</a>\r\n";
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&infotype={$infotype}'>不限</a>";
$fields['linkalltype'] = "<a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>不限
'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'');
$fields['nativeplace'] = $fields['infotype'] = '';
$fields['linkallplace'] = "<a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&infotype={$infotype}'>不限</a>";
</a>";
$fields['linkalldiseas'] = "<a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&disease={$disease}'>不限</a>";
最后将:
//disease
if(empty($disease))
'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'');
$fields['nativeplace'] = $fields['infotype'] = $fields['disease'] = '';
$fields['linkallplace'] = "<a
dede 列表页添加自定义联动
发表于 240 天前 ⁄ php 实例 ⁄ 评论数 1
如何在织梦列表页联动自定义的联动类型 织梦列表页联动自定义的联动类型? 织梦列表页联动自定义的联动类型 是不是听着很拗口。
通俗地说:就是在列表页中调用自定义的联动类型。 我定义的联动类型字段是:disease
{dede:infolink}
</td:disease /]
</td>
</tr>
OK!在织梦列表页联动自定义的联动类型 织梦列表页联动自定义的联动类型功能实现。 织梦列表页联动自定义的联动类型
require_once(DEDEROOT.'/data/enums/disease.php');
修改代码
global $dsql,$nativeplace,$infotype,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
global $em_nativeplaces,$em_infotypes;
$fields['linkalltype'] = "<a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>不限
</a>";
为:
$fields = array('nativeplace'=>'','infotype'=>'','disease'=>'','typeid'=>$typeid,
$fields['disease'] = "<a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&disease={$toptype}&infotype={$infot
ype}'><b>{$em_diseases[$toptype]}</b></a> >> ";
{
foreach($em_diseases as $eid=>$em)
{
if($eid % 500 != 0) continue;
$fields['disease'] .= " <a
href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&disease={$eid}&infotype={$infotype}'
[field:disease /]
{/dede:infolink}
添加如上代码可以实现吗?答案是否定的。 找到 include\taglib\infolink.lib.php 在 require_once(DEDEROOT.’/data/enums/infotype.php’);下添加如下 php 代码:
foreach($em_diseases as $eid=>$em)
{
if($eid < $toptype+1 || $eid > $toptype+499) continue;
if($eid == $disease) {
$fields['disease'] .= " <b>{$em}</b>\r\n";