Skip to content

Instantly share code, notes, and snippets.

@jasonbert
Last active June 6, 2017 01:47
Show Gist options
  • Select an option

  • Save jasonbert/77101b736dc6458f7f1f to your computer and use it in GitHub Desktop.

Select an option

Save jasonbert/77101b736dc6458f7f1f to your computer and use it in GitHub Desktop.
Overridden LaunchSitecoreResult Class
using Sitecore;
using Sitecore.Buckets.Extensions;
using Sitecore.Buckets.Pipelines.UI.LaunchResultPipeline;
using Sitecore.Buckets.Util;
using Sitecore.Configuration;
using Sitecore.ContentSearch;
using Sitecore.Data.Items;
using Sitecore.Data.Managers;
using Sitecore.Diagnostics;
using Sitecore.Globalization;
using Sitecore.Resources;
using Sitecore.Text;
using Sitecore.Web;
using Sitecore.Web.UI.Framework.Scripts;
using Sitecore.Web.UI.Sheer;
using System;
public class LaunchSitecoreResult : Sitecore.Buckets.Pipelines.UI.LaunchResultPipeline.LaunchSitecoreResult
{
private static void AddLatestVersionToUrlString(UrlString urlString, string itemId, string language)
{
try
{
urlString.Remove(Sitecore.Buckets.Util.Constants.VersionQueryStringKeyName);
urlString.Add(Sitecore.Buckets.Util.Constants.VersionQueryStringKeyName, Sitecore.Context.ContentDatabase.GetItem(itemId, LanguageManager.GetLanguage(language)).Versions.GetLatestVersion().Version.ToString());
}
catch (Exception exception)
{
Log.Audit("Trying to access an item that does exist from the recently opened tabs", exception);
}
}
protected override void LaunchResult(LaunchResultArgs args)
{
SitecoreIndexableItem indexableItem = new SitecoreIndexableItem(Sitecore.Context.ContentDatabase.GetItem(args.IndexableId));
string itemId = indexableItem.Id.ToString();
if (WebUtil.GetFormValue("scEditorTabs").Contains("contenteditor:launchtab") && WebUtil.GetFormValue("scEditorTabs").Contains(itemId))
{
SheerResponse.Eval("scContent.onEditorTabClick(null, null, '" + itemId + "')");
}
else
{
UrlString urlString = new UrlString(Sitecore.Buckets.Util.Constants.ContentEditorRawUrlAddress);
urlString.Add(Sitecore.Buckets.Util.Constants.OpenItemEditorQueryStringKeyName, itemId);
this.TrackOpenTab(args.IndexableId);
args.ContextItemUri.AddToUrlString(urlString);
UIUtil.AddContentDatabaseParameter(urlString);
urlString.Add("il", "0");
urlString.Add(Sitecore.Buckets.Util.Constants.RibbonQueryStringKeyName, Sitecore.Buckets.Util.Constants.BlankSearchEditorId);
string language = args.Parameters["la"] ?? Sitecore.Context.Language.CultureInfo.TwoLetterISOLanguageName;
urlString.Add("la", language);
Item item = Sitecore.Context.ContentDatabase.GetItem(itemId);
if (item == null)
{
SheerResponse.Alert(Translate.Text("Item not found."), new string[0]);
Log.Error(string.Format("Item {0} was not found", itemId), this);
}
else
{
if (Sitecore.Buckets.Managers.BucketManager.IsItemContainedWithinBucket(item))
{
urlString.Add("ro", itemId);
}
else
{
urlString.Add(Sitecore.Buckets.Util.Constants.ModeQueryStringKeyName, "preview");
}
AddLatestVersionToUrlString(urlString, itemId, language);
ShowEditorTab tab = new ShowEditorTab
{
Command = "contenteditor:launchtab",
Header = Translate.Text(item.Name),
Icon = Images.GetThemedImageSource("Applications/16x16/text_view.png"),
Url = urlString.ToString(),
Id = itemId,
Closeable = true,
Activate = Sitecore.Buckets.Util.Constants.SettingsItem[Sitecore.Buckets.Util.Constants.OpenSearchResultFieldName] != "New Tab Not Selected"
};
var tabValue = tab.ToString();
SheerResponse.Eval(tabValue);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment