private void Document_Update_After(object sender, DocumentEventArgs e) { if (e.Node.ClassName.Equals("PbcLinear.Product")) { TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); var relatedProductCategories = tree.SelectNodes(SiteContext.CurrentSiteName, "/Products/%", e.Node.DocumentCulture, false, "PbcLinear.ProductSubCategory", string.Empty, "NodeOrder", -1, true, e.Node.NodeGUID, ProductCategoryRelationshipName, true).ToList(); DocumentAliasInfoProvider.DeleteNodeAliases(e.Node.NodeID); foreach (var category in relatedProductCategories) { DocumentAliasInfoProvider.SetDocumentAliasInfo(new DocumentAliasInfo { AliasNodeID = e.Node.NodeID, AliasURLPath = TreePathUtils.GetSafeNodeAliasPath(string.Format("{0}/{1}", category.NodeAliasPath, e.Node.DocumentName), "PbcLinear"), AliasSiteID = SiteContext.CurrentSiteID, AliasCulture = "", AliasExtensions = "" }, SiteContext.CurrentSiteName); } } }
/// <summary> /// Gets and updates document alias. Called when the "Get and update alias" button is pressed. /// Expects the CreateDocumentAlias method to be run first. /// </summary> private bool GetAndUpdateDocumentAlias() { // Prepare the parameters string orderBy = ""; string where = "AliasURLPath = N'/MyNewAlias'"; // Get the data DataSet aliases = DocumentAliasInfoProvider.GetDocumentAliases(where, orderBy); if (!DataHelper.DataSourceIsEmpty(aliases)) { DocumentAliasInfo updateAlias = new DocumentAliasInfo(aliases.Tables[0].Rows[0]); // Update the properties updateAlias.AliasURLPath = updateAlias.AliasURLPath.ToLower(); // Save the changes DocumentAliasInfoProvider.SetDocumentAliasInfo(updateAlias, CMSContext.CurrentSiteName); return(true); } return(false); }
/// <summary> /// Gets and bulk updates document aliases. Called when the "Get and bulk update aliases" button is pressed. /// Expects the CreateDocumentAlias method to be run first. /// </summary> private bool GetAndBulkUpdateDocumentAliases() { // Prepare the parameters string orderBy = ""; string where = "AliasURLPath = N'/MyNewAlias'"; // Get the data DataSet aliases = DocumentAliasInfoProvider.GetDocumentAliases(where, orderBy); if (!DataHelper.DataSourceIsEmpty(aliases)) { // Loop through the individual items foreach (DataRow aliasDr in aliases.Tables[0].Rows) { // Create object from DataRow DocumentAliasInfo modifyAlias = new DocumentAliasInfo(aliasDr); // Update the properties modifyAlias.AliasURLPath = modifyAlias.AliasURLPath.ToUpper(); // Save the changes DocumentAliasInfoProvider.SetDocumentAliasInfo(modifyAlias, CMSContext.CurrentSiteName); } return(true); } return(false); }
/// <summary> /// Gets the TreeNode for the corresponding path, can be either the NodeAliasPath or a URL Alias /// </summary> /// <param name="Path"></param> /// <returns></returns> public static TreeNode GetNodeByAliasPath(string Path, string ClassName = null, string CultureCode = null) { return(CacheHelper.Cache <TreeNode>(cs => { List <string> CacheDependencies = new List <string>(); TreeNode FoundNode = DocumentQueryHelper.RepeaterQuery(Path: Path, ClassNames: ClassName, CultureCode: CultureCode).GetTypedResult().Items.FirstOrDefault(); if (FoundNode == null) { // Check Url Aliases var FoundNodeByAlias = DocumentAliasInfoProvider.GetDocumentAliasesWithNodesDataQuery().WhereEquals("AliasUrlPath", Path).Or().Where(string.Format("'{0}' like AliasWildCardRule", SqlHelper.EscapeQuotes(Path))).FirstOrDefault(); if (FoundNodeByAlias != null && FoundNodeByAlias.AliasNodeID > 0) { CacheDependencies.Add("cms.documentalias|all"); CacheDependencies.Add(string.Format("node|{0}|{1}", SiteContext.CurrentSiteName, Path)); FoundNode = DocumentQueryHelper.RepeaterQuery(NodeID: FoundNodeByAlias.AliasNodeID, ClassNames: ClassName, CultureCode: (!string.IsNullOrWhiteSpace(FoundNodeByAlias.AliasCulture) ? FoundNodeByAlias.AliasCulture : CultureCode)).GetTypedResult().Items.FirstOrDefault(); } } if (FoundNode != null) { CacheDependencies.Add("documentid|" + FoundNode.DocumentID); } if (cs.Cached) { cs.CacheDependency = CacheHelper.GetCacheDependency(CacheDependencies.ToArray()); } return FoundNode; }, new CacheSettings(CacheHelper.CacheMinutes(SiteContext.CurrentSiteName), Path, ClassName, CultureCode))); }
private void UniGridAlias_OnAction(string actionName, object actionArgument) { if (Node != null) { // Check modify permissions if (MembershipContext.AuthenticatedUser.IsAuthorizedPerDocument(Node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Denied) { return; } string action = DataHelper.GetNotEmpty(actionName, String.Empty).ToLowerCSafe(); switch (action) { case "edit": // Edit action URLHelper.Redirect(UrlResolver.ResolveUrl("Alias_Edit.aspx?nodeid=" + NodeID + "&aliasid=" + Convert.ToString(actionArgument))); break; case "delete": // Delete action int aliasId = ValidationHelper.GetInteger(actionArgument, 0); if (aliasId > 0) { // Delete DocumentAliasInfoProvider.DeleteDocumentAliasInfo(aliasId); // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, DocumentManager.Tree); } break; } } }
private static ObjectQuery <DocumentAliasInfo> GetAliasesQuery(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize) { var columnList = GetColumns(columns); var where = SqlHelper.AddWhereCondition(completeWhere, "AliasSiteID = " + SiteContext.CurrentSiteID); return(DocumentAliasInfoProvider.GetDocumentAliasesWithNodesDataQuery() .Where(where) .OrderBy(currentOrder) .TopN(currentTopN) .Page(currentOffset / currentPageSize, currentPageSize) .Columns(columnList)); }
private static ObjectQuery <DocumentAliasInfo> GetAliasesQuery(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize) { var columnList = GetColumns(columns); var where = SqlHelper.AddWhereCondition(completeWhere, "AliasSiteID = " + SiteContext.CurrentSiteID); var query = DocumentAliasInfoProvider.GetDocumentAliasesWithNodesDataQuery() .Source(s => s.InnerJoin <DataClassInfo>("NodeClassID", "ClassID")) .Where(where) .OrderBy(currentOrder) .TopN(currentTopN) .Columns(columnList); query.Offset = currentOffset; query.MaxRecords = currentPageSize; return(query); }
private void UniGridAlias_OnAction(string actionName, object actionArgument) { // Manage edit and delete int aliasID = ValidationHelper.GetInteger(actionArgument, 0); string action = DataHelper.GetNotEmpty(actionName, String.Empty).ToLowerCSafe(); TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); DocumentAliasInfo dai = DocumentAliasInfoProvider.GetDocumentAliasInfo(aliasID); if (dai != null) { // Find node TreeNode node = tree.SelectSingleNode(dai.AliasNodeID); if (node != null) { // Check modify permissions if (MembershipContext.AuthenticatedUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Denied) { return; } // Edit only if node exists if (action == "edit") { URLHelper.Redirect("Alias_Edit.aspx?nodeid=" + node.NodeID + "&aliasid=" + aliasID + "&defaultNodeID=" + NodeID + "&dialog=1"); } } // Delete even if node does not exist if (action == "delete") { if (aliasID > 0) { // Delete DocumentAliasInfoProvider.DeleteDocumentAliasInfo(aliasID); // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(node, TaskTypeEnum.UpdateDocument, tree); } } } }
public static string GetUrl(DataRowView item) { var aliases = DocumentAliasInfoProvider.GetDocumentAliases(String.Format("AliasNodeID ='{0}'", item["NodeID"]), "").ToList(); var alias = aliases.FirstOrDefault(x => x.AliasURLPath.Contains(RequestContext.CurrentRelativePath)); if (alias != null) { return(alias.AliasURLPath); } else if (aliases.FirstOrDefault() != null) { return(aliases.FirstOrDefault().AliasURLPath); } else { return(string.IsNullOrEmpty(item["DocumentUrlPath"].ToString()) ? item["NodeAliasPath"].ToString() : item["DocumentUrlPath"].ToString()); } }
/// <summary> /// Deletes document alias. Called when the "Delete alias" button is pressed. /// Expects the CreateDocumentAlias method to be run first. /// </summary> private bool DeleteDocumentAlias() { // Prepare the parameters string orderBy = ""; string where = "AliasURLPath = N'/MyNewAlias'"; // Get the data DataSet aliases = DocumentAliasInfoProvider.GetDocumentAliases(where, orderBy); if (!DataHelper.DataSourceIsEmpty(aliases)) { DocumentAliasInfo deleteAlias = new DocumentAliasInfo(aliases.Tables[0].Rows[0]); // Delete the document alias DocumentAliasInfoProvider.DeleteDocumentAliasInfo(deleteAlias); return(true); } return(false); }
/// <summary> /// Creates document alias. Called when the "Create alias" button is pressed. /// </summary> private bool CreateDocumentAlias() { // Get "Home" document TreeNode document = TreeHelper.GetDocument(CMSContext.CurrentSiteName, "/Home", CultureHelper.GetPreferredCulture(), true, "CMS.MenuItem", false); if (document != null) { // Create new document alias object DocumentAliasInfo newAlias = new DocumentAliasInfo(); // Set the properties newAlias.AliasURLPath = "/MyNewAlias"; newAlias.AliasNodeID = document.NodeID; newAlias.AliasSiteID = CMSContext.CurrentSiteID; // Save the document alias DocumentAliasInfoProvider.SetDocumentAliasInfo(newAlias, CMSContext.CurrentSiteName); return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { ScriptHelper.RegisterDialogScript(Page); if (isManagement) { CurrentMaster.PanelFooter.CssClass = "FloatRight"; CurrentMaster.Title.TitleText = GetString("doc.urls.aliaslist"); CurrentMaster.Title.TitleImage = GetImageUrl("CMSModules/CMS_Content/Menu/New.png"); // Add close button CurrentMaster.PanelFooter.Controls.Add(new LocalizedButton { ID = "btnCancel", ResourceString = "general.close", EnableViewState = false, OnClientClick = "return CloseDialog();", CssClass = "SubmitButton" }); } else { HeaderActions.AddAction(new HeaderAction() { ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/adddocumentalias.png"), Text = GetString("doc.urls.addnewalias"), RedirectUrl = ResolveUrl("Alias_Edit.aspx?nodeid=" + NodeID), }); rightHeaderActions.AddAction(new HeaderAction() { ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/documentaliases.png"), Text = GetString("doc.urls.viewallalias"), OnClientClick = "modalDialog('" + ResolveUrl("~/CMSModules/Content/CMSDesk/Properties/Alias_AliasList.aspx") + "?nodeid=" + NodeID + "','AliasManagement','90%','85%');", }); } if (Node != null) { lblUrlInfoText.Text = Node.NodeAliasPath; // Check modify permissions if (!CheckDocumentPermissions(Node, PermissionsEnum.Modify)) { ShowInformation(String.Format(GetString("cmsdesk.notauthorizedtoeditdocument"), Node.NodeAliasPath)); usSelectCampaign.Enabled = false; txtURLExtensions.Enabled = false; ctrlURL.Enabled = false; cultureSelector.Enabled = false; } if (!RequestHelper.IsPostBack() && QueryHelper.GetInteger("saved", 0) == 1) { ShowChangesSaved(); } lblDocumentCulture.Text = GetString("general.culture") + ResHelper.Colon; lblTrackCampaign.Text = GetString("doc.urls.trackcampaign") + ResHelper.Colon; lblURLExtensions.Text = GetString("doc.urls.urlextensions") + ResHelper.Colon; // Show path of document alias only if management mode edit pnlUrlInfo.Visible = isManagement; // For management mode use DefaultNodeID defaultNodeID = (isManagement) ? QueryHelper.GetInteger("defaultNodeID", 0) : NodeID; // Initialize page title string urls = GetString("Properties.Urls"); string urlsUrl = string.Format("~/CMSModules/Content/CMSDesk/Properties/Alias_List.aspx?nodeid={0}&compare=1", defaultNodeID.ToString()); string addAlias = GetString("doc.urls.addnewalias"); string aliasManagement = GetString("doc.urls.aliaslist"); string managementUrl = "~/CMSModules/Content/CMSDesk/Properties/Alias_AliasList.aspx?nodeid=" + defaultNodeID.ToString(); string[,] pageTitleTabs = null; pageTitleTabs = new string[2, 3]; // Initializes page title pageTitleTabs[0, 0] = isManagement ? aliasManagement : urls; pageTitleTabs[0, 1] = ResolveUrl(isManagement ? managementUrl : urlsUrl); pageTitleTabs[0, 2] = ""; pageTitleTabs[1, 0] = addAlias; pageTitleTabs[1, 1] = ""; pageTitleTabs[1, 2] = ""; CurrentMaster.Title.Breadcrumbs = pageTitleTabs; cultureSelector.AddDefaultRecord = false; cultureSelector.SpecialFields = new string[, ] { { GetString("general.selectall"), "" } }; cultureSelector.CssClass = "ContentMenuLangDrop"; aliasId = ValidationHelper.GetInteger(Request.QueryString["aliasid"], 0); CurrentMaster.Title.HelpName = "helpTopic"; CurrentMaster.Title.HelpTopicName = "doc_documentalias_edit"; if (!RequestHelper.IsPostBack()) { cultureSelector.Value = Node.DocumentCulture; // Edit existing alias if (aliasId > 0) { DocumentAliasInfo dai = DocumentAliasInfoProvider.GetDocumentAliasInfo(aliasId); if (dai != null) { usSelectCampaign.Value = dai.AliasCampaign; txtURLExtensions.Text = dai.AliasExtensions; ctrlURL.URLPath = dai.AliasURLPath; cultureSelector.Value = dai.AliasCulture; pageTitleTabs[1, 0] = addAlias = TreePathUtils.GetURLPathDisplayName(dai.AliasURLPath); drpAction.SelectedValue = DocumentAliasInfoProvider.AliasActionModeEnumString(dai.AliasActionMode); } } } CurrentMaster.Title.Breadcrumbs = pageTitleTabs; // Register js synchronization script for split mode if (QueryHelper.GetBoolean("refresh", false) && CMSContext.DisplaySplitMode) { RegisterSplitModeSync(true, false, true); } } }
protected void Page_Load(object sender, EventArgs e) { nodeId = ValidationHelper.GetInteger(Request.QueryString["nodeid"], 0); if (nodeId > 0) { // Get the node tree = new TreeProvider(CMSContext.CurrentUser); node = tree.SelectSingleNode(nodeId); // Set edited document EditedDocument = node; if (node != null) { // Check read permissions if (CMSContext.CurrentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Read) == AuthorizationResultEnum.Denied) { RedirectToAccessDenied(String.Format(GetString("cmsdesk.notauthorizedtoreaddocument"), node.NodeAliasPath)); } // Check modify permissions else if (CMSContext.CurrentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Denied) { this.lblInfo.Text = String.Format(GetString("cmsdesk.notauthorizedtoeditdocument"), node.NodeAliasPath); usSelectCampaign.Enabled = false; txtURLExtensions.Enabled = false; ctrlURL.Enabled = false; cultureSelector.Enabled = false; } if (QueryHelper.GetInteger("saved", 0) == 1) { lblInfo.Text = GetString("general.changessaved"); } lblDocumentCulture.Text = GetString("general.culture") + ResHelper.Colon; lblTrackCampaign.Text = GetString("doc.urls.trackcampaign") + ResHelper.Colon; lblURLExtensions.Text = GetString("doc.urls.urlextensions") + ResHelper.Colon; btnOk.Text = GetString("general.ok"); // Initialiaze page title string urls = GetString("Properties.Urls"); string urlsUrl = "~/CMSModules/Content/CMSDesk/Properties/Alias_List.aspx?nodeid=" + nodeId.ToString(); string addAlias = GetString("doc.urls.addnewalias"); // Initializes page title string[,] pageTitleTabs = new string[2, 3]; pageTitleTabs[0, 0] = urls; pageTitleTabs[0, 1] = urlsUrl; pageTitleTabs[0, 2] = ""; pageTitleTabs[1, 0] = addAlias; pageTitleTabs[1, 1] = ""; pageTitleTabs[1, 2] = ""; pageAlias.Breadcrumbs = pageTitleTabs; this.cultureSelector.AddDefaultRecord = false; this.cultureSelector.SpecialFields = new string[, ] { { GetString("general.selectall"), "" } }; this.cultureSelector.CssClass = "ContentMenuLangDrop"; aliasId = ValidationHelper.GetInteger(Request.QueryString["aliasid"], 0); pageAlias.HelpName = "helpTopic"; pageAlias.HelpTopicName = "doc_documentalias_edit"; if (!RequestHelper.IsPostBack()) { this.cultureSelector.Value = node.DocumentCulture; // Edit existing alias if (aliasId > 0) { DocumentAliasInfo dai = DocumentAliasInfoProvider.GetDocumentAliasInfo(aliasId); if (dai != null) { usSelectCampaign.Value = dai.AliasCampaign; txtURLExtensions.Text = dai.AliasExtensions; ctrlURL.URLPath = dai.AliasURLPath; cultureSelector.Value = dai.AliasCulture; pageTitleTabs[1, 0] = addAlias = dai.AliasURLPath; } } } pageAlias.Breadcrumbs = pageTitleTabs; // Register js synchronization script for split mode if (QueryHelper.GetBoolean("refresh", false) && CMSContext.DisplaySplitMode) { RegisterSplitModeSync(true, false, true); } } } }
protected void btnOK_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(this.ctrlURL.PlainURLPath)) { lblError.Text = GetString("doc.urls.requiresurlpath"); return; } if (!usSelectCampaign.IsValid()) { lblError.Visible = true; lblError.Text = GetString("campaign.validcodename"); return; } // Get the document TreeProvider tree = new TreeProvider(CMSContext.CurrentUser); node = tree.SelectSingleNode(nodeId, CMSContext.PreferredCultureCode); if (node != null) { // Check modify permissions if (CMSContext.CurrentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Denied) { lblInfo.Text = string.Empty; lblError.Text = String.Format(GetString("cmsdesk.notauthorizedtoreaddocument"), node.NodeAliasPath); return; } DocumentAliasInfo dai = null; // Edit existing alias if (aliasId > 0) { dai = DocumentAliasInfoProvider.GetDocumentAliasInfo(aliasId); } if (dai == null) { dai = new DocumentAliasInfo(); } // Set object properties dai.AliasURLPath = ctrlURL.URLPath; dai.AliasCampaign = ValidationHelper.GetString(usSelectCampaign.Value, String.Empty).Trim(); dai.AliasExtensions = txtURLExtensions.Text.Trim(); dai.AliasCulture = ValidationHelper.GetString(cultureSelector.Value, ""); dai.AliasSiteID = CMSContext.CurrentSite.SiteID; if (nodeId > 0) { dai.AliasNodeID = nodeId; } // Insert into database DocumentAliasInfoProvider.SetDocumentAliasInfo(dai, node.NodeSiteName); // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(node, TaskTypeEnum.UpdateDocument, tree); nodeId = dai.AliasNodeID; aliasId = dai.AliasID; string url = "Alias_Edit.aspx?saved=1&nodeid=" + nodeId.ToString() + "&aliasid=" + aliasId.ToString(); // Refresh the second frame in split mode if (CMSContext.DisplaySplitMode) { if (string.Compare(CMSContext.PreferredCultureCode, CMSContext.SplitModeCultureCode, StringComparison.InvariantCultureIgnoreCase) == 0) { url += "&refresh=1"; } } URLHelper.Redirect(url); } }
protected void btnOK_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(ctrlURL.PlainURLPath)) { ShowError(GetString("doc.urls.requiresurlpath")); return; } if (!usSelectCampaign.IsValid()) { ShowError(GetString("campaign.validcodename")); return; } // Validate URL path if (!ctrlURL.IsValid()) { ShowError(ctrlURL.ValidationError); return; } if (Node != null) { // Check modify permissions if (!DocumentUIHelper.CheckDocumentPermissions(Node, PermissionsEnum.Modify)) { ShowError(String.Format(GetString("cmsdesk.notauthorizedtoreaddocument"), Node.NodeAliasPath)); return; } // Check whether if (!DocumentAliasInfoProvider.IsUnique(ctrlURL.URLPath, DocumentAlias.AliasID, Convert.ToString(cultureSelector.Value), txtURLExtensions.Text.Trim(), SiteContext.CurrentSiteName, true, NodeID)) { ShowError(GetString("doc.urls.doacaliasnotunique")); return; } // Set object properties DocumentAlias.AliasURLPath = ctrlURL.URLPath; DocumentAlias.AliasCampaign = ValidationHelper.GetString(usSelectCampaign.Value, String.Empty).Trim(); DocumentAlias.AliasExtensions = txtURLExtensions.Text.Trim(); DocumentAlias.AliasCulture = ValidationHelper.GetString(cultureSelector.Value, ""); DocumentAlias.AliasSiteID = SiteContext.CurrentSite.SiteID; DocumentAlias.AliasActionMode = drpAction.SelectedValue.ToEnum <AliasActionModeEnum>(); DocumentAlias.AliasNodeID = NodeID; // Insert into database DocumentAliasInfoProvider.SetDocumentAliasInfo(DocumentAlias, Node.NodeSiteName); // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, Tree); aliasId = DocumentAlias.AliasID; string url = "Alias_Edit.aspx?saved=1&nodeid=" + NodeID + "&aliasid=" + aliasId + "&dialog=" + IsDialog; if (IsDialog) { url += "&defaultNodeID=" + defaultNodeID; } // Refresh the second frame in split mode if (UIContext.DisplaySplitMode) { url += "&refresh=1"; } URLHelper.Redirect(url); } }
/// <summary> /// Processes the specified document node. /// </summary> /// <param name="currentAliasPath">Alias path</param> /// <param name="currentFileName">File name</param> protected void ProcessNode(string currentAliasPath, string currentFileName) { // Load the document node if (node == null) { // Try to get data from cache using (CachedSection <TreeNode> cs = new CachedSection <TreeNode>(ref node, CacheMinutes, !allowLatestVersion, null, "getfilenodebyaliaspath|", CurrentSiteName, CacheHelper.GetBaseCacheKey(false, true), currentAliasPath)) { if (cs.LoadData) { // Get the document string className = null; bool combineWithDefaultCulture = SettingsKeyProvider.GetBoolValue(CurrentSiteName + ".CMSCombineImagesWithDefaultCulture"); string culture = CultureCode; // Get the document if (currentFileName == null) { // CMS.File className = "CMS.File"; } // Get the document data if (!IsLiveSite) { node = DocumentHelper.GetDocument(CurrentSiteName, currentAliasPath, culture, combineWithDefaultCulture, className, null, null, -1, false, null, TreeProvider); } else { node = TreeProvider.SelectSingleNode(CurrentSiteName, currentAliasPath, culture, combineWithDefaultCulture, className, null, null, -1, false, null); } // Try to find node using the document aliases if (node == null) { DataSet ds = DocumentAliasInfoProvider.GetDocumentAliases("AliasURLPath='" + SqlHelperClass.GetSafeQueryString(currentAliasPath, false) + "'", "AliasCulture DESC", 1, "AliasNodeID, AliasCulture"); if (!DataHelper.DataSourceIsEmpty(ds)) { DataRow dr = ds.Tables[0].Rows[0]; int nodeId = (int)dr["AliasNodeID"]; string nodeCulture = ValidationHelper.GetString(DataHelper.GetDataRowValue(dr, "AliasCulture"), null); if (!IsLiveSite) { node = DocumentHelper.GetDocument(nodeId, nodeCulture, combineWithDefaultCulture, TreeProvider); } else { node = TreeProvider.SelectSingleNode(nodeId, nodeCulture, combineWithDefaultCulture); } } } // Cache the document CacheNode(cs, node); } } } // Process the document ProcessNode(node, null, currentFileName); }
/// <summary> /// Creates document. /// </summary> public int Save() { // Validate input data string message = new Validator().NotEmpty(txtDocumentName.Text.Trim(), GetString("om.enterdocumentname")).Result; if (message != String.Empty) { ShowError(message); return(0); } if (mNode == null) { ShowError(GetString("general.invalidparameters")); return(0); } // Select parent node TreeNode parent = mTree.SelectSingleNode(SiteContext.CurrentSiteName, ucPath.Value.ToString(), TreeProvider.ALL_CULTURES, false, null, false); if (parent == null) { ShowError(GetString("om.pathdoesnotexists")); return(0); } // Check security if (!MembershipContext.AuthenticatedUser.IsAuthorizedToCreateNewDocument(parent.NodeID, mNode.NodeClassName)) { RedirectToAccessDenied(GetString("cmsdesk.notauthorizedtocreatedocument")); return(0); } var newDocument = ProcessAction(mNode, parent, "copynode", false, true, true); if (newDocument == null) { ShowError(string.Format(GetString("om.invalidchildtype"), parent.ClassName)); return(0); } // Get all language translations var documents = DocumentHelper.GetDocuments() .All() .OnCurrentSite() .AllCultures() .WhereEquals("NodeID", newDocument.NodeID); // Limit length to 100 characters string documentName = TextHelper.LimitLength(txtDocumentName.Text.Trim(), 100, String.Empty); // Update all documents and delete all aliases foreach (var document in documents) { UpdateDocument(document, documentName); DocumentAliasInfoProvider.DeleteNodeAliases(document.NodeID); // Set new node to any updated document to have updated info newDocument = document; } // Create new AB variant if AB test defined if (!CreateABVariant(newDocument)) { return(0); } // Get the page mode if (PortalContext.ViewMode != ViewModeEnum.EditLive) { PortalContext.ViewMode = ViewModeEnum.EditForm; } txtDocumentName.Text = String.Empty; return(newDocument.NodeID); }