Non ho mai pensato a questo, ma in realtà è piuttosto facile da risolvere.
Ho creato un GutterRenderer
che indica che un elemento è stato pubblicato su almeno uno, su tutti o su nessuno dei target di pubblicazione.
MODIFICA: Aggiunto comportamento clic. Quando fai clic sull'icona della grondaia, verrà visualizzata la finestra di dialogo Pubblica per quell'elemento.
Per prima cosa ti mostrerò il codice che ho scritto per questo e poi ti mostrerò le schermate della configurazione e il risultato.
Ecco il codice:
using System.Collections.Generic;
using System.Linq;
using Sitecore;
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Globalization;
using Sitecore.Shell.Applications.ContentEditor.Gutters;
namespace ParTech.Library.Gutters
{
public class PublicationStatus : GutterRenderer
{
private readonly ID publishingTargetsFolderId = new ID("{D9E44555-02A6-407A-B4FC-96B9026CAADD}");
private readonly ID targetDatabaseFieldId = new ID("{39ECFD90-55D2-49D8-B513-99D15573DE41}");
protected override GutterIconDescriptor GetIconDescriptor(Item item)
{
bool existsInAll = true;
bool existsInOne = false;
// Find the publishing targets item folder
Item publishingTargetsFolder = Context.ContentDatabase.GetItem(publishingTargetsFolderId);
if (publishingTargetsFolder == null)
{
return null;
}
// Retrieve the publishing targets database names
List<string> publishingTargetsDatabases = publishingTargetsFolder.GetChildren()
.Select(x => x[targetDatabaseFieldId])
.ToList();
// Check for item existance in publishing targets
publishingTargetsDatabases.ForEach(delegate(string databaseName)
{
if (Database.GetDatabase(databaseName).GetItem(item.ID) != null)
{
existsInOne = true;
}
else
{
existsInAll = false;
}
});
// Return descriptor with tooltip and icon
string tooltip = Translate.Text("This item has not yet been published");
string icon = "People/16x16/flag_red.png";
if (existsInAll)
{
tooltip = Translate.Text("This item has been published to all targets");
icon = "People/16x16/flag_green.png";
}
else if (existsInOne)
{
tooltip = Translate.Text("This item has been published to at least one target");
icon = "People/16x16/flag_yellow.png";
}
return new GutterIconDescriptor()
{
Icon = icon,
Tooltip = tooltip,
Click = string.Format("item:publish(id={0})", item.ID)
};
}
}
}
E questo è il modo in modo da impostare su e come apparirà una volta che è in esecuzione:
Figura 1: creare un nuovo elemento Gutter nel database Core
: 
Figura 2: tornare al database Master
e attivare il Gutter facendo clic con il pulsante destro del mouse nell'area di rilegatura. 
Figura 3: The Gutter ora indica lo stato pubblicazione dei tuoi articoli 
fonte
2013-03-02 10:46:29
più sensato utilizzare l'icona "Persone/16x16/flag_red.png" per gli articoli non pubblicati, solo pensato, ma non voglio fare nuovi screenshot;) –
Awesom! Grazie mille per questo aiuto. :) – Dhanuka777