1. 程式人生 > 實用技巧 >將逐浪CMS標籤與JS判斷靈活結合,美的不要不要的

將逐浪CMS標籤與JS判斷靈活結合,美的不要不要的

之前發過一個有關“相關文章的內容”
逐浪CMS Tags內容關鍵詞設計優化方向討論https://bbs.z01.com/PItem?id=18453[分享自逐浪CMS開發者社群社群]
最近在使用過程當中,發現相關文章這塊在使用過程當中依然有所不足。比如說“上格築家”這個關鍵詞吧。如果說超過了10條,或者超過了我們所預期的條數,那樣式展示,或者優化效果可以達到我們的要求,如果沒超過呢?
比如說除了這條,再沒有別的了那可能相關這裡就沒有別的內容了?這怎麼辦?
在MVC當中,判斷標籤可以選擇為空則,或者欄位num<10 則怎麼處理
但是在逐浪CMSV8當中判斷標籤的使用卻是條件比較不好符合的那怎麼辦呢?

之前有一次我將CSS寫法寫進了標籤設計當中
這次我決定用JS來控制一下
首先咱們先寫一個正常的相關文章內容




然後將標籤引用
{ZL.Label id=”相關文章列表帶圖簡介輸出” ShowNum=”10” TitleNum=”30” KeyWord=”0” Synnum=”100” /}
根據我測試的文章,我得到了3條相關內容

這樣有點少,那怎麼辦?然後我再呼叫7個別的內容,並要求內容本文章內容不顯示
寫標籤




這樣我們會發現我們需要再呼叫幾個內容成了問題,那如果根據第一個標籤的結果來控制第二個結果呢?
逐浪CMS四則運算,將四則運算用當shownum這裡
先寫一個統計標籤,統計第一個標籤的文章數,




這樣得到了第一個標籤的數後,我們用10減去這個數,剩下的就是第二個標籤要顯示的數了
然後我們將四則運算帶到第二個標籤當中控制資料數目

程式碼如下:
{ZL:Calc(10-{ZL.Label id="相關文章列表帶圖簡介輸出統計數" KeyWord="@KeyWord" /},0)/}
樣式調整

<ul class="news-tumlist">
{ZL.Label id="相關文章列表帶圖簡介輸出" ShowNum="10" TitleNum="30" KeyWord="{SField sid="文章模型資料來源標籤" FD="Tagkey" page="0"/}" Synnum="100" /}
</ul>
<ul class="news-tumlist">
{ZL.Label id="整站文章列表帶圖簡介輸出" ShowNum="" TitleNum="30" KeyWord="{SField sid="文章模型資料來源標籤" FD="Tagkey" page="0"/}" Synnum="100" /}
</ul>

上圖

這樣我們的問題是不是就完了?
不是的當相關文章低於10的時候是正常的。可是當相關內容超過10的時候問題就來了
{ZL:Calc(10-{ZL.Label id="相關文章列表帶圖簡介輸出統計數" KeyWord="@KeyWord" /},0)/}
這段程式碼來控制資料數目會出現負值

負值會調用出多少,我沒有數,反正會很多
那怎麼辦呢?我採用了JS來控制第二個標籤

<div class="list-more">
<ul class="news-tumlist">
{ZL.Label id="整站文章列表帶圖簡介輸出" ShowNum="" TitleNum="30" KeyWord="{SField sid="文章模型資料來源標籤" FD="Tagkey" page="0"/}" Synnum="100" /}
</ul>
</div>
<script>
var num = {ZL.Label id="相關文章列表帶圖簡介輸出統計數" KeyWord="{SField sid="文章模型資料來源標籤" FD="Tagkey" page="0"/}" /}
if(num < 10){
   $(".list-more").show();
  }else{
    $(".list-more").hide();
  }
</script>

樣式呈現沒問題,但是多餘的程式碼會進行隱藏處理
這樣我們就可以先這樣用了

此貼算是一個半拉子工程吧,後面我就用資料標籤的形式再嘗試改一下。如果成功了,就分享出來,如果失敗了,就請大神授技了