首頁 >CMS教程 >DEDECMS >DEDE範本中如何使用if進行多分支判斷

DEDE範本中如何使用if進行多分支判斷

藏色散人
藏色散人原創
2019-12-19 09:11:582644瀏覽

DEDE範本中如何使用if進行多分支判斷

DEDE範本中如何使用if進行多分支判斷?

我們在用dede做範本的時候,常常會遇到需要根據某個條件判斷來分別顯示不同的內容的情況,也就是dede模板中的多分支判斷。例如典型的,我們需要根據風險管理資料庫表中的風險等級欄位risklevel的值的不同分別顯示不同的風險提示圖示。如圖1 所示。

DEDE範本中如何使用if進行多分支判斷

紅色方塊中的投資項目名稱前面的圖示表示了不同的風險等級,一共有AA,D,E,HR 4個風險等級。在資料庫表中保存的分別是這4個等級取值中的一個,如圖2 所示。

DEDE範本中如何使用if進行多分支判斷

我們的風險等級欄位risklevel 是可以在清單範本中取得到其取值的,因為我們在內容模型中已經設定了該欄位允許被在清單模板中取值。

如圖 3 所示。

DEDE範本中如何使用if進行多分支判斷

這樣,我們在清單範本中就很容易透過 

{dede:listpagesize='10'}
    [field:risklevel/]
 {/dede:list}

來得到風險等級的值。

但是我們不同風險等級對應的提示圖示卻位於圖片目錄下,而且這些提示圖片檔案的名稱沒有任何規律,那麼我們就需要透過if判斷來根據風險等級的不同取值來設定不同的提示圖片路徑。 

那應該如何來判斷呢? 

需要使用到[field:array]標籤,那我們該如何來判斷呢?

我們首先要向大家介紹一個非常有用的dede標籤:[field:array] 標籤,該標籤是標籤{dede:field name='array' /}的簡寫形式,該標籤用在列表標籤內部,例如:{dede:list}標籤, {dede: arclist}等標籤內部。

我們知道,在清單標籤內部我們可以透過[field:欄位名稱/]的形式得到某個資料庫表格欄位的取值,那麼當我們想要進行分支判斷的時候,例如:根據風險等級取值的不同得到不同的圖示路徑,這時候我們就必須藉助[field:array] 標籤了,[field:array] 標籤標籤代表查詢得到的資料庫表中的一筆記錄,具體的判斷程式碼如下:

[field:array runphp='yes']          
                    if(@me['risklevel']=="HR")@me="HR.png";
                        else if(@me['risklevel']=="D")@me="D.png";
                                  else if(@me['risklevel']=="AA")@me="AA.png";
                    [/field:array]              
                    {/dede:list}

其意思就是說如果查詢得到的風險等級字段的取值是HR,那麼將輸出HR.png, 如果查詢得到的風險等級字段的取值是D,那麼將輸出D.png,如果查詢得到的風險等級欄位的取值是AA,那麼將輸出AA.png, 這裡的HR.png,只是一個字串,代表圖片檔案所在的位置,你可以設定成任意的圖片路徑,上面的程式碼是一種分支條件輸出語句,@me代表的就是輸出變量,剛進入標籤field:array時,@me代表資料庫的記錄,其資料類型是數組,我們根據其中risklevle的值來判斷,從而將@me設定成不同的值,當退出標籤field:array時,@me的值就會顯示在原始位置。

這個標籤的功能非常強大,它適合我們最常見的場景,當我們在模板頁面中需要根據特定的條件來進行if分支判斷來顯示不同的內容時,採用field:array標籤將為我們帶來極大的方便。

以上是DEDE範本中如何使用if進行多分支判斷的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn