- 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).
推薦閱讀
- Go Web編程
- 深入理解Bootstrap
- Java完全自學教程
- 少年輕松趣編程:用Scratch創作自己的小游戲
- Hands-On Functional Programming with TypeScript
- RabbitMQ Cookbook
- 軟件品質之完美管理:實戰經典
- Mastering Xamarin.Forms(Second Edition)
- 軟件測試綜合技術
- HTML5+CSS3+JavaScript 從入門到項目實踐(超值版)
- 硬件產品設計與開發:從原型到交付
- 嵌入式Linux C語言程序設計基礎教程
- Web編程基礎:HTML5、CSS3、JavaScript(第2版)
- HTML5移動前端開發基礎與實戰(微課版)
- AngularJS UI Development