- Sitecore Cookbook for Developers
- Yogesh Patel
- 433字
- 2021-07-16 11:15:03
Creating a gutter to show unpublished items
In the Content Editor, the left margin of the content tree is known as gutter. This area contains icons that can be used to display the status or type of the corresponding item and icons can be toggled on or off.
Let's create a custom gutter icon to identify unpublished items so that we will be able to know the publishing status of all expanded items very easily.
How to do it…
- In the
SitecoreCookbook
project, create aPublishGutter
class in theGutters
folder, and inherit it from theSitecore.Shell.Applications.ContentEditor.Gutters.GutterRenderer
class. - Add
enum PublishStatus
to show the publishing status as follows:enum PublishStatus { Published, NeverPublished, Modified }
- Add the
CheckPublishStatus()
method to know the publishing status of the current item:private PublishStatus CheckPublishStatus(Item currentItem) { Database webDB = Factory.GetDatabase("web"); Item webItem = webDB.GetItem(currentItem.ID); if (webItem == null) return PublishStatus.NeverPublished; if (currentItem["__Revision"] != webItem["__Revision"]) return PublishStatus.Modified; return PublishStatus.Published; }
- Override the
GutterIconDescriptor()
method to decide which gutter icon to show for the current item, which we will decide based on the publishing status:protected override GutterIconDescriptor GetIconDescriptor(Item item) { PublishStatus publishStatus = CheckPublishStatus(item); if (publishStatus != PublishStatus.Published) { GutterIconDescriptor desc = new GutterIconDescriptor(); if (publishStatus == PublishStatus.NeverPublished) { desc.Icon = "Core2/32x32/flag_red_h.png"; desc.Tooltip = "Item never published!"; } else { desc.Icon = "Core2/32x32/flag_yellow.png"; desc.Tooltip = "Item published but modified!"; } desc.Click = string.Format("item:load(id={0})", item.ID); return desc; } return null; }
- Open the Sitecore desktop and switch the database to
core
. Open the Content Editor and select the/sitecore/Content/Applications/Content Editor/Gutters
item. Under it, create aPublishing Status
item using the/Sitecore Client/Content editor/Gutter Renderer
template. - In the Field Editor pane, enter field values, as shown in the following image:
- Now, open the Content Editor with the
master
database. Right-clicking on the left-hand side of the content tree will open a pop-up menu of all gutters, as shown on the left-hand side of the following image. Clicking on the Publishing Status gutter will show gutters with red and yellow flags, as shown on the right-hand side of the the following image: - The preceding image shows that the Content item has been published but has some modifications to it (marked with a yellow flag). The News item was never published (marked with a red flag) and all other items have been published (no flag).
推薦閱讀
- 從零開始:數字圖像處理的編程基礎與應用
- RTC程序設計:實時音視頻權威指南
- INSTANT Weka How-to
- Java程序員面試算法寶典
- Learning ArcGIS Pro
- 從學徒到高手:汽車電路識圖、故障檢測與維修技能全圖解
- CouchDB and PHP Web Development Beginner’s Guide
- Android開發三劍客:UML、模式與測試
- Vue.js 2 Web Development Projects
- C++20高級編程
- Visual Studio Code 權威指南
- Learning Nessus for Penetration Testing
- OpenCV Android Programming By Example
- Java設計模式深入研究
- 編程的原則:改善代碼質量的101個方法