Last active
June 6, 2017 01:47
-
-
Save jasonbert/77101b736dc6458f7f1f to your computer and use it in GitHub Desktop.
Overridden LaunchSitecoreResult Class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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