織夢模型字段的調用分析,織夢教程
導讀:織夢教程織夢教程首先要搞明白,什么是模型字段,就是我們在后臺內容模型管理更改內容模型,這個里面添加的字段,以軟件模型為例子,如下圖所示。 在前臺調用這個些字段,非常容易,例如,dede58模板織夢模板。
首先要搞明白,什么是模型字段,就是我們在后臺——>內容模型管理——>更改內容模型,這個里面添加的字段,以軟件模型為例子,如下圖所示。
在前臺調用這個些字段,非常容易,例如,在內容頁調用只需要用標簽{dede:field.filetype/}這樣就可以了,如果在首頁調用,只需要用這個標簽{dede:arclist addfields="filetype" channelid=3 tydede下瓻模板下載peid=''}{/dede:arclist}調
用,就可以了,這還有什么好說的,但是今天我要說的是不是簡單的這些調用。
例如織夢基地網站的篩選功能,如下圖所示。
如果用類似上面的標簽,來自動調用出我們后臺添加的字段,來實現這個功能是調用不出來的,目前,織夢只能調用站長添加的字段的值,沒有現成的標簽來做同上面的功能來,這就用到了織夢的模板引擎里面的標簽了。
若想調用出,并帶上連接,那么,就要從這個內容模板里面的字段配置里面調用出來,然后,再在“文檔列表類”里面進行修改,這樣就實現了織夢基地上面的功能了,也許會有人問這個功能是不是也是用一個標簽來實現的,是的,只不過是自定義標簽,自己寫的。
去修改“文檔列表類”不是本篇重點,要寫個這個需要你php知道,也不是多么難,本篇主要介紹,上一部分,如果把這些字段,取出來,然后,再與文檔列表類進行整合,實際上這二個部分,功能互相不干涉,一個是實現篩選,一個是調出我們自己定義標簽。
如何調用出呢?我們只需要知道這些字段存儲在哪里,實際上這里面的字段,肯定在模型里面,我們從如何添加字段,就可以看出,是進入到內容模型管理,才可以添加字段,那么,我們找到對應的數據庫表#@_channeltype,里面字段fieldset 對應的值就是我們后臺添加的字段,以及每個字段的相關信息,例如字段的類型,字段的itemname屬性等。
這些字段,只是在這個模型表dede_channeltype里面以上面的這種字段串的形容存在,這些字段,以真正的字段存在是在對應的附加表里面,例如軟件的附加表dede_addonsoft打開這個表,你會發現,我們后臺添加的字段,就是這個附加表里面的字段。從這里我們就知道,當我們添加字段時,字段會以字符串形式,把存儲在模型表dede_channeltype里面的字段fieldset里面,同時,把對應的字段,以真正的字段存儲在對應的附加表dede_addonsoft里面。
通過上面的分析我們知道了,如果調用出篩選的那些字段值,只需要,從模型表調用來,然后,通過織夢模板引擎把fieldset值進行foreach就可以循環出來,分析到這里,那就容易了。
這里要分前臺調用和后臺調用二種:前臺就是織夢基地的篩選功能,而后臺例如軟件添加后,生成靜態網頁時用到的調用分析。這二種調用實際上是一樣的,都是通過靜態模板引擎dedetag.class.php來實現的。具體實現代碼,我總結了一下,以下代碼,只是步驟,為了演示方便,有些代碼我已經刪掉。
1.從數據庫表#@_channeltype里面查詢出字段fieldset的值。
2.引入靜態模板引擎文件dedetag.class.php實例化對象,載入模板字段串(也就是fieldset值,因為,他是字段串形式存在于數據庫表#@_channeltype里面的),把里面的標記,例如,fieldede商城模板dtype,標記的名稱循環出來。代碼如下。
$dtp = new DedeTagParse();
$dtp->SetNameSpace('field','<','>');
$dtp->LoadSource($fieldset);
$dede_addonfields = '';
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $tid=>$ctag)
{
if($loadtype!='autofield'
|| ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )
&dede58模板nbsp; {
$dede_addonfields .= ( $dede_addonfields=="" ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
echo GetFormItemA($ctag);
}
}
}
如果大家想研究的話,請去研究一下軟件發布的功能,那個軟件發布功能就是一個非常好的例子。如果把這個功能研究透徹了,那么,不管你調用附加表內容都非常容易了。
以上分析的都是織夢二次開發需要,搞明白的,如果你做二次開發完,就是一個普通站長只學學標簽調用即可,如果你想做一名織夢二次開發人員,那么,上面的內容必須精通,研究這個需要相當的php基地知識,所以,在大家研究這個功能前,要先學習一個php的基本知識。相關dede58模板織夢模板。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-20 ,文章織夢模型字段的調用分析,織夢教程主要講述字段,模型,織夢網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_31181.html