在dedecms如何在的导航栏 首页 申浩概况 业务领域 办公领域里面添加一项 添加到办公领域前面
{dede:field name="typename"} 调用当前栏目的名称
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}调用该顶级频道下所有字栏目,row代表调用5条
{dede:type typeid='栏目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type} 表示调用指定id的栏目,只能调用一个。
{dede:channel type='top'}<a>[field:typename/]</a> {/dede:channel}调用子栏目的当前顶级栏目名称。
调用顶级栏目名称示例代码:
{dede:fieldtitle runphp=’yes’}list($toptype,$sontype)=split(‘/’,@me);@me=$toptype;{/dede:fieldtitle}dedecms也叫织梦内容管理系统,是一款知名的PHP开源网站内容管理系统,以简单、实用、开源而闻名,DedeCms免费版的主要目标用户在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用。
一、修改文件:\include\taglib目录下的channellibphp,请将以下代码全部复制替换上述文件
<phpfunction lib_channel(&$ctag,&$refObj)
{
global $_sys_globals,$envs,$dsql;
$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = $ctag->GetInnerText();
$cacheid = trim($cacheid);
if($cacheid !='') {
$likeType = GetCacheBlock($cacheid);
if($likeType != '') return $likeType;
}
$reid = 0;
$topid = 0;
if(empty($typeid) && $envs['typeid']!=0)
{
$typeid = $envs['typeid'];
$reid = $envs['reid'];
}else{
$reid=0;
}
if($type==''||$type=='sun') $type="son";
if($innertext=='') $innertext = GetSysTemplets("channel_listhtm");
if($reid==0 && $typeid>0)
{
$dbrow = $dsql->GetOne("Select reid From dede_arctype where id='$typeid' ");
if(is_array($dbrow)) $reid = $dbrow['reid'];
}
$likeType = '';
if($type=='top')
{
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";
}
else if($type=="son")
{
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
if($typeid==0) {
return '';
}
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
}
else if($type=="self")
{
if($reid==0) {
return '';
}
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
}
//And id<>'$typeid'
$needRel = false;
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace("field","[","]");
$dtp2->LoadSource($innertext);
$dsql2 = clone $dsql;
$dsql->SetQuery($sql);
$dsql->Execute();
$line = $row;
//检查是否有子栏目,并返回rel提示(用于二级菜单)
if(ereg(':rel', $innertext)) $needRel = true;
if(empty($sql)) return '';
$dsql->SetQuery($sql);
$dsql->Execute();
$totalRow = $dsql->GetTotalRow();
$GLOBALS['autoindex'] = 0;
for($i=0;$i < $line;$i++)
{
if($col>1) $likeType = "<dl>\r\n";
for($j=0;$j<$col;$j++)
{
if($col>1) $likeType = "<dd>\r\n";
if($row=$dsql->GetArray())
{
$row['sonids'] = $row['rel'] = '';
if($needRel)
{
$row['sonids'] = GetSonIds($row['id'], 0, false);
if($row['sonids']=='') $row['rel'] = '';
else $row['rel'] = " rel='dropmenu{$row['id']}'";
}
//处理同级栏目中,当前栏目的样式
if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )
{
if($currentstyle!='')
{
$linkOkstr = $currentstyle;
$row['typelink'] = GetOneTypeUrlA($row);
$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);
$linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
$likeType = $linkOkstr;
}
}else
{
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTags as $tagid=>$ctag){
if(isset($row[$ctag->GetName()]))
{
$dtp2->Assign($tagid,$row[$ctag->GetName()]);
}
elseif (preg_match('/^sonchannel[0-9]$/',$ctag->GetName()))
{
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2));
}
}
}
$likeType = $dtp2->GetResult();
}
}
if($col>1) $likeType = "</dd>\r\n";
$GLOBALS['autoindex']++;
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType = " </dl>\r\n";
}
}//Loop for $i
reset($dsql2);
$dsql->FreeResult();
return $likeType;
}
function lib_channel_son($ctag,$typeid = 0,$dsql2)
{
$attlist = "row|100,col|1,currentstyle|";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = $ctag->GetInnerText();
$dsql3 = clone $dsql2;
$likeType = '';
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
if($typeid==0) {
return '';
}
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
//And id<>'$typeid'
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace("field","[","]");
$dtp2->LoadSource($innertext);
$dsql2->SetQuery($sql);
$dsql2->Execute();
$line = $row;
for($i=0;$i < $line;$i++)
{
if($col>1) $likeType = "<dl>\r\n";
for($j=0;$j<$col;$j++)
{
if($col>1) $likeType = "<dd>\r\n";
if($row=$dsql2->GetArray())
{
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTags as $tagid=>$ctag){
if(isset($row[$ctag->GetName()]))
{
$dtp2->Assign($tagid,$row[$ctag->GetName()]);
}
elseif (preg_match('/^sonchannel[0-9]$/',$ctag->GetName()))
{
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3));
}
}
}
$likeType = $dtp2->GetResult();
}
if($col>1) $likeType = "</dd>\r\n";
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType = " </dl>\r\n";
}
}//Loop for $i
reset($dsql3);
$dsql2->FreeResult();
return $likeType;
}
>
二、在模板调用
实例:
{dede:channel type='son' typeid='改成你的大栏目ID'}[field:typename/]
<ul>
[field:sonchannel0]
<li><a href="[field:typelink/]">[field:typename/]</a></li>
[field:sonchannel1]
<li><a href="[field:typelink/]">---[field:typename/]</a></li>
[field:sonchannel2]
<li><a href="[field:typelink/]">===[field:typename/]</a></li>
[field:sonchannel3]
<li><a href="[field:typelink/]">===[field:typename/]</a></li>
[/field:sonchannel3]
[/field:sonchannel2]
[/field:sonchannel1]
[/field:sonchannel0]
</ul>
{/dede:channel}
模板调用 [field:sonchannel0] [/field:sonchannel0] 这个是用来取子栏目用的(使用[sonchannel+数字] 作为标签名是为了防止嵌套的时候无法正确解析标签)
这个的作用就是当你的栏目有很多子栏目 无限分级的时候方便你取子栏目的。
首先添加一个顶级栏目,然后给这个栏目赋予权重值,权重值介于1到50,如果沈浩概况的权重是10,你给新建栏目赋值是9,那么新建的栏目就会排到沈浩概况的前面。
赋值后,记得点击栏目下面的更新栏目排序。否则,不起作用。
调用顶级栏目标签:{dede:channel row='20' type ='top' }{/dede:channel}
调用子栏目{dede:channel row='20' type ='son' typeid ='1' }{/dede:channel}
栏目名称[field:typename/]
栏目链接[field:typelink/]
dede:
是织梦内容管理系统dedecms的简称, 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,系统作者仅有一人,却做出如此功能的cms。最新的版本无论在功能,还是易用性方面,都有了长足的发展。DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统。dede织梦内容管理系统(DedeCms)基于PHP+MySQL的技术架构,完全开源加上强大稳定的技术架构,使你无论是打算做个小型网站,还是想让网站在不断壮大后系仍能得到随意扩充都有充分的保证。
DedeCMS最适合应用于以下领域:
企业网站,无论大型还是中小型企业,利用网络传递信息在一定程度上提高了办事的效率,提高企业的竞争力;
政府机关,通过建立政府门户,有利于各种信息和资源的整合,为政府和社会公众之间加强联系和沟通,从而使政府可以更快、更便捷、更有效开展工作;
教育机构,通过网络信息的引入,使得教育机构之间及教育机构内部和教育者之间进行信息传递,全面提升教育类网站的层面;
媒体机构,互联网这种新媒体已经强而有力的冲击了传统媒体,在这个演变过程中,各类媒体机构应对自己核心有一个重新认识和重新发展的过程,建立一个数字技术平台以适应数字化时代的需求;
行业网站,针对不同行业,强化内部的信息划分,体现行业的特色,网站含有行业的动态信息、产品、市场、技术、人才等信息,树立行业信息权威形象,为行业内产品供应链管理,提供实际的商业机会;
个人站长,兴趣为主导,建立各种题材新颖,内容丰富的网站,通过共同兴趣的信息交流,可让您形成自己具有特色的用户圈,产生个人需求,并为其服务,个人用户完全免费使用;
收费网站,内容收费类型的网站,用户可以在线提供产品销售,或者内容收费,简单清晰的盈利模式,确保您以最小的投资,取得最大的回报。
这不就是一个下拉的,百度下有很多代码,至于标签的调用跟普通的导航一样,先{dede:channel type='top' row='8' }
<li><a
href='[field:typelink/]'>[field:typename/]</a> </li>
{/dede:channel}
然后下拉的里面DIV 调用跟上面的一样,只不过多了typeid = ''这个还有type=''son'
好像没有,我做这种都是手工完成的,把导航这部分定成公共文件,然后全站调用这个文件,有改动的时候只改动公共文件。调用出这么多我没尝试过一直都是手工写。如果你的第三级太多就只能指定栏目进行调用了。这样比手工强一点点吧。
要调用某个栏目的下级栏目名称,参考下面的标签
{dede:channel row='20' type ='son' typeid ='2' } 此处是底层标签 {/dede:channel}
row='20'表示调用20个栏目名称
type ='son'表示调用下级栏目
typeid ='2'表示父栏目id为2
关于底层标签,诸如栏目名称,链接等等就不再赘述了吧
0条评论