中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php cms頁面的設計和布局實例分析

發布時間:2022-03-14 17:14:27 來源:億速云 閱讀:167 作者:iii 欄目:web開發

今天小編給大家分享一下php cms頁面的設計和布局實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

  Field的意思是字段,我們在展示一條數據的時候總是要展示具體的某些字段,有時候是一條數據,有時候是個循環。

  一條數據的時候很好處理,我們把數據準備好,然后替換相關的[field]標簽就行了。當循環輸出的時候,其實只需要調用顯示一條數據的方法就行了。

  Field的標簽格式大概是這樣:[field:PostTime length=10 dateFormat="yyyy-MM-dd HH:mm"/] 可以看出,Field也有自己的一些屬性,就像一個Label一樣。

  我們在展示Field的時候有時不可能完全按照數據庫的字段名來展示,比如 發布時間PostTime字段,我們可能需要展示為“多久以前”,比如“剛剛”,“5分鐘前”等字樣,這時候就需要調用一個方法(Render)來處理。所以Field類需要一個展示的方法成員,并且有一個存儲初始值的Value字段。

  為了實現代碼的一致性,我們統一調用Render方法,但Render方法具體做什么,天知道。我們可以設計一個FieldBase,默認返回初始值Value。

  類的大概設計是這樣子:

  public class FieldBase

  {

  public string Name {get;set;}

  public string Value {get;set;}

  public string Html {get;set;}//html用來存放Field的完整標簽

  public virtual string Render()

  {

  return Value;

  }

  }

  那么,這么一來只要我們稍有不一致的Render都要實現一個具體的Field類嗎?那豈不是傳說中的類爆炸。而且,我們還要考慮如何去通過簡單的field標簽實例化這些不同Render的子類,想想就頭大。顯然用繼承的方式來設計是有問題的。

  所以,我們得把Render改下:

  //…

  public event Func Render;

  public virtual string GetRender()

  {

  //if(SetValue!=null)

  //    SetValue(this,RowData)

  if(Render!=null)

  return Render(this,Value);//這句表明了一個順序問題:在調用GetRender之前,假如需要Field.Value的值的話必須先賦值,后面我們會提到。

  else

  return Value;

  }

  //public Object RowData {get;set;}

  public Func SetValue;

  //…

  是的,我們只是增加了一個事件,并且修改了下名字,這樣就想外部公布了一個自定義的方法,但內部實現調用機制。而且GetRender仍然是可重寫的,比如一些非常特殊的Field標簽,可能就需要重寫FieldBase。

  這個GetRender寫的非常簡單,實際使用情況是復雜的,你有沒有注意掉我們忽略掉了field的Parameters(那些length formate之類的),其實調用情況和Label的Parameter類似。

以上就是“php cms頁面的設計和布局實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

孝义市| 桃园县| 娄底市| 土默特左旗| 成都市| 海城市| 澄城县| 蚌埠市| 望都县| 孝昌县| 肥乡县| 武夷山市| 杂多县| 昌黎县| 抚顺市| 黔南| 确山县| 任丘市| 华安县| 司法| 邓州市| 通化县| 绥江县| 靖江市| 洛扎县| 徐州市| 连平县| 大埔区| 阳高县| 增城市| 水城县| 民勤县| 敦煌市| 正安县| 依兰县| 会理县| 上栗县| 伊吾县| 池州市| 类乌齐县| 曲周县|