那麼碎片應該具備哪些功能呢?落葉認為應該具備如下功能:
2) 能夠選擇使用標籤自動呼叫資料或者供推送資料(動態碎片)
3) 能夠直接使用html新增資料(**碎片)
4)碎片具有許可權設定功能,不同的編輯只能修改具有許可權的碎片(碎片編輯許可權)
5)碎片更新後能夠做到頁面不重新生成,內容自動更新(碎片更新)
6)碎片資訊呼叫靈活(碎片呼叫)
下面就逐點對比分析帝國cms與phpcms的碎片功能:
1) 靜態碎片
帝國cms和phpcms中都具有靜態碎片的功能,只是叫法不同。phpcms中稱作「格式化碎片」,即以表單的形式新增標題、摘要、鏈結、縮圖等資訊。
帝國cms中稱「靜態碎片」,和phpcms不同之處在於帝國的資訊資料是單條新增,較之於phpcms,方便性稍微差一些,phpcms直接一次性填寫設定的n條資訊後一次提交。
帝國單條資訊新增的優點是可以單獨設定每個標題的屬性,實際門戶**的「不規則新聞」功能,phpcms中雖然也可以通過改下方的單條資訊模板來實際,但因為是資料迴圈,統一操作,如果要像帝國這樣實現單條資訊的個性化及不規則新聞,那需要作較多的邏輯判斷。
2) 動態碎片
以前在使用phpcms的碎片功能時,落葉一直期待phpcms能夠實現動態碎片功能,即在phpcms的非格式化碎片中可以直接使用phpcms的資料呼叫標籤如tag標籤和get標籤,但實際由於phpcms的設計思路是碎片以靜態方式儲存後引用,沒經過phpcms的模板引擎處理,所以一直沒法實現這個期待。前段時間在測試帝國cms的碎片功能時,發現帝國cms提供了動態碎片功能,以為是可以在碎片中能通過內建標籤呼叫資料,結果發現,帝國cms的動態標籤居然是通過填寫欄目id和文章id來呼叫,雖然可以實現動態資訊的呼叫,但仔細想想,這樣有意義嗎?還是老話,找欄目id和文章id這會功夫,複製貼上下不知快多少!
帝國cms的這個動態碎片功能如果不繼續改進(仿照dzx的資料推送功能、或者dedecms專題中新增節點資料的操作),無疑是乙個敗筆。
3) **碎片
**碎片實際是提供乙個文字域或者文字編輯器,可以讓站長直接貼上編輯好的html**或者js**來手動新增內容。
phpcms和帝國cms中都提供了**碎片的功能,phpcms中稱作「非格式化碎片」,兩者功能一樣,只是phpcms中做的更簡潔一些,就乙個fck編輯器,然後預設編輯模式為**模式即可,而帝國cms中預設只是乙個textarea,得點選視覺化編輯才彈出編輯器介面,想不通帝國cms為啥要這樣做,直接放個編輯器預設為**模式不是方便多了。在**模式下新增html後,點到非**模式預覽下效果,然後儲存不是很好?
另外,如果是**碎片中能支援呼叫系統標籤,那將是多麼完美,我在phpcms論壇看過很多人期待這個需求,不過目前還沒有被實現過。
4)碎片編輯許可權
門戶**首頁不同區塊的編輯各司其職,維護自己管理的區塊的文章的推送,為了方便管理和考核,必然需要完善的編輯許可權控制,這一點,帝國cms和phpcms的碎片功能在新增碎片時都有考慮到,並且提供了相應的功能。
phpcms中則是通過角色來實現的,帝國cms中則除了通過使用者組控制外,另外可以通過「部門」來控制,甚至細化到具體會員,這一點帝國cms做的細緻一些,不過,帝國cms中的「部門」和phpcms的「角色」相當,實現二者的許可權功能是相當的,因為phpcms中只要自定義個角色,然後把需要賦予許可權的使用者新增到角色下,即可實現對使用者的細化。從現在主流許可權控制系統rbac來看,phpcms的設計更主流一些。
phpcms的碎片許可權設定如下圖:
帝國cms的碎片許可權設定如下圖:
5)碎片更新
對於碎片的更新,最好的預期是,碎片資訊更新後,引用碎片的檔案無需重新生成,即可自動更新,不過,貌似如果生成靜態的頁面中呼叫碎片的,能實現這一需求的只有在phpcms中開啟shtml才能實現。
phpcms中開啟shtml支援,然後把文章生成.shtml副檔名的檔案後,所有碎片的引用方式都直接採用ssi指令引用(phpcms中的碎片是以html檔案儲存的,如果不開啟shtml支援,那麼碎片靜態檔案能過file_get_contents函式讀取整合到靜態檔案中生成,如果開啟shtml,則使用ssi指令引用。)通過ssi指令引用的碎片html內容更新後,shtml頁面無需重新生成,其內容也會自動跟著更新,這點非常不錯。
帝國cms中的碎片資訊是直接儲存在資料庫中的,使用標籤讀取,沒有也不會有這樣的功能。
另外,phpcms中碎片資訊的更新,可以是視覺化的,在後台模板視覺化管理處,直接點選碎片即可進入進行編輯。帝國cms中碎片單條資訊實際仍然是單條記錄,和普通文章的新增、編輯沒啥區別。
6)碎片呼叫
phpcms中的碎片的呼叫是非常簡單的,在phpcms任何模板的任何位置,直接使用block函式呼叫即可,如即可呼叫名為testsp的碎片的整個資訊。
至於帝國cms中,碎片的呼叫,使用碎片標籤〔spinfo〕碎片變數名,顯示條數,標題擷取數〔/spinfo〕來實際,實際和其它文章資料的呼叫沒啥區別。
內部碎片和外部碎片
記憶體碎片分為內部碎片和外部碎片。內部碎片 內部碎片就是已經被分配出去 能明確指出屬於哪個程序 卻不能被利用的記憶體空間 內部碎片是處於區域內部或頁面內部的儲存塊。占有這些區域或頁面的程序並不使用這個儲存塊。而在程序占有這塊儲存塊時,系統無法利用它。直到程序釋放它,或程序結束時,系統才有可能利用這個...
cms07 自定義列表及SQL呼叫講解
本講知識點 1 自定義列表 2 sql語句呼叫 3 字段 4 實際操作 5 重新整理 6 主頁面如何呼叫 寫絕對路徑即可 select count as total from phome ecms news where classid 1 and xx 在這裡新增新的 order by newsti...
碎片小結之動態新增碎片
動態新增碎片主要分為5步 1.建立待新增碎片的例項 2.獲取fragmentmanager的物件,在活動中可以直接呼叫getsupportfragmentmanager 方法得到。3.開啟乙個事務 fragmenttransaction物件 通過呼叫fragmentmanager中的begintra...