dedecms栏目链接怎么调用,第1张

进入后台找到需要优化的栏目 点击后面的更改 

栏目列表选项:也可以选着 链接到第一页 

栏目属性:选着最终列表栏目 除非你的那个栏目是频道

这个是后台设置 前台的模板标签的使用方法

标签名称:channel

标记简介:织梦常用标记,通常用于网站顶部以获取站点栏目信息,方便网站会员分类浏览整站信息

功能说明:用于获取栏目列表

适用范围:全局使用

基本语法:

{dede:channel type='top' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}

 <li><a href='[field:typelink/]'>[field:typename/]</a> </li>

{/dede:channel}

参数说明:

typeid = '0' 栏目ID

reid = '0' 上级栏目ID

row = '100' 调用栏目数

col = '1' 分多少列显示(默认为单列)

type = 'son | sun' son表示下级栏目,self表示同级栏目,top顶级栏目

currentstyle = '' 应用样式

底层模板字段:

ID(同 id),typeid, typelink, typename, typeurl,typedir(仅表示栏目的网址)

例:

{dede:channel type='top'}

<a href='[field:typelink /]'>[field:typename/]</a>

{/dede:channel}

注:在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一,那么type='son'就表示栏目一的所有子类

可以用代码二次开发,我给你讲一下我的实现方法。

首先要添加一个作者栏目,然后在栏目里面添加作者文档,定义一个模板,模板中用{dede:sql}调用这个作者的所有小说即可。

代码如下:

{dede:sql sql="Select id,title,litpic,writer,description from dede_archives where writer=~title~ order by pubdate DESC"}<li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] "><img src=[field:litpic/] width="114px" height="160px"/><h2>[field:title/] - [field:writer/]</h2><p>[field:description/]</p></a></li>{/dede:sql}

然后在小说更新的时候添加个自定义字段,作者链接,模板的作者处调用该字段即可,如果没有作者,则留空。

代码如下:

<a href="{dede:fieldofficialdemo runphp='yes'}if(@me =='http://') @me='#';else @me=@me;{/dede:fieldofficialdemo}">{dede:fieldwriter/}</a>

这样的好处是符合逻辑,并且作者页面可以生成静态,坏处是工作量变大,如果你图简单,可以自己做个authorphp页面,接受传参,里面直接按照传参搜索数据库就可以了,然后小说模板中作者处调用如下代码:

authorphpkey=[fieldwriter /]

这样也可以啊。

1、打开dedecms织梦管理后台,用管理员账户密码登陆。

2、点击核心----网站栏目管理-----选择一个栏目后面的,点击更改。

3、常规选项  高级选项  栏目内容中选择{高级选项},填写栏目的SEO标题,复制代码{dede:fieldseotitle /}并记住栏目模板的名称list_articlehtm。点击下面的确定保存。

4、点击模板默认模板管理找到模板文件名list_articlehtm,点击模板后面的修改,弹出修改模板代码页面。

5、打开list_articlehtm,找到<title>标题,将{dede:fieldtitle /}修改为 {dede:fieldseotitle /},点击保存。

6、依次点击生成-------更新栏目HTML------更新所有----------生成HTML点开栏目的页面,就完成调用了。

Dedecms去掉URL中a目录的方法有两个:

方法一:

如果你是新站我们可以在创建时文章栏目的时,选择网站根目录或者cms根目录,这样就会去掉/a/

1、首选在系统设置那的系统基本参数那,文档HTML默认保存路径,把a去掉。

2、然后在到栏目管理那修改下,文件保存目录,自己命名。

方法二:

如果直接替换目录/a/而,文章中没去了对网站排名不好,会有很多死链接了,我们直接在Dedecms后台中命令中执行下面sql即可,然后重新生成页面。

输入,代码如下:

UPDATE dede_arctype SET typedir=REPLACE(typedir,'a/','')

这个可以用添加自定义字段来做。增加一个叫做fujian的字段,后台发布上传附件,然后模板直接调用{dede:field name='fujian'/}就能调用这个链接。这个功能之前做过,不明白的追问我。

dede57伪静态设置七步法:

第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;

注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静态的。Apache服务器伪静态相对简单,直接在htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite组件,然后配置httpdini文件。

第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:

将所有文档设置为“仅动态浏览”:

update dede_archives set ismake=-1

将所有栏目设置为“使用动态页”:

update dede_arctype set isdefault=-1

第三步、列表页、文章页伪静态修改

打开/include/helpers/channelunithelperphp。

(1)查找:

//动态文章

if($cfg_rewrite == 'Y')

{

return $GLOBALS["cfg_plus_dir"]"/view-"$aid'-1html';

}

替换为

//动态文章

if($cfg_rewrite == 'Y')

{

return "/DedeCMS/DedeCMS57-"$aid'-1html';

}

意思是:将默认的/plus/view-1-1html文章链接格式改为/DedeCMS/DedeCMS57-1-1html。

(2) 查找:

//动态

$reurl = $GLOBALS['cfg_phpurl']"/listphptid="$typeid;

替换为

//动态

$reurl = "/category/list-"$typeid"html";

意思是:将默认的频道或是列表页URL/plus//listphptid=1变更为/dedecms/list-1html形式。

第四步、列表分页伪静态修改

打开/include/arclistviewclassphp

查找:

$plist = str_replace('phptid=', '-', $plist);

替换为

$plist = str_replace('plus/listphptid=', ‘DedeCMS/DedeCMS57-', $plist);

将默认的plus/listphptid=替换成RMB/list-;

意思是:将默认的列表分页链接格式plus/listphptid=x$x$xl修改为DedeCMS/DedeCMS57-x-x-xhtml。

第五步、文章分页伪静态

打开/include/arcarchivesclassphp,找到获取动态的分页列表GetPagebreakDM()函数末尾处:

查找:

$PageList = str_replace("plus/viewphptid=","DedeCMS/DedeCMS57-",$PageList);

替换为

$plist = str_replace('plus/viewphptid=', ’DedeCMS/DedeCMS57-', $plist);

将默认的plus/viewphptid=替换成RMB/huilv-;

意思是:将默认的文章分页链接格式plus/viewphptid=x$x$xl修改为DedeCMS/DedeCMS57-x-x-xhtml

第六步、TAG标签伪静态

DedeCms默认的TAG标签URL,形如/tagsphp/dedecms模板 /,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板 /,是不是好看多了。

下面我们来改一下,打开/include/taglib/taglibphp:

查找:

$row['link'] = $cfg_cmsurl"/tagsphp/"urlencode($row['keyword'])"/";

替换为

$row['link'] = $cfg_cmsurl"/tags/"urlencode($row['keyword'])"/";

这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!

第七步、httpdini伪静态规则:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

RewriteRule ^()/RMB/list-([0-9]+)\html $1/plus/list\php\tid=$2 [I]

RewriteRule ^()/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\html $1/plus/list\php\tid=$2&TotalResult=$3&PageNo=$4 [I]

RewriteRule ^()/RMB/huilv-([0-9]+)-([0-9]+)\html $1/plus/view\php\arcID=$2&pageno=$3 [I]

RewriteRule ^()/()_()_([0-9]+)\html $1/huilv/from=$2&to=$3&num=$4 [I]

RewriteRule ^()/tags\html $1/tags\php [I]

RewriteRule ^()/tags/()(:(\)) $1/tags\php\\/$2 [I]

RewriteRule ^()/tags/()\/(:(\)) $1/tags\php\\/$2\/ [I]

RewriteRule ^()/tags/()\/([0-9])(:(\)) $1/tags\php\\/$2\/$3 [I]

RewriteRule ^()/tags/()\/([0-9])\/(:(\)) $1/tags\php\\/$2\/$3\/ [I]

将上面代码保存为:httpdini 上传到网站的根目录。

如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。

首先在dede后台开启伪静态(开启的方法在系统参数-核心设置)

第一步 首先栏目和文章最好设置成动态浏览 这样才不会生成静态html文件

第二步 设置重写规则 在系统目录下加一个 htaccess文件 内容为:

复制代码

代码如下:

RewriteEngine On

RewriteRule ^plus/list-([0-9]+)html$ /plus/listphptid=$1

RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)html$ /plus/listphptid=$1&totalresult=$2&PageNo=$3

RewriteRule ^plus/view-([0-9]+)-1html$ /plus/viewphparcID=$1

RewriteRule ^plus/view-([0-9]+)-([0-9]+)html$ /plus/viewphpaid=$1&pageno=$2

iis文件写法

复制代码

代码如下:

#首页伪静态规则,如果不使用动态首页,请勿必删除这一行,否则打开首页会出现死循环

RewriteRule ^()/indexhtml $1/indexphp [I]

#列表页伪静态规则

RewriteRule ^()/category/list-([0-9]+)html $1/plus/listphptid=$2 [I]

RewriteRule ^()/category/list-([0-9]+)-([0-9]+)-([0-9]+)html $1/plus/listphptid=$2&TotalResult=$3&PageNo=$4 [I]

#文章页伪静态规则

RewriteRule ^()/archives/view-([0-9]+)-([0-9]+)html $1/plus/viewphparcID=$2&pageno=$3 [I]

#搜索伪静态规则

RewriteRule ^()/searchhtml(:()) $1/searchphp$2 [I]

#TAG标签伪静态规则

RewriteRule ^()/tagshtml $1/tagsphp [I]

RewriteRule ^()/tags/()(:()) $1/tagsphp/$2 [I]

RewriteRule ^()/tags/()/(:()) $1/tagsphp/$2/ [I]

RewriteRule ^()/tags/()/([0-9])(:()) $1/tagsphp/$2/$3 [I]

RewriteRule ^()/tags/()/([0-9])/(:()) $1/tagsphp/$2/$3/ [I]

如果你的系统支持url重写,到这里就可以用伪静态访问了

第三步更改重写的URL

如果用默认的设置, 访问的URL是:

复制代码

代码如下:

http://wwwXXXXcom/plus/view-131-1html

这样的形色, 我们是可以更改这种样式的

找到文件/include/helpers/channelunithelperphp打开

可以看到有这样的语句

复制代码

代码如下:

return $GLOBALS["cfg_plus_dir"]"/view-"$aid'-1html';

这就是文章的url形色

$reurl = $GLOBALS['cfg_phpurl']"/listphptid="$typeid;

这是列表的重写url

可以使url更短一点,完成可以写成:

复制代码

代码如下:

return "/view-"$aid'-1html';

$reurl = "/list-"$typeid"html";

这时重写规则也要更新

复制代码

代码如下:

RewriteEngine On

RewriteRule ^list-([0-9]+)html$ /plus/listphptid=$1

RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)html$ /plus/listphptid=$1&totalresult=$2&PageNo=$3

RewriteRule ^view-([0-9]+)-1html$ /plus/viewphparcID=$1

RewriteRule ^view-([0-9]+)-([0-9]+)html$ /plus/viewphpaid=$1&pageno=$2

更进一步,还可以把view换成自己的任何词语,这也要把include/arcarchivesclassphp文件中的view也一样替换。

发布选项: 生成HTML 仅动态浏览 发文章的时候选一下也不多事。为了以后升级 尽量减少修改文件。

以下这没有试,大家按需要测试吧~~

修改数据库

将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令:

复制代码

代码如下:

update dede_archives set ismake=-1

并将ismake的默认值设置为 -1即动态。

将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令:

复制代码

代码如下:

update dede_arctype set isdefault=-1

DedeCmsTAG标签伪静态

DedeCms默认的TAG标签URL,形如/tagsphp/dedecms57/,非常之难看。打开/include/taglib/taglibphp,找到lib_tag()函数下的:

复制代码

代码如下:

$row['link'] = $cfg_cmsurl"/tagsphp/"urlencode($row['keyword'])"/";

替换为

$row['link'] = $cfg_cmsurl"/tags/"urlencode($row['keyword'])"/";

修改分页代码

我们需要修改include/arctaglistclassphp,将分页函数替换为:

复制代码

代码如下:

/ 获取动态的分页列表

@access public

@param int $list_len 列表宽度

@param string $listitem 列表样式

@return string

/

function GetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno")

{

$prepage="";

$nextpage="";

$prepagenum = $this->PageNo - 1;

$nextpagenum = $this->PageNo + 1;

if($list_len == "" || preg_match("/[^0-9]/", $list_len))

{

$list_len = 3;

}

$totalpage = $this->TotalPage;

if($totalpage <= 1 && $this->TotalResult > 0)

{

return "<span class="pageinfo">共1页/"$this->TotalResult"条</span>";

}

if($this->TotalResult == 0)

{

return "<span class="pageinfo">共0页/"$this->TotalResult"条</span>";

}

$maininfo = "<span class="pageinfo">共{$totalpage}页/"$this->TotalResult"条</span>rn";

$purl = $this->GetCurUrl();

$basename = basename($purl);

$tmpname = explode('', $basename);

$purl = str_replace($basename, '', $purl)urlencode($this->Tag);

//var_dump($purl);exit;

//$purl = "/"urlencode($this->Tag);

//获得上一页和下一页的链接

if($this->PageNo != 1)

{

$prepage="<li><a href='"$purl"-$prepagenum'html>上一页</a></li>rn";

$indexpage="<li><a href='"$purl"-1html'>首页</a></li>rn";

}

else

{

$indexpage="<li><a>首页</a></li>rn";

}

if($this->PageNo!=$totalpage && $totalpage>1)

{

$nextpage="<li><a href='"$purl"-$nextpagenumhtml'>下一页</a></li>rn";

$endpage="<li><a href='"$purl"-$totalpagehtml'>末页</a></li>rn";

}

else

{

$endpage="<li><a>末页</a></li>rn";

}

//获得数字链接

$listdd="";

$total_list = $list_len 2 + 1;

if($this->PageNo >= $total_list)

{

$j = $this->PageNo - $list_len;

$total_list = $this->PageNo + $list_len;

if($total_list > $totalpage)

{

$total_list = $totalpage;

}

}

else

{

$j=1;

if($total_list > $totalpage)

{

$total_list = $totalpage;

}

}

for($j; $j<=$total_list; $j++)

{

if($j == $this->PageNo)

{

$listdd= "<li class="thisclass"><a>$j</a></li>rn";

}

else

{

$listdd="<li><a href='"$purl"-$jhtml'>"$j"</a></li>rn";

}

}

$plist = '';

if(preg_match('/info/i', $listitem))

{

$plist = $maininfo' ';

}

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' ';

}

return $plist;

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » dedecms栏目链接怎么调用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情