欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > DEDECMS教程 >
DEDECMS教程

织梦dedecms自定义函数的一些应用

(元素模板) / 2020-10-11 18:38

织梦dedecms的自定义函数需要写在include/extend.func.php这个文件内,这里列举几个常用的自定义函数,主要是后台栏目直接的关联为主:

/**

*  调用同级栏目内其他文档

*  根据指定的文档ID,获取同级其他的

* @param     $id   指定的文档ID

*/

function getOtherDocsWithSameTypeid($id)

{

global $dsql;

//相关项目

$relateproject="";

//相关栏目ID

$relatetypeid = "";

//$dsql->GetOne 是获取一条记录内容,这里依据当前页面的文档ID查询主表数据。 

$row = $dsql->GetOne("SELECT * FROM chj_archives where id='$id'");

//获取当前ID所在的栏目ID

$typeid=$row['typeid'];

//随机查询同级栏目其信息3条,并排除自身

$dsql->SetQuery( "SELECT  * FROM chj_archives AS a where  a.typeid='$typeid' and a.id <> '$id'  order by rand() limit 3 ");

//执行查询

$dsql->Execute();

//获取记录数量

$ns = $dsql->GetTotalRow();

//循环处理数据集合

while($row=$dsql->GetArray())

{

 /*   相关专题数据    */

  //文档ID

$id = $row["id"];

//文档标题

$title = cn_substr($row["title"],80,0);

//指定文档ID的这篇文档信息(GetOneArchive),包括URL,标题等等

$urlarray = GetOneArchive($id);

//对应的URL

$url = $urlarray['arcurl'];

//缩略图处理

$litpic = replaceurl($row["litpic"]);

//项目项目处理

$relateproject.='<a href="'.$url.'"><img src="'.$litpic.'" alt="'.$title.'"></a>';

}

if($ns>0){

$relateproject= ' <div class="tjb_img clearFix">

  '.$relateproject.'

</div> ';

}

return $relateproject;

}

然后在详情页的模板内调用:

{dede:field.id function='getOtherDocsWithSameTypeid(@me)'/}

然后是跨栏目的关联

/**

*  获取项目专题页相关医生信息

*  根据当前项目专题所属的栏目ID,获取相关的医生

* @param     $typeid     项目所在栏目ID

*/

 

function getProjectArticleRelateDoctor($typeid)

{

global $dsql;

$relatedoctor="";

$relatetypeid = 0;

$indicators="";

$list="";

$counter=0;

//根据当前项目所在栏目ID,找到对应医生栏目ID

switch ($typeid)

{

case 14:  //鼻部项目

$relatetypeid= 3;   //整形医生

break;

case 15:  //眼部项目

$relatetypeid= 3;  //整形医生

break;

case 24:   //下巴项目

$relatetypeid= 3;  //整形医生

break;

case 25:    //脂肪项目

$relatetypeid= 3;   //整形医生

break;

case 26:     //唇部项目

$relatetypeid= 3;   //整形医生

break;

case 17:   //胸部项目

$relatetypeid= 3;  //整形医生

break;

case 18:   //私密项目

$relatetypeid= 3;    //整形医生

break;

case 19:   //体雕项目

$relatetypeid= 3;    //整形医生

break;

case 20:    //纹绣项目

$relatetypeid=5;    //纹绣师

break;

case 27: //祛痣祛胎记

$relatetypeid= 4;  //皮肤医生

break;

case 28:    //修复疤痕

$relatetypeid= 4;    //皮肤医生

break;

case 29:    //嫩肤美白

$relatetypeid= 4;     //皮肤医生

break;

case 30:         //激光脱毛

$relatetypeid= 4;    //皮肤医生

break;

case 31:    //美肤祛斑

$relatetypeid= 4;    //皮肤医生

break;

case 32:   //嫩肤祛痘

$relatetypeid= 4;    //皮肤医生

break;

case 33:    //紧致祛皱

$relatetypeid= 4;    //皮肤医生

break;

case 22:    //玻尿酸

$relatetypeid=3;

break;

case 23:    //BOTOX

$relatetypeid= 3;

break;

case 34:    //衡力

$relatetypeid= 3;

break;

default:

$relatetypeid= 3;

}

// a.id =b.aid  通过文档ID主表和附加表关联

//  根据对应医生所属栏目ID 查询医生信息,随机获取2条医生信息记录

$dsql->SetQuery( "SELECT * FROM chj_archives AS a,chj_addondoctors AS b

where a.id =b.aid and a.typeid='$relatetypeid' order by rand() limit 2 ");

//执行查询

$dsql->Execute();

//获取记录数量

$ns = $dsql->GetTotalRow();

//循环处理数据集合

while($row=$dsql->GetArray())

{

// 医生所在文档ID

$id = $row["id"];

//医生文档标题

$title = cn_substr($row["title"],80,0);

//该医生的文档信息

$urlarray = GetOneArchive($id);

//医生URL

$url = $urlarray['arcurl'];

//医生缩略图

$thumb = replaceurl($row["thumb"]);

//医生职位

$zhiwei = $row["zhiwei"];

//医生擅长项目

$shanchang = $row["shanchang"];

 

$list.= '<li class="clearFix">

                <a href="'.$url.'" class="tjb_l"><img src="'.$thumb.'" alt=""/></a>

                <div class="tjb_r">

                    <p class="p3"><a href="'.$url.'" class="tjb_name">'.$title.'</a></p>

                    <p class="p4"><a href="'.$url.'">'.$zhiwei.'</a></p>

                    <div class="tjb_sc clearFix">

                        <p>擅长项目:</p>

                        <p>'.$shanchang.' </p>

                    </div>

                    <div class="tjb_button">

                        <a href="'.$url.'"><img src="//img.hzshuangmei.com/pc/tjb_button.png" alt=""/></a>

                    </div>

                </div></li>';

}

if($ns>0){

$relatedoctor.= ' <ul class="tjb_zj clearFix"> '

    . $list

  .'</ul>';

}

return $relatedoctor;

}

模板内的应用:

 

{dede:field.typeid function='getProjectArticleRelateDoctor(@me)'/}

Copyright @ 2013-2019 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com