- 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).
推薦閱讀
- Java多線程編程實戰指南:設計模式篇(第2版)
- Learn to Create WordPress Themes by Building 5 Projects
- Mastering QGIS
- 信息安全技術
- Learning Neo4j 3.x(Second Edition)
- 精通Python自然語言處理
- ASP.NET 3.5程序設計與項目實踐
- Windows內核編程
- Python項目實戰從入門到精通
- Frank Kane's Taming Big Data with Apache Spark and Python
- GameMaker Essentials
- SQL Server 2016 從入門到實戰(視頻教學版)
- Hadoop大數據分析技術
- 深入理解BootLoader
- HTML5移動前端開發基礎與實戰(微課版)