DEDEcms5.7搜索結(jié)果頁面中調(diào)用自定義字段,織夢教程
導(dǎo)讀:織夢教程織夢教程找了好多文章和教程,卻發(fā)現(xiàn)dedecms的標(biāo)簽底層模板字段不包括這個字段呢?這就大大限制了靈活性,但dede也不可能讓所有字段都允許調(diào)用的,那樣就會大大降低系統(tǒng)免費(fèi)織夢模板織夢模板。
找了好多文章和教程,卻發(fā)現(xiàn)dedecms的標(biāo)簽底層模板字段不包括這個字段呢?這就大大限制了靈活性,但dede也不可能讓所有字段都允許調(diào)用的,那樣就會大大降低系統(tǒng)效率,所以今天分享的是一個比較完美解決這個問題的方法,配合dede標(biāo)簽,幾乎可以說沒有什么不能調(diào)用的了
首先把上面代碼放到 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]:”; }
利用自定義函數(shù)對標(biāo)簽進(jìn)行擴(kuò)展 如: {dede:標(biāo)記 function=’table(“要調(diào)用的表名”,”要調(diào)用的字段”,@me)’/} 這里的“標(biāo)記”就是要調(diào)用的表的主鍵的值,常見的就是id和aid、mid、uid之類的 標(biāo)簽底層模板內(nèi) [field:字段 function=table(“要調(diào)用的表名","要調(diào)用的字段",@me)/]
舉例 例如arclist標(biāo)簽底層模板字段是沒有body字段的,就是說不能用arclist把文章內(nèi)容調(diào)用出來的,當(dāng)然這種需求很少,但不是沒有,現(xiàn)在我們就可以這樣使用
還有很多作用,如type標(biāo)簽調(diào)用欄目簡介,等等
另一種DEDEcms5.7搜索結(jié)果頁面中調(diào)用自定義字段處理辦法 默認(rèn)dedecms搜索頁面是沒法使用 [field:price/] 來調(diào)用 dede_addonshop 里面的 price 字段, 解決方法: 修改 include/arc.searchview.class.php 第一處: 將大約 320 行地方的代碼: if($this-ChannelType 0 || $this-ChannelTypeid 0){ if($this-ChannelType==0) $id=$this-Cha 默認(rèn)dedecms搜索頁面是沒法使用[field:price/]來調(diào)用dede_addonshop里面的price字段,解決方法:
修改include/arc.searchview.class.php 第一處: 將大約320行地方的代碼: if($this->ChannelType < 0 || $this->ChannelTypeid< 0){ if($this->ChannelType==”0″) $id=$this->ChannelTypeid; else $id=$this->ChannelType; $row =$this->dsql->GetOne(“Select addtable From `cn_channeltype` Where id=$id”); $addtable = trim($row['addtable']); $this->AddTable=$addtable; }else{ $this->AddTable=”cn_archives”; } 改為: if($this->ChannelType==”0″) $id=$this->ChannelTypeid; else $id=$this->ChannelType; $row =$this->dsql->GetOne(“Select addtable From `cn_channeltype` Where id=$id”); $addtable = trim($row['addtable']); if($this->ChannelType < 0 || $this->ChannelTypeid< 0){ $this->AddTable=$addtable; $this->AddonTable=”; }else{ $this織夢模板安裝->AddTable=”cn_archives”; $this->AddonTable=$addtable; } 第二處: 將大約500行的地方的代碼: $query = “Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule, act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath from `{$this->AddTable}` arc left join `cn_arctype` act on arc.typeid=act.id where {$this->AddSql} $ordersql limit $limitstart,$row”; 改為: if (!empty($this->AddonTable)) { $this->AddonTable=”left join `{$this->AddonTable}` addon on addon.typeid=arc.typeid”; }else { $this->AddonTable=”; } $query = “Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule, act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath,addon.* from `{$this->AddTable}` arc left join `cn_arctype` act on arc.typeid=act.id {$this->AddonTable} where 織夢模板免費(fèi)下裁{$this->AddSql} $ordersdede網(wǎng)站模板ql limit $limitstart,$row”; 好了,可以在search.htm中使用[field:price/]了,只要你的模型有附加表,你就可以使用表里的任何字段 另外注意:如果附加表里有字段名和主表字段名一樣的,使用[field:xxxx/]的結(jié)果是未定義的
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-07-22 ,文章DEDEcms5.7搜索結(jié)果頁面中調(diào)用自定義字段,織夢教程主要講述自定義,搜索結(jié)果,織夢網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_33998.html
為你推薦與DEDEcms5.7搜索結(jié)果頁面中調(diào)用自定義字段,織夢教程相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12