织梦系统有一个extend.func.php文件,我们可以在里面写上自定义函数来实现自己想要的功能,比如今天我们要实现扩展函数来调用Dede的任意一个数据表的内容。
	
	首先修改/include/extend.func.php,里面的把这段代码加进去:
	//自定义函数调用数据表    
	
		
			
				
					
						
							
								
									
										
											
												01
											
												function table($table, $field, $id)
										
									
								
							
							
								
									
										
											
												02
											
												    {
										
									
								
							
							
								
									
										
											
												03
											
												    global $dsql;
										
									
								
							
							
								
									
										
											
												04
											
												    $primarys = array();
										
									
								
							
							
								
									
										
											
												05
											
												    $table = strpos($table, '#@_') === false?(strpos($table, 'dede_') === false?'dede_'.$table:str_replace('dede_','dede_',$table)):$table;
										
									
								
							
							
								
									
										
											
												06
											
												    $dsql -> Execute("me","SHOW COLUMNS FROM `$table`");
										
									
								
							
							
								
									
										
											
												07
											
												    while ($r = $dsql->GetArray())
										
									
								
							
							
								
									
										
											
												08
											
												    {
										
									
								
							
							
								
									
										
											
												09
											
												        if($r['Key'] == 'PRI') $primarys[] = $r['Field'];
										
									
								
							
							
								
									
										
											
												10
											
												            }
										
									
								
							
							
								
									
										
											
												11
											
												        if(!empty($primarys))
										
									
								
							
							
								
									
										
											
												12
											
												            {
										
									
								
							
							
								
									
										
											
												13
											
												        $primary = $primarys[0];
										
									
								
							
							
								
									
										
											
												14
											
												        $result = $dsql -> GetOne("SELECT `$field` FROM `$table` WHERE `$primary`= $id");
										
									
								
							
							
								
									
										
											
												15
											
												            }
										
									
								
							
							
								
									
										
											
												16
											
												          return isset($result[$field])?$result[$field]:$result[$field];
										
									
								
							
							
								
									
										
											
												17
											
												        }
										
									
								
							
						
					
				
			
		
	
	
	然后在我们需要调用数据的地方加上调用代码:
	{dede:field.字段 function='table("要调用的数据表","要调用的字段",@me)'/} //内容页,首页调用代码
	[field:字段 function='table("要调用的表名","要调用的字段",@me)'/] //列表页频道页调用代码
	举例说明:
	{dede:field.id function='table("dede_addonarticle","body",@me)'/}
	释义:调用id为本文id的文章的body部分。
                    标签: