织梦系统使用扩展函数调用数据表的方法

2020/03/2916:02:28 发表评论 55

一般在织梦系统的建站中,可以使用extend.func.php来扩展自己的自定义函数库,在全站调用。

织梦系统使用扩展函数调用数据表的方法

1、代码增加位置

首先修改/include/extend.func.php,这段代码加进去:

function table($table, $field, $id)
{
global $dsql;
$primarys = array();
$table = strpos($table, '#@_') === false?(strpos($table, 'dede_') === false?'dede_'.$table:str_replace('dede_','dede_',$table)):$table;
$dsql -> Execute("me","SHOW COLUMNS FROM `$table`");
while ($r = $dsql->GetArray())
{
  if($r['Key'] == 'PRI') $primarys[] = $r['Field'];
	  }
  if(!empty($primarys))
	  {
  $primary = $primarys[0];
  $result = $dsql -> GetOne("SELECT `$field` FROM `$table` WHERE `$primary`= $id");
	  }
	return isset($result[$field])?$result[$field]:$result[$field];
}

2、模板文件调用方法

然后在我们需要调用数据的地方加上调用代码:

{dede:field.字段 function='table("要调用的数据表","要调用的字段",@me)'/} //内容页,首页调用代码
[field:字段 function='table("要调用的表名","要调用的字段",@me)'/] //列表页频道页调用代码

举例说明:

{dede:field.id function='table("dede_addonarticle","body",@me)'/}

释义:调用id为本文id的文章的body部分。
这里的“标记”就是要调用的表的主键的值,常见的就是id和aid、mid、uid之类的。

在织梦系统的扩展函数extend.func.php,实现自定义的函数,在全站调用。

比如:扩展实现任意地方调用任意模型的自定义字段。

写入代码到extend.func.php

//织梦TAG标签自定义字段description调用函数
function mbp_tag_description($tid)
{
    global $dsql;
 $row = $dsql->GetOne("select * from `dede_tagindex` where id='$tid' ");
 return $row['description'];
}

在模板列表页调用代码:

[field:id function='mbp_tag_description(@me)'/]

在模板里内容页调用代码:

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

关于dedecms的扩展函数开发笔记。

 

历史上的今天:

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar