dedecms栏目链接怎么调用
进入后台找到需要优化的栏目 点击后面的更改
栏目列表选项:也可以选着 链接到第一页
栏目属性:选着最终列表栏目 除非你的那个栏目是频道
这个是后台设置 前台的模板标签的使用方法
标签名称: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;
}
0条评论