/// <summary> /// Sets the view mode. /// </summary> /// <param name="viewMode">The view mode</param> private void SetViewMode(ViewModeEnum viewMode) { if (PortalHelper.IsOnSiteEditingEnabled(SiteContext.CurrentSiteName) && AuthenticationHelper.IsAuthenticated()) { // Remove the "viewmode" param from url and redirect string returnUrl = URLHelper.RemoveParameterFromUrl(RequestContext.CurrentURL, "viewmode"); PortalContext.ViewMode = viewMode; // Switch view mode if (viewMode.IsEditLive()) { // Handle default alias path if (URLRewritingContext.CurrentPageInfoSource == PageInfoSource.DefaultAliasPath) { string aliasPath = PageInfoProvider.GetDefaultAliasPath(RequestContext.CurrentDomain, SiteContext.CurrentSiteName); if (!String.IsNullOrEmpty(aliasPath)) { string query = URLHelper.GetQuery(returnUrl); returnUrl = URLHelper.ResolveUrl(DocumentURLProvider.GetUrl(aliasPath)); returnUrl = URLHelper.AppendQuery(returnUrl, query); } } } else if (is404) { // Redirect to the root document when page not found returnUrl = ResolveUrl("~/"); } // Redirect to the URL URLHelper.Redirect(returnUrl); } }
/// <summary> /// Init event handler. /// </summary> protected override void OnInit(EventArgs e) { ucUIToolbar.ModuleName = MODULE_NAME; ucUIToolbar.ElementName = ELEMENT_NAME; // Set the viewmode according the the URL param if (ViewMode.IsLiveSite() && QueryHelper.Contains("viewmode")) { ViewModeEnum queryStringViewMode = ViewModeCode.GetPageEnumFromString(QueryHelper.GetString("viewmode", "livesite")); if (queryStringViewMode.IsEditLive()) { SetViewMode(queryStringViewMode); } } if (ViewMode.IsEditLive()) { // Check if there is required a redirect to the specific document if (QueryHelper.Contains("onsitenodeid")) { int nodeId = QueryHelper.GetInteger("onsitenodeid", 0); TreeProvider treeProvider = new TreeProvider(); TreeNode node = treeProvider.SelectSingleNode(nodeId); string url = URLHelper.ResolveUrl(DocumentURLProvider.GetUrl(node.NodeAliasPath, string.Empty /* ensure getting the link (not the linked document) */, node.NodeSiteName, RequestContext.CurrentURLLangPrefix)); URLHelper.Redirect(url); } } base.OnInit(e); }
/// <summary> /// Init event handler. /// </summary> protected override void OnInit(EventArgs e) { ucUIToolbar.ModuleName = MODULE_NAME; ucUIToolbar.ElementName = ELEMENT_NAME; // Set the viewmode according the the URL param if (ViewMode.IsLiveSite() && QueryHelper.Contains("viewmode")) { ViewModeEnum queryStringViewMode = ViewModeCode.GetPageEnumFromString(QueryHelper.GetString("viewmode", "livesite")); if (queryStringViewMode.IsEditLive()) { SetViewMode(queryStringViewMode); } } if (ViewMode.IsEditLive()) { // Check if there is required a redirect to the specific document if (QueryHelper.Contains("onsitenodeid")) { var nodeId = QueryHelper.GetInteger("onsitenodeid", 0); var treeProvider = new TreeProvider(); var node = treeProvider.SelectSingleNode(nodeId); var url = UrlResolver.ResolveUrl(DocumentURLProvider.GetUrl(node)); URLHelper.Redirect(url); } } base.OnInit(e); }
/// <summary> /// Sets the view mode. /// </summary> /// <param name="viewMode">The view mode</param> private void SetViewMode(ViewModeEnum viewMode) { if (PortalHelper.IsOnSiteEditingEnabled(SiteContext.CurrentSiteName) && AuthenticationHelper.IsAuthenticated()) { // Remove the "viewmode" param from url and redirect var returnUrl = GetURLWithoutViewMode(); PortalContext.ViewMode = viewMode; // Switch view mode if (viewMode.IsEditLive() && (URLRewritingContext.CurrentPageInfoSource == PageInfoSource.DefaultAliasPath)) { returnUrl = GetUrlOfDocumentWithDefaultAliasPath(); } else if (is404) { // Redirect to the root document when page not found returnUrl = ResolveUrl("~/"); } // Redirect to the URL URLHelper.Redirect(UrlResolver.ResolveUrl(returnUrl)); } }
/// <summary> /// Saves widget properties. /// </summary> public bool Save() { if (VariantID > 0) { // Check MVT/CP security if (!CheckPermissions("Manage")) { DisplayError("general.modifynotallowed"); return(false); } } // Save the data if ((CurrentPageInfo != null) && (mTemplateInstance != null) && SaveForm(formCustom)) { ViewModeEnum viewMode = PortalContext.ViewMode; // Check manage permission for non-livesite version if (!viewMode.IsLiveSite() && viewMode != ViewModeEnum.DashboardWidgets && viewMode != ViewModeEnum.UserWidgets) { if (CurrentUser.IsAuthorizedPerDocument(CurrentPageInfo.NodeID, CurrentPageInfo.ClassName, NodePermissionsEnum.Modify) != AuthorizationResultEnum.Allowed) { DisplayError("general.modifynotallowed"); return(false); } // Check design permissions if (PortalContext.IsDesignMode(viewMode, false) && !PortalContext.CurrentUserIsDesigner) { RedirectToAccessDenied("CMS.Design", "Design"); } } PageTemplateInfo pti = mTemplateInstance.ParentPageTemplate; if (PortalContext.IsDesignMode(viewMode) && SynchronizationHelper.IsCheckedOutByOtherUser(pti)) { string userName = null; UserInfo ui = UserInfoProvider.GetUserInfo(pti.Generalized.IsCheckedOutByUserID); if (ui != null) { userName = HTMLHelper.HTMLEncode(ui.GetFormattedUserName(IsLiveSite)); } DisplayError(string.Format(GetString("ObjectEditMenu.CheckedOutByAnotherUser"), pti.TypeInfo.ObjectType, pti.DisplayName, userName)); return(false); } // Get the zone mWebPartZoneInstance = mTemplateInstance.EnsureZone(ZoneId); if (mWebPartZoneInstance != null) { mWebPartZoneInstance.WidgetZoneType = ZoneType; // Add new widget if (IsNewWidget) { bool isLayoutZone = (QueryHelper.GetBoolean("layoutzone", false)); int widgetID = ValidationHelper.GetInteger(WidgetId, 0); // Create new widget instance mWidgetInstance = PortalHelper.AddNewWidget(widgetID, ZoneId, ZoneType, isLayoutZone, mTemplateInstance); } // Ensure handling of the currently edited object (if not exists -> redirect) UIContext.EditedObject = mWidgetInstance; mWidgetInstance.XMLVersion = 1; if (IsNewVariant) { mWidgetInstance = mWidgetInstance.Clone(); // Check whether the editor widgets have been already customized if (CurrentPageInfo.DocumentTemplateInstance.WebPartZones.Count == 0) { // There are no customized editor widgets yet => copy the default editor widgets from the page template under the document (to enable customization) // Save to the document as editor admin changes TreeNode node = DocumentHelper.GetDocument(CurrentPageInfo.DocumentID, mTreeProvider); // Extract and set the document web parts node.SetValue("DocumentWebParts", mTemplateInstance.GetZonesXML(WidgetZoneTypeEnum.Editor)); // Save the document DocumentHelper.UpdateDocument(node, mTreeProvider); } } bool isLayoutWidget = ((mWebPartInfo != null) && ((WebPartTypeEnum)mWebPartInfo.WebPartType == WebPartTypeEnum.Layout)); // Get basicform's datarow and update widget SaveFormToWidget(formCustom, mTemplateInstance, isLayoutWidget); // Ensure unique id for new widget variant or layout widget if (IsNewVariant || (isLayoutWidget && IsNewWidget)) { string controlId = GetUniqueWidgetId(mWidgetInfo.WidgetName); if (!string.IsNullOrEmpty(controlId)) { mWidgetInstance.ControlID = controlId; } else { DisplayError("Unable to generate unique widget id."); return(false); } } // Allow set dashboard in design mode if ((ZoneType == WidgetZoneTypeEnum.Dashboard) && String.IsNullOrEmpty(PortalContext.DashboardName)) { viewMode = ViewModeEnum.Design; PortalContext.SetViewMode(ViewModeEnum.Design); } bool isWidgetVariant = (VariantID > 0) || IsNewVariant; if (!isWidgetVariant) { // Save the changes if ((viewMode.IsEdit(true) || viewMode.IsEditLive()) && (ZoneType == WidgetZoneTypeEnum.Editor)) { if (DocumentManager.AllowSave) { // Store the editor widgets in the temporary interlayer PortalContext.SaveEditorWidgets(CurrentPageInfo.DocumentID, mTemplateInstance.GetZonesXML(WidgetZoneTypeEnum.Editor)); } } else { // Save the changes CMSPortalManager.SaveTemplateChanges(CurrentPageInfo, mTemplateInstance, ZoneType, viewMode, mTreeProvider); } } else if ((viewMode.IsEdit()) && (ZoneType == WidgetZoneTypeEnum.Editor)) { Hashtable properties = WindowHelper.GetItem("variantProperties") as Hashtable; VariantHelper.SaveWebPartVariantChanges(mWidgetInstance, VariantID, 0, VariantMode, properties); // Log widget variant synchronization TreeNode node = DocumentHelper.GetDocument(CurrentPageInfo.DocumentID, mTreeProvider); DocumentSynchronizationHelper.LogDocumentChange(node, TaskTypeEnum.UpdateDocument, mTreeProvider); } } // Reload the form (because of macro values set only by JS) formCustom.ReloadData(); // Display info message ShowChangesSaved(); // Clear the cached web part CacheHelper.TouchKey("webpartinstance|" + InstanceGUID.ToString().ToLowerCSafe()); return(true); } return(false); }
/// <summary> /// Sets the view mode. /// </summary> /// <param name="viewMode">The view mode</param> private void SetViewMode(ViewModeEnum viewMode) { if (PortalHelper.IsOnSiteEditingEnabled(SiteContext.CurrentSiteName) && AuthenticationHelper.IsAuthenticated()) { // Remove the "viewmode" param from url and redirect var returnUrl = GetURLWithoutViewMode(); PortalContext.ViewMode = viewMode; // Switch view mode if (viewMode.IsEditLive() && (URLRewritingContext.CurrentPageInfoSource == PageInfoSource.DefaultAliasPath)) { returnUrl = GetUrlOfDocumentWithDefaultAliasPath(); } else if (is404) { // Redirect to the root document when page not found returnUrl = ResolveUrl("~/"); } // Redirect to the URL URLHelper.Redirect(returnUrl); } }