dede:php 中写的方法,怎么在其他织梦标签怎么调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dede:php 中写的方法,怎么在其他织梦标签怎么调用相关的知识,希望对你有一定的参考价值。
参考技术A 不少朋友需要在DedeCms的问答系统、留言本、会员空间导航里调用系统标签,但默认是不支持系统标签调用的,需要对系统文件进行简单的修改。第一步:打开"/include/common.func.php",
然后在该文件中加入一个函数,代码如下:
function pasterTempletDiy($path)
require_once(DEDEINC."/arc.partview.class.php");
global $cfg_basedir,$cfg_templets_dir;
$tmpfile = $cfg_basedir.$cfg_templets_dir."/".$path;//模版文件的路径
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->Display();
第二步,加上上面的函数之后,也就可以调用主站下的/templets/default/所有模板文件,比如要在问答模块的主页调用主站的随机文章,你可 以在主站 模板/templets/default/下新建一个head.htm文件,然后在head.htm里面加入你需要的标签和标签属性:
dede:arclist titlelen='100' row='15' orderby='rand'
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
/dede:arclist
第三部,自定义yourfile.php文件,内容如下
<?php
require_once("../../include/common.inc.php");
?>
想读取公共文件,如:dede:include filename=''head.htm/就使用<?php pasterTempletDiy("cdqx/head.htm");?>
大功告成!
即可使用<?php pasterTempletDiy("default/head.htm");?>
#yyds干货盘点# 织梦根据TAG标签来搜索展示相关文章
在网站建设生成的过程中,我们会给一个文章添加几个TAG标签,但是,当我们想查询该标签下的相同文章时,我们应该怎么办呢?今天让我们来看看怎么新建一个TAG的列表页面。
需求:
1.文章列表页面
2.根据TAG搜索
3.每个文章有多个TAG,每个TAG有不同的链接
分析:
1.列表页面根据文章列表页面相同,只是修改调取方式
2.各个页面有不同的TAG链接,我们这里就只能修改TAG的PHP调取方法
实施:
新建一个tags.php在网站的根目录,如果你在这个目录可以搜索到index.html或者index.php就说明对了!加入代码
<?php
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once (DEDEINC . "/arc.taglist.class.php");
$PageNo = 1;
if(isset($_SERVER[QUERY_STRING]))
$tag = trim($_SERVER[QUERY_STRING]);
$tags = explode(/, $tag);
if(isset($tags[1])) $tag = $tags[1];
if(isset($tags[2])) $PageNo = intval($tags[2]);
else
$tag = ;
$tag = FilterSearch(urldecode($tag));
if($tag != addslashes($tag)) $tag = ;
if($tag == ) $dlist = new TagList($tag, tag.htm);
else $dlist = new TagList($tag, taglist.htm);
$dlist->Display();
exit();
这个大概的功能就是让你的链接跳转到列表页面去
当然,我们这边就要加入列表页面的代码,在你的代码页面/templets中新建taglist.htm页面,在这个栏目下可以搜索到index.htm就说明是正确的目录。加入代码
//你的列表页代码
//下面的代码是修改你列表页的dede:list pagesize=20/dede:list调用方法
dede:sql sql="SELECT * FROM ( dede_taglist t left join dede_archives a on t.aid = a.id) left join dede_member m on a.writer=m.uname where t.tag= ~title~ LIMIT 0 , 10"
/dede:sql
到这里,我们跳转后的页面代码就修改好了,接下来,我们得去新建首页或其他页面的调用方法
打开/include/helpers/archive.helper.php页面,在底部加入代码
/**
* 获得某文档的所有tag带样式
*
* @param int $aid 文档id
* @return string
*/
if ( ! function_exists(GetTagsdai))
function GetTagsdai($aid)
global $dsql;
$tags = ;
$query = "SELECT tag FROM `#@__taglist` WHERE aid=$aid LIMIT 0 , 2";
$dsql->Execute(tag,$query);
while($row = $dsql->GetArray(tag))
$tags .= "<h3 style=margin-left: 8%;font-size: 15px;text-align: left;color: #b6b6b6;float: left;;>#<a style=color: #b6b6b6 href=/tags.php?".urlencode($row[tag]).">".$row[tag]."</a> </h3>";//此处的样式可以自行修改
return $tags;
然后首页或者列表页面调用的时候在调用语句中加入
[field:id function=GetTagsdai(@me)/]
就可以啦~~
例:
dede:arclist typeid=2 row=12 titlelen=150 orderby=id
<div style="margin-left:-6%;height: 36px;">[field:id function=GetTagsdai(@me)/]</div>
/dede:arclist
展现样式:
以上是关于dede:php 中写的方法,怎么在其他织梦标签怎么调用的主要内容,如果未能解决你的问题,请参考以下文章
急问,织梦 dede 的tag标签,在删除后 前台页面仍然存在,怎么办?