如果您想了解DedeCms5.6自定义模型中的多个联动教程的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于DedeCMS新建模型自定义联动类别调用及修改办法、DedeCMS新建模型自定义联
如果您想了解DedeCms5.6自定义模型中的多个联动教程的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于DedeCMS 新建模型自定义联动类别调用及修改办法、DedeCMS 新建模型自定义联动类别调用及修改方法、DEDECMS+Js实现自定义二级联动、Dedecms5.5如何添加自定义函数的有价值的信息。
本文目录一览:- DedeCms5.6自定义模型中的多个联动教程
- DedeCMS 新建模型自定义联动类别调用及修改办法
- DedeCMS 新建模型自定义联动类别调用及修改方法
- DEDECMS+Js实现自定义二级联动
- Dedecms5.5如何添加自定义函数
DedeCms5.6自定义模型中的多个联动教程
之前看过好几个发布关于联动的应用教程帖,但是发现只适合一个联动项目,多个的话就不会联动了,自己按照分类信息里的联动改了一下成功了,现在写个教程给那些也想使用多个联动项目的朋友。(注:这个我只在自定义独立模型中测试过,其他的没有测试)我这里是五个联动项目,如果需要跟多或是少一点的话,可以根据我给的代码修改一下。
下面我们开始修改:
*步:修改include\taglib\infolink.lib.php文件
*处:
require_once(DEDEROOT.'/data/enums/infotype.php');
下面添加
require_once(DEDEROOT.'/data/enums/自定义联动类别字段名1.php');
require_once(DEDEROOT.'/data/enums/自定义联动类别字段名2.php');
require_once(DEDEROOT.'/data/enums/自定义联动类别字段名3.php');
require_once(DEDEROOT.'/data/enums/自定义联动类别字段名4.php');
require_once(DEDEROOT.'/data/enums/自定义联动类别字段名5.php');
第二处:
function lib_infolink(&$ctag,&$refObj)
{
global $dsql,$nativeplace,$infotype,$自定义联动类别字段名1,$自定义联动类别字段名2,$自定义联动类别字段名3,$自定义联动类别字段名4,$自定义联动类别字段名5,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
global $em_nativeplaces,$em_infotypes,$em_自定义联动类别字段名1s,$em_自定义联动类别字段名2s,$em_自定义联动类别字段名3s,$em_自定义联动类别字段名4s,$em_自定义联动类别字段名5s;??//看清楚,这里后面的个S
第三处:
在
$fields = array('nativeplace'=>'','infotype'=>'','typeid'=>$typeid,
'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'');
$fields['nativeplace'] = $fields['infotype'] = '';
后面添加
$fields = array('自定义联动类别字段名1'=>'','自定义联动类别字段名2’=>'','自定义联动类别字段名3'=>'','自定义联动类别字段名4'=>'','自定义联动类别字段名5'=>'','typeid'=>$typeid,
'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'','linkall自定义联动类别字段名1'=>'','linkall自定义联动类别字段名2‘=>'','linkall自定义联动类别字段名3'=>'','linkall自定义联动类别字段名4'=>'','linkall自定义联动类别字段名5'=>'');
$fields['自定义联动类别字段名1'] = $fields['自定义联动类别字段名2'] = $fields['自定义联动类别字段名3'] = $fields['自定义联动类别字段名4'] = $fields['自定义联动类别字段名5'] = '';
第四处:
在
$fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>不限</a>";
后面添加
$fields['linkall自定义联动类别字段名1'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名1={$eid}&自定义联动类别字段名2={$自定义联动类别字段名2}&自定义联动类别字段名3={$自定义联动类别字段名3}&自定义联动类别字段名4={$自定义联动类别字段名4}&自定义联动类别字段名5={$自定义联动类别字段名5}'>全部</a>";
(这里注意了,想要联动这个地方是关键之一,后面的联动字段一定都要有,如果你有增加联动那么这里一定要加全了)
第五处:
在
if(is_array($ctp->CTags))
上面添加
if(empty($自定义联动类别字段名1))
{
foreach($em_自定义联动类别字段名1s as $eid=>$em)
{
if($eid % 500 != 0) continue;
$fields['自定义联动类别字段名1'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名1={$eid}&自定义联动类别字段名2={$自定义联动类别字段名2}&自定义联动类别字段名3={$自定义联动类别字段名3}&自定义联动类别字段名4={$自定义联动类别字段名4}&自定义联动类别字段名5={$自定义联动类别字段名5}'>{$em}</a>";
}
}
else
{
foreach($em_自定义联动类别字段名1s as $eid=>$em)
{
if($eid % 500 != 0) continue;
if(isset($_GET['自定义联动类别字段名1']))
{
$navclass=$_GET['自定义联动类别字段名1'];
if ($navclass==$eid)
{
$nav;
}
$fields['自定义联动类别字段名1'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名1={$eid}&自定义联动类别字段名2={$自定义联动类别字段名2}&自定义联动类别字段名3={$自定义联动类别字段名3}&自定义联动类别字段名4={$自定义联动类别字段名4}&自定义联动类别字段名5={$自定义联动类别字段名5}'".$navclass.">{$em}</a>";
}
}
}
(这里也多联动的关键之一,由于东西太多,我只列出一个,其他的自己添加一下,注意的是在链接也就是a href里面自定义联动类别字段名一定要加全了)
第二步:修改plus\list.php 文件
*处:
$infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype );
下面加上
$自定义联动类别字段名1 = ( (empty($自定义联动类别字段名1) || !is_numeric($自定义联动类别字段名1)) ? 0 : $自定义联动类别字段名1 );(多个就复制改名即可)
第二处:
在
if(!empty($infotype)) $cArr['infotype'] = $infotype;
下面加上
if(!empty($自定义联动类别字段名1)) $cArr['自定义联动类别字段名1'] = $自定义联动类别字段名1;(多个就复制改名即可)
第三步:修改include\arc.sglistview.class.php 文件
在
if(!empty($this->searchArr['infotype']))
{
if($this->searchArr['infotype'] % 500 ==0 )
{
$naddQuery .= " And arc.infotype >= '{$this->searchArr['infotype']}' And arc.infotype < '".($this->searchArr['infotype']+500)."'";
}
else
{
$naddQuery .= "And arc.infotype = '{$this->searchArr['infotype']}'";
}
}
下面加上
if(!empty($this->searchArr['jztype']))
{
if($this->searchArr['jztype'] % 500 ==0 )
{
$naddQuery .= " And arc.jztype >= '{$this->searchArr['jztype']}' And arc.jztype < '".($this->searchArr['jztype']+500)."'";
}
else
{
$naddQuery .= "And arc.jztype = '{$this->searchArr['jztype']}'";
}
}
(多个就复制改名即可)
第四步:修改include\taglib\infolink.lib.php文件(这个只针对需要二级联动改一级的人用的,如果不需要这么做的跳过)
这里都注掉
/*
$sontype = ( ($househx % 500 != 0) ? $househx : 0 );
$toptype = ( ($househx % 500 == 0) ? $househx : ( $househx-($membertype%500) ) );
$fields['househx'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&househx={$toptype}&nativeplace={$nativeplace}'><b>{$em_househxs[$toptype]}</b></a> ";
下级显示不显示
foreach($em_househxs as $eid=>$em)
{
if($eid < $toptype+1 || $eid > $toptype+499) continue;
if($eid == $househx) {
$fields['househx'] .= " <b>{$em}</b>";
}
else {
$fields['househx'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&househx={$eid}&nativeplace={$nativeplace}'>{$em}</a>";
}
}
*/
换成
foreach($em_househxs as $eid=>$em)
{
if($eid % 500 != 0) continue;
if(isset($_GET['househx']))
{
$navclass=$_GET['househx'];
if ($navclass==$eid)
{
$nav;
}
$fields['househx'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&househx={$eid}&nativeplace={$nativeplace}'".$navclass.">{$em}</a>";
}
}
第五步:模板调用
[field:linkeall自定义联动类别字段名1/] [field:自定义联动类别字段名1 /] (多个就复制改名即可)
切记前后一定要加上{dede:infolink}和{/dede:infolink}要不然是调用不出来的。
DedeCMS 新建模型自定义联动类别调用及修改办法
找了好几天资料,没找到新建模型中自定义联动类别如何用,自己就改了改..现在可以用了 把办法分享一下...不对的地方请大家帮助改正。
先修改 include\taglib\infolink.lib.php 文件
require_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'=>$typeid,
'channelid'=>$channelid,'linkallplace'=>'','linkealltype'=>'','linkeall自定义联动类别字段名'=>'');
$fields['nativeplace'] = $fields['infotype'] = $fields['自定义联动类别字段名'] = '';
$fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>不限</a>";
//下面添加一行
$fields['linkeall自定义联动类别字段名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名={$自定义联动类别字段名}&nativeplace={$nativeplace}'>不限</a>";
搜索 if(is_array($ctp->CTags)) 在这句上面添加
//自定义联动类别字段链接
if(empty($自定义联动类别字段名))
{
foreach($em_自定义联动类别字段名s as $eid=>$em)
{
if($eid % 500 != 0) continue;
$fields['自定义联动类别字段名'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名={$eid}&nativeplace={$nativeplace}'>{$em}</a>";
}
}
else
{
$sontype = ( ($自定义联动类别字段名 % 500 != 0) ? $自定义联动类别字段名 : 0 );
$toptype = ( ($自定义联动类别字段名 % 500 == 0) ? $自定义联动类别字段名 : ( $自定义联动类别字段名-($membertype%500) ) );
$fields['自定义联动类别字段名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名={$toptype}&nativeplace={$nativeplace}'><b>{$em_自定义联动类别字段名s[$toptype]}</b></a> ";
foreach($em_自定义联动类别字段名s as $eid=>$em)
{
if($eid < $toptype+1 || $eid > $toptype+499) continue;
if($eid == $自定义联动类别字段名) {
$fields['自定义联动类别字段名'] .= " <b>{$em}</b>";
}
else {
$fields['自定义联动类别字段名'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定义联动类别字段名={$eid}&nativeplace={$nativeplace}'>{$em}</a>";
}
}
}
再修改 plus\list.php 文件
搜索 $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype ); 在下面添加一句
$自定义联动类别字段名 = ( (empty($自定义联动类别字段名) || !is_numeric($自定义联动类别字段名)) ? 0 : $自定义联动类别字段名 );
再搜索 if(!empty($infotype)) $cArr['infotype'] = $infotype;
在下面添加
if(!empty($自定义联动类别字段名)) $cArr['自定义联动类别字段名'] = $自定义联动类别字段名;
找到 include\arc.sglistview.class.php 文件
搜索 if(!empty($this->searchArr['keyword'])) 在上面添加
//自定义联动类别
if(!empty($this->searchArr['自定义联动类别字段名']))
{
if($this->searchArr['自定义联动类别字段名'] % 500 ==0 )
{
$naddQuery .= " And arc.自定义联动类别字段名 >= '{$this->searchArr['自定义联动类别字段名']}' And arc.自定义联动类别字段名 < '".($this->searchArr['自定义联动类别字段名']+500)."'";
}
else
{
$naddQuery .= "And arc.自定义联动类别字段名 = '{$this->searchArr['自定义联动类别字段名']}'";
}
}
源码调用
[field:linkeall自定义联动类别字段名/] [field:自定义联动类别字段名 /]
本文章网址:http://www.ppssdd.com/code/4941.html。转载请保留出处,谢谢合作!DedeCMS 新建模型自定义联动类别调用及修改方法
总结
以上是小编为你收集整理的DedeCMS 新建模型自定义联动类别调用及修改方法全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Dedecms相关文章
- • 织梦系统 dedecms pagelist标签使用修改
- • 织梦网站怎么搬家?dede系统网站迁移数
- • 织梦网站安全设置方法 dede系统网站如何
- • 织梦自动生成网站地图sitemap代码 dede
- • dede织梦纯代码制作网站地图 dede网站地
- • 织梦dede自定义表单添加全选功能 dede自
- • dede cms如何定时主动推送文章 dede实现
- • 织梦dede发布文章实时api主动推送
- • 织梦dedecms当前位置标签代码的5种写法
- • 织梦DEDECMS文章、栏目页获取当前页面顶
DEDECMS+Js实现自定义二级联动
DEDE有现成的二级联动管理,可以添加并生成二级联动的JS代码,使用起来特别方便。如果要实现自己的效果,可能要对联动过程做一点开发。
下面的代码实例是在二级联动的过程中,添加了一个新的字段,以保存选项的值,并在前台根据JS的值做不同的事件。
<?php
require_once(dirname(__FILE__)."/../include/common.inc.php");
//查询根节点
$dsql->SetQuery("SELECT evalue,ename from `ddmx_sys_enum` where egroup='center' AND evalue%500 = 0 order by disorder asc, evalue asc"); $dsql->Execute(); $enums = array(); $sort = 1 ; while($row = $dsql->GetArray()) { $options .= "<option value=\"{$sort}\">{$row['ename']}</option>\r\n"; $enums[] = $row['evalue']; $sort ++ ; } $count = count($enums); foreach($enums as $i=>$evalue) {
//添加了一个名为link的字段,保存选项的跳转链接
$dsql->SetQuery("SELECT evalue,ename,link from `ddmx_sys_enum` where egroup='center' AND evalue > {$evalue} AND evalue < ({$evalue} + 500) order by disorder asc, evalue asc"); $dsql->Execute(); $sort = 0 ; $i++; while($row = $dsql->GetArray()) { $js .= "select2[". $i ."][{$sort}] = new Option(\"{$row['ename']}\", \"{$row['link']}\");\r\n"; $sort++; } } $html = ' <form name="frm"> <div> <h2>选择里您*近的学习中心</h2> <table width="190" height="128" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="51" align="center" valign="middle"><label> <select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)"> <option selected>点击选择城市</option> '. $options .' </select> </label></td> </tr> <tr> <td height="22" align="center" valign="middle"><label> <select name="s2" id="s2"> <option value="点击选择中心" selected>点击选择中心</option> </select> </label></td> </tr> <tr> <td height="55" align="center" valign="middle"><label> <input type="submit" name="button" id="button" value="马上提交" onclick="window.location=document.frm.s2.value;return false;"/> </label></td> </tr> </table> </div> </form> <script language="javascript"> var select1_len = document.frm.s1.options.length; var select2 = new Array(select1_len); for (i=0; i<select1_len; i++) { select2[i] = new Array(); } select2[0][0] = new Option("请选择", " "); '. $js .' function redirec(x) { var temp = document.frm.s2; for (i=0;i<select2[x].length;i++) { temp.options[i]=new Option(select2[x][i].text,select2[x][i].value); } temp.options[0].selected=true; } </script> '; $html = addslashes(str_replace(array("\r\n", '"'), array('', '\''), $html)); echo "document.write(\" $html \")"; ?>
本文章网址:http://www.ppssdd.com/code/10518.html。转载请保留出处,谢谢合作!
Dedecms5.5如何添加自定义函数
使用版本:Dedecms5.5 utf8
我自定义了一张表,其中有一个日期字段zwzb,该如何显示为汉字星期,如:星期一,星期二……,翻遍了所有资料并在网上搜索都找不到Dedecms自带的功能,我采用添加自定义函数的办法来处理而不是js的方法(我理解js是需要前台执行的,显示的是前台电脑的日期,我的理解对吗?)。
自定义函数添加位置:DedeAMPZWebrootDefaultinclude
文件名:extend.func.PHP(系统没有这个文件,可仿照common.func.PHP)
内容如下:
<?PHP
if(!defined(''DEDEINC'')) exit(''Dedecms'');
require_once(DEDEINC.''/charset.func.PHP'');
//拼音的缓冲数组
$pinyins = Array();
$g_ftpLink = false;
//获取指定日期的汉字星期
function Getweekdays($wee)
{
$weekname=array(''星期日'',''星期一'',''星期二'',''星期三'',''星期四'',''星期五'',''星期六'');
$current_week=date(w,$wee);
return $weekname[$current_week];
}
?>
调用方法:{dede:field name=''zbrq'' function=Getweekdays(@me)/}
参考资料:
1、分析Dedecms系统函数文件common.func.PHP,在最末有如下内容:
//自定义函数接口
if( file_exists(DEDEINC.''/extend.func.PHP'') )
{
require_once(DEDEINC.''/extend.func.PHP'');
}
?>
表示用户添加的自定义函数文件名为:extend.func.PHP''
总结
以上是小编为你收集整理的Dedecms5.5如何添加自定义函数全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
我们今天的关于DedeCms5.6自定义模型中的多个联动教程的分享已经告一段落,感谢您的关注,如果您想了解更多关于DedeCMS 新建模型自定义联动类别调用及修改办法、DedeCMS 新建模型自定义联动类别调用及修改方法、DEDECMS+Js实现自定义二级联动、Dedecms5.5如何添加自定义函数的相关信息,请在本站查询。
本文标签: