public override string RenderToString(CmsControlDefinition controlDefnToRender, CmsLanguage langToRenderFor) { StringBuilder html = new StringBuilder(); int PageIdToMove = PageUtils.getFromForm("target", Int32.MinValue); if (PageIdToMove < 0) { html.Append("<span style=\"color: red\">Invalid Target parameter. No page to move.</span>"); return(html.ToString()); } else { if (!CmsContext.pageExists(PageIdToMove)) { html.Append("<span style=\"color: red\">Target page does not exist. No page to move.</span>"); return(html.ToString()); } else { CmsPage pageToMove = CmsContext.getPageById(PageIdToMove); if (!pageToMove.currentUserCanWrite) { return("Access Denied"); } // -- form variable int parent = PageUtils.getFromForm("parent", Int32.MinValue); // -- process the action string action = PageUtils.getFromForm("MovePageAction", ""); if (String.Compare(action.Trim(), "MovePage", true) == 0) { if (!CmsContext.pageExists(parent)) { _errorMessage = "No parent page specified"; } else if (parent == pageToMove.ID) { _errorMessage = "can not move page to the same location!"; } else { CmsPage newParentPage = CmsContext.getPageById(parent); if (pageToMove.ID == CmsContext.HomePage.ID) { html.Append("<span style=\"color: red\">Error: you can not move the home page!</span>"); return(html.ToString()); } else { bool success = MovePage(pageToMove, newParentPage); if (success) { string script = "<script>" + Environment.NewLine; script = script + "function go(url){" + Environment.NewLine; script = script + "opener.location.href = url;" + Environment.NewLine; script = script + "window.close();\n}"; script = script + "</script>" + Environment.NewLine; script = script + "<span style=\"color: green; font-weight: bold;\">The Page has successfully been moved.</span>"; script = script + "<p><input type=\"button\" onclick=\"go('" + newParentPage.Url + "');\" value=\"close this window\">"; return(script); } } } } // if action String newLine = Environment.NewLine; CmsPage page = CmsContext.currentPage; html.Append("<head>" + newLine); html.Append("<title>Move Page</title>" + newLine); html.Append("<style>" + Environment.NewLine); html.Append(" #fp { width: 150px; }" + Environment.NewLine); html.Append("</style>" + Environment.NewLine); html.Append("</head>" + newLine); html.Append("<body style=\"margin: 0px; padding: 0px);\">"); string formId = "movePage"; html.Append(page.getFormStartHtml(formId)); html.Append("<table width=\"100%\" cellpadding=\"1\" cellspacing=\"2\" border=\"0\">" + newLine); html.Append("<tr>" + newLine); html.Append(" <td colspan=\"2\" bgcolor=\"#ffffd6\"><strong>Move page</strong></td>"+ newLine); html.Append("</tr>" + newLine); if (_errorMessage != "") { html.Append("<tr>" + newLine); html.Append(" <td colspan=\"2\">"); html.Append("<span style=\"color: red;\">" + _errorMessage + "</span>"); html.Append(" </td>"); html.Append("</tr>" + newLine); } html.Append("<tr>" + newLine); html.Append(" <td>"); html.Append(" Page to move : </td><td>\""+ pageToMove.Title + "\" <br />(" + pageToMove.Path + ")"); html.Append(" </td>"); html.Append("</tr>" + newLine); html.Append("<tr>" + newLine); html.Append(" <td>"); Dictionary <int, CmsPage> allPages = CmsContext.HomePage.getLinearizedPages(); NameValueCollection targetDropDownVals = new NameValueCollection(); foreach (int pageId in allPages.Keys) { CmsPage pageToAdd = allPages[pageId]; // -- don't allow moving a page to a child of the page, or to the same location as it is now. bool zoneAuthorized = pageToAdd.SecurityZone.canWrite(CmsContext.currentWebPortalUser); if (zoneAuthorized && !pageToAdd.isChildOf(pageToMove) && pageToAdd.ID != pageToMove.ParentID) { targetDropDownVals.Add(pageId.ToString(), pageToAdd.Path); } } html.Append(" move page so that it is under : </td><td>"+ PageUtils.getDropDownHtml("parent", "fp", targetDropDownVals, parent.ToString())); html.Append(" </td>"); html.Append("</tr>" + newLine); html.Append("</table>"); html.Append(PageUtils.getHiddenInputHtml("target", pageToMove.ID.ToString())); html.Append(PageUtils.getHiddenInputHtml("MovePageAction", "MovePage")); html.Append("<input type=\"submit\" value=\"move page\"> "); html.Append("<input type=\"button\" value=\"cancel\" onclick=\"window.close()\">"); html.Append(page.getFormCloseHtml(formId)); if (CmsConfig.Languages.Length > 1) { html.Append("<p><em>Note: All translated versions of the page to move will be moved to the new location as well.</em></p>"); } html.Append("</body>"); } // else page exists } return(html.ToString()); }
public override void RenderInViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] param) { StringBuilder html = new StringBuilder(); NewsArticleDb db = new NewsArticleDb(); NewsArticleDb.NewsArticleDetailsData news = db.fetchNewsDetails(page, identifier, langToRenderFor, true); html.Append("<h2>"); html.Append(news.DateOfNews.ToString("MMM d yyyy")); html.Append("</h2>"); writer.Write(html.ToString()); }
public override RevertToRevisionResult RevertToRevision(CmsPage oldPage, CmsPage currentPage, int[] identifiers, CmsLanguage language) { return(RevertToRevisionResult.NotImplemented); // this placeholder doesn't implement revisions }
public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { string ControlId = "Glossary_" + page.ID.ToString() + "_" + identifier.ToString() + "_" + langToRenderFor.shortCode; string renderEditorToDivId = ControlId + "RenderArea"; string renderJsonToFormId = ControlId + "JsonFormData"; string jsonDataVarName = ControlId + "_GlossaryJsonData"; GlossaryDb db = new GlossaryDb(); GlossaryPlaceholderData placeholderData = db.getGlossary(page, identifier, langToRenderFor, true); string action = PageUtils.getFromForm(ControlId + "_action", ""); if (String.Compare(action, "updateGlossary", true) == 0) { string receivedJSONData = PageUtils.getFromForm(renderJsonToFormId, ""); GlossaryData[] newData = fromJSON(receivedJSONData); placeholderData.SortOrder = (GlossaryPlaceholderData.GlossarySortOrder)PageUtils.getFromForm(ControlId + "SortOrder", typeof(GlossaryPlaceholderData.GlossarySortOrder), placeholderData.SortOrder); placeholderData.ViewMode = (GlossaryPlaceholderData.GlossaryViewMode)PageUtils.getFromForm(ControlId + "ViewMode", typeof(GlossaryPlaceholderData.GlossaryViewMode), placeholderData.ViewMode); bool b = db.saveUpdatedGlossary(page, identifier, langToRenderFor, placeholderData, newData); if (b) { GlossaryData[] dataToSave = db.getGlossaryData(placeholderData, ""); string jsonToSave = getJSVariableStatement(jsonDataVarName, dataToSave); try { string jsonFilename = System.Web.Hosting.HostingEnvironment.MapPath(CmsContext.ApplicationPath + "_system/writable/Glossary/" + jsonDataVarName + ".js"); System.IO.File.Delete(jsonFilename); System.IO.File.WriteAllText(jsonFilename, jsonToSave); } catch { } } } // if updateGlossary StringBuilder html = new StringBuilder(); html.Append(PageUtils.getHiddenInputHtml(ControlId + "_action", "updateGlossary")); string EOL = Environment.NewLine; html.Append("<p><strong>Glossary Display Configuration:</strong></p>"); html.Append("<table>"); if (CmsConfig.Languages.Length > 1) { html.Append("<tr>"); html.Append("<td>Language:</td><td>" + langToRenderFor.shortCode + "</td>"); html.Append("</tr>"); } html.Append("<tr>"); html.Append("<td>Display Mode: </td>"); html.Append("<td>"); html.Append(PageUtils.getDropDownHtml(ControlId + "ViewMode", ControlId + "ViewMode", Enum.GetNames(typeof(GlossaryPlaceholderData.GlossaryViewMode)), Enum.GetName(typeof(GlossaryPlaceholderData.GlossaryViewMode), placeholderData.ViewMode))); html.Append("</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Output Sorting: </td>"); html.Append("<td>"); html.Append(PageUtils.getDropDownHtml(ControlId + "SortOrder", ControlId + "SortOrder", Enum.GetNames(typeof(GlossaryPlaceholderData.GlossarySortOrder)), Enum.GetName(typeof(GlossaryPlaceholderData.GlossarySortOrder), placeholderData.SortOrder))); html.Append("</td>"); html.Append("</tr>"); html.Append("</table>" + EOL); // -- glossary data // note: the form is linked to GlossaryEditor.js GlossaryData[] items = db.getGlossaryData(placeholderData, ""); html.Append("<p><strong>Glossary Entries:</strong></p>"); html.Append("<div id=\"" + renderEditorToDivId + "\"></div>"); html.Append("<input type=\"button\" onclick=\"AddGlossaryElement('" + renderEditorToDivId + "');\" value=\"add new glossary entry\">" + Environment.NewLine); // -- the JSON data is passed to the server through this hidden form element html.Append(PageUtils.getHiddenInputHtml(renderJsonToFormId, renderJsonToFormId, "")); page.HeadSection.AddJavascriptFile(JavascriptGroup.Library, "js/_system/json2.js"); page.HeadSection.AddJavascriptFile(JavascriptGroup.FrontEnd, "js/_system/GlossaryEditor.js"); page.HeadSection.AddJSStatements(getJSVariableStatement(jsonDataVarName, items)); page.HeadSection.AddJSOnReady("var " + ControlId + "Instance = new GlossaryEditor('" + renderEditorToDivId + "', '" + renderJsonToFormId + "', JSON.parse(" + jsonDataVarName + ")); "); page.HeadSection.AddJSOnReady("GlossaryEditorInstances[GlossaryEditorInstances.length] = " + ControlId + "Instance; "); page.HeadSection.AddJSOnReady("" + ControlId + "Instance.updateDisplay();"); writer.Write(html.ToString()); } // RenderEdit
public string getFilenameOnDisk(CmsPage page, int identifier, CmsLanguage language) { return(getFilenameOnDisk(page, identifier, language, this.Filename)); }
public override string RenderToString(CmsControlDefinition controlDefnToRender, CmsLanguage langToRenderFor) { int targetPageId = PageUtils.getFromForm("target", Int32.MinValue); CmsPage targetPage = CmsContext.getPageById(targetPageId); string appendToTargetUrl = PageUtils.getFromForm("appendToTargetUrl", ""); NameValueCollection paramList = new NameValueCollection(); if (appendToTargetUrl.Trim() != "") { // -- split by | (pipe), and then by = (equals). string[] parts = appendToTargetUrl.Split(new char[] { '|' }); foreach (string s in parts) { string[] subParts = s.Split(new char[] { '=' }); if (subParts.Length == 2) { paramList.Add(subParts[0], subParts[1]); } } } CmsContext.setEditModeAndRedirect(CmsEditMode.View, targetPage, paramList); return(""); }
public override void RenderInViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { GlossaryDb db = new GlossaryDb(); GlossaryPlaceholderData placeholderData = db.getGlossary(page, identifier, langToRenderFor, true); string letterToDisplay = getLetterToDisplay(placeholderData); GlossaryData[] items = db.getGlossaryData(placeholderData, letterToDisplay); string[] charactersWithData = db.getAllCharactersWithData(placeholderData); StringBuilder html = new StringBuilder(); html.Append(GetHtmlDisplay(page, items, placeholderData, charactersWithData, letterToDisplay)); writer.Write(html.ToString()); } // RenderView
public override void RenderInViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { if (CmsConfig.Languages.Length > 1) { throw new Exception("Error: Contacts placeholder can not be used in multilingual sites yet!"); } PlaceholderDisplayMode mode = currentViewRenderMode; switch (mode) { case PlaceholderDisplayMode.MultipleContacts: RenderViewSummary(writer, page, identifier, langToRenderFor, paramList); break; case PlaceholderDisplayMode.SingleContact: RenderViewIndividual(writer, page, identifier, langToRenderFor, paramList); break; default: throw new ArgumentException("invalid PlaceholderDisplayMode"); } }
} // getAddEditContactForm public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { throw new Exception("The method or operation is not implemented."); }
private void RenderViewIndividual(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { ContactsDb db = new ContactsDb(); ContactPlaceholderData data = db.getContactPlaceholderData(page, identifier, true); int contactId = PageUtils.getFromForm(CurrentContactIdFormName, -1); ContactData contactToView = ContactData.getContact(contactId); bool canEdit = page.currentUserCanWrite; string backUrl = page.Url; writer.Write("<p><a href=\"" + backUrl + "\">« back to contact listing</a></p>"); // -- begin output if (canEdit) { writer.Write(getAddEditContactForm(data, contactToView, page, identifier, langToRenderFor)); } else { StringBuilder html = new StringBuilder(); html.Append("<table border=\"0\">"); string dividerLineHtml = getDividerLineHtml(2); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td colspan=\"2\" align=\"center\"><h2>" + StringUtils.JoinNonBlanks(" ", new string[] { contactToView.firstName, contactToView.lastName }) + "</h2></td>"); html.Append(dividerLineHtml); string colspan = "1"; html.Append("<td>Categories:</td>"); ContactDataCategory[] allCategories = ContactDataCategory.getAllContactCategories(); html.Append("<td colspan=\"" + colspan + "\">"); int cbid = 0; foreach (ContactDataCategory cat in allCategories) { bool check = (contactToView.contactCategoryIds.IndexOf(cat.CategoryId) > -1); string cb = PageUtils.getCheckboxHtml(cat.Title, "category", "category" + cbid.ToString(), cat.CategoryId.ToString(), check); html.Append(cb + "<br />"); cbid++; } // foreach html.Append("</td>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Title:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.title + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Organization:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.organizationName + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Address 1:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.address1 + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Address 2:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.address2 + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>City:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.city + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Province/State:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.provinceState + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Postal/Zip Code:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.postalZipCode + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Phone Number 1:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.phoneNumber1 + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Phone Number 2:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.phoneNumber2 + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Fax Number:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.faxNumber + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Mobile Number:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + contactToView.mobileNumber + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); string emailDisplay = ""; if (contactToView.emailAddress.Trim() != "") { emailDisplay = "<a href=\"mailto:" + contactToView.SpamEncodedEmailAddress + "\">" + contactToView.SpamEncodedEmailAddress + "</a>"; } html.Append("<tr>"); html.Append("<td>Email Address:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + emailDisplay + "</td>"); html.Append("</tr>"); html.Append("</table>"); writer.Write(html.ToString()); } }
private string getAddEditContactForm(ContactPlaceholderData data, ContactData contactToEdit, CmsPage page, int identifier, CmsLanguage langToRenderFor) { string ControlId = "Contacts_" + page.Id.ToString() + "_" + identifier.ToString() + langToRenderFor.shortCode; bool editing = (contactToEdit.contactId > -1); // -- process form actions string action = PageUtils.getFromForm(ControlId + "action", ""); string _userErrorMessage = ""; string _userMessage = ""; bool _showContactDetails = true; if (editing && String.Compare(action, "deleteContact", true) == 0) { bool b = ContactData.DeleteContact(contactToEdit); if (b) { _userMessage = "The contact \"" + getNameDisplayOutput(data, contactToEdit) + "\" has been deleted"; _showContactDetails = false; } else { _userErrorMessage = "Error: could not delete contact. There was a database error"; } } else if (String.Compare(action, "addNewContact", true) == 0) { if (!editing) { contactToEdit = new ContactData(); } contactToEdit.firstName = PageUtils.getFromForm(ControlId + "firstName", contactToEdit.firstName); contactToEdit.lastName = PageUtils.getFromForm(ControlId + "lastName", contactToEdit.lastName); contactToEdit.title = PageUtils.getFromForm(ControlId + "title", contactToEdit.title); contactToEdit.organizationName = PageUtils.getFromForm(ControlId + "organizationName", contactToEdit.organizationName); contactToEdit.address1 = PageUtils.getFromForm(ControlId + "address1", contactToEdit.address1); contactToEdit.address2 = PageUtils.getFromForm(ControlId + "address2", contactToEdit.address2); contactToEdit.city = PageUtils.getFromForm(ControlId + "city", contactToEdit.city); contactToEdit.provinceState = PageUtils.getFromForm(ControlId + "provinceState", contactToEdit.provinceState); contactToEdit.postalZipCode = PageUtils.getFromForm(ControlId + "postalZipCode", contactToEdit.postalZipCode); contactToEdit.phoneNumber1 = PageUtils.getFromForm(ControlId + "phoneNumber1", contactToEdit.phoneNumber1); contactToEdit.phoneNumber2 = PageUtils.getFromForm(ControlId + "phoneNumber2", contactToEdit.phoneNumber2); contactToEdit.faxNumber = PageUtils.getFromForm(ControlId + "faxNumber", contactToEdit.faxNumber); contactToEdit.mobileNumber = PageUtils.getFromForm(ControlId + "mobileNumber", contactToEdit.mobileNumber); contactToEdit.emailAddress = PageUtils.getFromForm(ControlId + "emailAddress", contactToEdit.emailAddress); string[] s_catIds = PageUtils.getFromForm(ControlId + "category"); int[] catIds = StringUtils.ToIntArray(s_catIds); contactToEdit.contactCategoryIds.Clear(); contactToEdit.contactCategoryIds.AddRange(catIds); if (contactToEdit.firstName.Trim() == "") { _userErrorMessage = "Please enter the contact's first name"; } else if (contactToEdit.lastName.Trim() == "") { _userErrorMessage = "Please enter the contact's last name"; } else if (contactToEdit.contactCategoryIds.Count < 1) { _userErrorMessage = "Please select at least one category for the contact"; } else { bool b = contactToEdit.SaveToDatabase(); if (!b) { _userErrorMessage = "There was a problem saving the contact to the database"; } else { if (editing) { string nameDisplay = getNameDisplayOutput(data, contactToEdit); _userMessage = "The changes to \"" + nameDisplay + "\" have been saved."; } else { string nameDisplay = getNameDisplayOutput(data, contactToEdit); _userMessage = "The contact \"" + nameDisplay + "\" has been added."; contactToEdit = new ContactData(); // remove all previously submitted values editing = false; } } } } // if process StringBuilder html = new StringBuilder(); if (editing) { string nameDisplay = getNameDisplayOutput(data, contactToEdit); html.Append("<h2>Edit contact \"" + nameDisplay + "\":</h2>"); } else { html.Append("<h2>Add a new contact:</h2>"); } if (_userErrorMessage != "") { html.Append("<p style=\"color: red\">Error: " + _userErrorMessage + "</p>"); } if (_userMessage != "") { html.Append("<p style=\"color: green\">" + _userMessage + "</p>"); } if (!_showContactDetails) { return(html.ToString()); } string formId = "editContact"; html.Append(page.getFormStartHtml(formId)); html.Append("<table border=\"0\">"); string dividerLineHtml = getDividerLineHtml(4); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>First Name:</td>"); html.Append("<td>" + PageUtils.getInputTextHtml(ControlId + "firstName", ControlId + "firstName", contactToEdit.firstName, 20, 255) + "</td>"); html.Append("<td>Last Name:</td>"); html.Append("<td>" + PageUtils.getInputTextHtml(ControlId + "lastName", ControlId + "lastName", contactToEdit.lastName, 20, 255) + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); string colspan = "3"; html.Append("<td>Categories:</td>"); ContactDataCategory[] allCategories = ContactDataCategory.getAllContactCategories(); html.Append("<td colspan=\"" + colspan + "\">"); int cbid = 0; foreach (ContactDataCategory cat in allCategories) { bool check = (contactToEdit.contactCategoryIds.IndexOf(cat.CategoryId) > -1); string cb = PageUtils.getCheckboxHtml(cat.Title, ControlId + "category", ControlId + "category" + cbid.ToString(), cat.CategoryId.ToString(), check); html.Append(cb + "<br />"); cbid++; } // foreach html.Append("</td>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Title:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "title", ControlId + "title", contactToEdit.title, 40, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Organization:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "organizationName", ControlId + "organizationName", contactToEdit.organizationName, 40, 255) + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Address 1:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "address1", ControlId + "address1", contactToEdit.address1, 40, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Address 2:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "address2", ControlId + "address2", contactToEdit.address2, 40, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>City:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "city", ControlId + "city", contactToEdit.city, 40, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Province/State:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "provinceState", ControlId + "provinceState", contactToEdit.provinceState, 20, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Postal/Zip Code:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "postalZipCode", ControlId + "postalZipCode", contactToEdit.postalZipCode, 10, 255) + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Phone Number 1:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "phoneNumber1", ControlId + "phoneNumber1", contactToEdit.phoneNumber1, 20, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Phone Number 2:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "phoneNumber2", ControlId + "phoneNumber2", contactToEdit.phoneNumber2, 20, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Fax Number:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "faxNumber", ControlId + "faxNumber", contactToEdit.faxNumber, 20, 255) + "</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Mobile Number:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "mobileNumber", ControlId + "mobileNumber", contactToEdit.mobileNumber, 20, 255) + "</td>"); html.Append("</tr>"); html.Append(dividerLineHtml); html.Append("<tr>"); html.Append("<td>Email Address:</td>"); html.Append("<td colspan=\"" + colspan + "\">" + PageUtils.getInputTextHtml(ControlId + "emailAddress", ControlId + "emailAddress", contactToEdit.emailAddress, 40, 255) + "</td>"); html.Append("</tr>"); html.Append("</table>"); html.Append(PageUtils.getHiddenInputHtml(ControlId + "action", "addNewContact")); if (editing) { html.Append(PageUtils.getHiddenInputHtml(CurrentContactIdFormName, contactToEdit.contactId.ToString())); html.Append("<input type=\"submit\" value=\"save changes\">"); } else { html.Append("<input type=\"submit\" value=\"add contact\">"); } html.Append(page.getFormCloseHtml(formId)); if (editing) { formId = formId + "_Delete"; html.Append(page.getFormStartHtml(formId)); html.Append("<p align=\"right\">Delete:"); html.Append(PageUtils.getHiddenInputHtml(CurrentContactIdFormName, contactToEdit.contactId.ToString())); html.Append(PageUtils.getHiddenInputHtml(ControlId + "action", "deleteContact")); html.Append("<input type=\"submit\" value=\"delete contact\">"); html.Append("</p>"); html.Append(page.getFormCloseHtml(formId)); } return(html.ToString()); } // getAddEditContactForm
} // RenderViewSummary private string getSummaryDisplay(ContactPlaceholderData data, ContactData[] contacts, CmsLanguage langToRenderFor, CmsPage page) { StringBuilder html = new StringBuilder(); if (contacts.Length < 1) { html.Append("<p><em>there are no contacts to display</em></p>"); } else { html.Append("<table class=\"ContactsSummaryList\"><tr>"); int numContactsPerCol = Convert.ToInt32(Math.Ceiling((double)contacts.Length / (double)data.numColumnsToShow)); if (numContactsPerCol == 1 && (contacts.Length > data.numColumnsToShow)) { numContactsPerCol++; } if (numContactsPerCol < 1) { numContactsPerCol = contacts.Length; } bool internalTableStarted = false; for (int contactCount = 0; contactCount < contacts.Length; contactCount++) { if ((contactCount % numContactsPerCol) == 0) { if (internalTableStarted) { html.Append("</table></td>"); } html.Append("<td valign=\"top\"><table>"); internalTableStarted = true; } ContactData contact = contacts[contactCount]; string detailsUrl = getContactDetailsDisplayUrl(contact, page); html.Append("<tr><td class=\"ContactInformationDisplay\">"); html.Append("<strong><a href=\"" + detailsUrl + "\">" + getNameDisplayOutput(data, contact) + "</a></strong>"); string details = getContactDetailsSummaryDisplay(contact); if (details != "") { html.Append("<br />" + details); } html.Append("</td></tr>"); } // foreach if (internalTableStarted) { html.Append("</table></td>"); } html.Append("</tr></table>"); } return(html.ToString()); }
public void RenderViewSummary(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { string ControlId = "Contacts_" + page.Id.ToString() + "_" + identifier.ToString() + langToRenderFor.shortCode; ContactsDb db = new ContactsDb(); ContactPlaceholderData data = db.getContactPlaceholderData(page, identifier, true); // -- before getContacts, process the form string addFormHtml = ""; if (page.currentUserCanWrite) { addFormHtml = getAddEditContactForm(data, new ContactData(), page, identifier, langToRenderFor); } int[] categoryIdsToDisplay = getCategoryIdsToDisplay(data); string[] orgsToDisplay = getOrgNamesToDisplay(); ContactData[] contacts = ContactData.getContacts(data, categoryIdsToDisplay, orgsToDisplay); StringBuilder html = new StringBuilder(); html.Append("<table width=\"100%\"><tr>"); html.Append("<td valign=\"top\">"); html.Append(getSummaryDisplay(data, contacts, langToRenderFor, page)); html.Append("</td>"); html.Append("<td valign=\"top\">"); if (contacts.Length > 1) { html.Append(getSummaryDisplayFilterForm(data, contacts, page, identifier)); } html.Append("</td>"); html.Append("</tr>"); html.Append("</table>"); if (page.currentUserCanWrite) { html.Append("<p>" + addFormHtml + "</p>"); } writer.Write(html.ToString()); } // RenderViewSummary
public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { string ControlId = "Contacts_" + page.Id.ToString() + "_" + identifier.ToString() + langToRenderFor.shortCode; ContactsDb db = new ContactsDb(); ContactPlaceholderData data = new ContactPlaceholderData(); data = db.getContactPlaceholderData(page, identifier, true); string action = PageUtils.getFromForm(ControlId + "_action", ""); if (String.Compare(action, "saveNewValues", true) == 0) { data.numColumnsToShow = PageUtils.getFromForm(ControlId + "numColumnsToShow", data.numColumnsToShow); data.forceFilterToCategoryId = PageUtils.getFromForm(ControlId + "forceFilterToCategoryId", data.forceFilterToCategoryId); data.nameDisplayMode = (ContactPlaceholderData.ContactNameDisplayMode)PageUtils.getFromForm(ControlId + "nameDisplayMode", typeof(ContactPlaceholderData.ContactNameDisplayMode), data.nameDisplayMode); data.allowFilterByCategory = PageUtils.getFromForm(ControlId + "allowFilterByCategory", false); data.allowFilterByCompany = PageUtils.getFromForm(ControlId + "allowFilterByCompany", false); data.accessLevelToAddContacts = (BaseCmsPlaceholder.AccessLevel)PageUtils.getFromForm(ControlId + "accessLevelToAddContacts", typeof(BaseCmsPlaceholder.AccessLevel), data.accessLevelToAddContacts); data.accessLevelToEditContacts = (BaseCmsPlaceholder.AccessLevel)PageUtils.getFromForm(ControlId + "accessLevelToEditContacts", typeof(BaseCmsPlaceholder.AccessLevel), data.accessLevelToEditContacts); db.saveUpdatedContactPlaceholderData(page, identifier, data); } StringBuilder html = new StringBuilder(); html.Append("Contacts Display Configuration:"); html.Append("<table>"); html.Append("<tr>"); html.Append("<td>Force Category filter to display: </td>"); html.Append("<td>"); ContactDataCategory[] allCats = ContactDataCategory.getAllContactCategories(); NameValueCollection options = new NameValueCollection(); options.Add("-1", "do not force category to filter"); foreach (ContactDataCategory cat in allCats) { options.Add(cat.CategoryId.ToString(), cat.Title); } // foreach html.Append(PageUtils.getDropDownHtml(ControlId + "forceFilterToCategoryId", ControlId + "forceFilterToCategoryId", options, data.forceFilterToCategoryId.ToString())); html.Append("</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Allow filter by: </td>"); html.Append("<td>"); html.Append(PageUtils.getCheckboxHtml("Category", ControlId + "allowFilterByCategory", ControlId + "allowFilterByCategory", true.ToString(), data.allowFilterByCompany)); html.Append("<br>"); html.Append(PageUtils.getCheckboxHtml("Company Name", ControlId + "allowFilterByCompany", ControlId + "allowFilterByCompany", true.ToString(), data.allowFilterByCompany)); html.Append("</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Number of columns: </td>"); html.Append("<td>"); html.Append(PageUtils.getInputTextHtml(ControlId + "numColumnsToShow", ControlId + "numColumnsToShow", data.numColumnsToShow.ToString(), 3, 5)); html.Append("</td>"); html.Append("</tr>"); html.Append("<tr>"); html.Append("<td>Name display format: </td>"); html.Append("<td>"); html.Append(PageUtils.getDropDownHtml(ControlId + "nameDisplayMode", ControlId + "nameDisplayMode", Enum.GetNames(typeof(ContactPlaceholderData.ContactNameDisplayMode)), Enum.GetName(typeof(ContactPlaceholderData.ContactNameDisplayMode), data.nameDisplayMode))); html.Append("</td>"); html.Append("</tr>"); // -- deprecated items PageUtils.getHiddenInputHtml(ControlId + "accessLevelToAddContacts", Enum.GetName(typeof(BaseCmsPlaceholder.AccessLevel), BaseCmsPlaceholder.AccessLevel.CmsAuthor)); PageUtils.getHiddenInputHtml(ControlId + "accessLevelToEditContacts", Enum.GetName(typeof(BaseCmsPlaceholder.AccessLevel), BaseCmsPlaceholder.AccessLevel.CmsAuthor)); html.Append("</table>"); html.Append(PageUtils.getHiddenInputHtml(ControlId + "_action", "saveNewValues")); writer.Write(html.ToString()); } // RenderEditSummary
private void renderCommand(System.Web.UI.UserControl parentUserControl, string command) { // command is the full command, such as ##Placeholder(HtmlContent id="1")## or ##RenderContro(_system/PageTitle)##. int parseFrom = command.IndexOf("(", StringComparison.CurrentCultureIgnoreCase); int parseTo = command.Length - ")".Length - COMMAND_DELIMITER.Length; string rawParameters = ""; Dictionary <string, string> parameters = new Dictionary <string, string>(); if (command.IndexOf("StartPageBody", StringComparison.CurrentCultureIgnoreCase) < 0 && command.IndexOf("EndPageBody", StringComparison.CurrentCultureIgnoreCase) < 0) { if (parseFrom < 0 || parseTo < 0) { throw new TemplateExecutionException(templateName, "Template statement \"" + command + "\" is not formatted properly."); } parseFrom += "(".Length; rawParameters = command.Substring(parseFrom, (parseTo - parseFrom)); parameters = tokenizeCommandParameters(rawParameters); } string langShortCode = ""; if (currentLangIndex < CmsConfig.Languages.Length) { langShortCode = CmsConfig.Languages[currentLangIndex].shortCode.ToLower().Trim(); } string langDivId = "lang_" + langShortCode; // note: this divId is used (hard-coded) all over the place!!! // -- only output multiple languages if we are in Edit mode bool outputMultipleLanguages = (CmsContext.currentEditMode == CmsEditMode.Edit); if (outputMultipleLanguages && command.StartsWith(COMMAND_DELIMITER + "StartPageBody", StringComparison.CurrentCultureIgnoreCase)) { // -- if the first StartPageBody, start the form - the same as in StartEditForm.ascx if (currentLangIndex == 0) { RenderTextToPage(parentUserControl, COMMAND_DELIMITER + "RenderControl(_system/StartEditForm)" + COMMAND_DELIMITER); } string cssStyle = "display: none;"; CmsLanguage langToRender = CmsConfig.Languages[currentLangIndex]; // -- default to view the current Language first if (langToRender == CmsContext.currentLanguage) { cssStyle = "display: block;"; } parentUserControl.Controls.Add(new LiteralControl("<!-- Start Language " + langDivId + " --> ")); parentUserControl.Controls.Add(new LiteralControl("<div id=\"" + langDivId + "\" class=\"" + langDivId + " PageLanguageBody\" style=\"" + cssStyle + "\">")); } else if (outputMultipleLanguages && command.StartsWith(COMMAND_DELIMITER + "EndPageBody", StringComparison.CurrentCultureIgnoreCase)) { parentUserControl.Controls.Add(new LiteralControl("</div>")); parentUserControl.Controls.Add(new LiteralControl("<!-- End Language " + langDivId + " --> ")); currentLangIndex++; // increment to the next language if (currentLangIndex < CmsConfig.Languages.Length) { string pageBody = getPageBodyText(); RenderTextToPage(parentUserControl, pageBody); } else { // -- the last EndPageBody, so close the edit form using the EndEditForm control RenderTextToPage(parentUserControl, COMMAND_DELIMITER + "RenderControl(_system/EndEditForm)" + COMMAND_DELIMITER); } } else if (command.StartsWith(COMMAND_DELIMITER + "PlaceholderRegion", StringComparison.CurrentCultureIgnoreCase)) { if (!parameters.ContainsKey("##commandname##")) { throw new TemplateExecutionException(templateName, "Template statement \"" + command + "\" must have at least one parameter!"); } string regionName = parameters["##commandname##"]; string regionCommands = getTemplatePlaceholderRegionText(regionName); RenderTextToPage(parentUserControl, regionCommands); } else if (command.StartsWith(COMMAND_DELIMITER + "placeholder", StringComparison.CurrentCultureIgnoreCase)) { // AddControlToPage(new LiteralControl("placeholder: " + rawParameters)); if (!parameters.ContainsKey("##commandname##")) { throw new TemplateExecutionException(templateName, "Template statement \"" + command + "\" must have at least one parameter!"); } string placeholderName = parameters["##commandname##"]; if (!parameters.ContainsKey("id")) { throw new TemplateExecutionException(templateName, "The placeholder statement must have an id attribute (\"" + command + "\")."); } int identifier = -1; try { identifier = Convert.ToInt32(parameters["id"]); } catch { throw new TemplateExecutionException(templateName, "The placeholder statement must have an integer id attribute (\"" + command + "\")."); } // do not output if: // 1) we are making a printer friendly version, and the placeholder has its printer friendly parameter name set to false. // 2) we are making an offline version, and the placeholder has its offline version parameter name set to false. bool doNotOutput = ( /* print friendly version: */ (CmsContext.currentUserIsRequestingPrintFriendlyVersion && parameters.ContainsKey(PRINTER_FRIENDLY_VERSION_OUTPUT_CONTROL_PARAMETERNAME) && String.Compare(parameters[PRINTER_FRIENDLY_VERSION_OUTPUT_CONTROL_PARAMETERNAME], "false", true) == 0) || /* offline version: */ (CmsContext.currentUserIsRequestingPrintFriendlyVersion && parameters.ContainsKey(OFFLINE_VERSION_OUTPUT_CONTROL_PARAMETERNAME) && String.Compare(parameters[OFFLINE_VERSION_OUTPUT_CONTROL_PARAMETERNAME], "false", true) == 0)); if (!doNotOutput) { // params[0] contains the rawParameters string[] subParamsArray = new string[] { rawParameters }; System.Text.StringBuilder sb = new System.Text.StringBuilder(); HtmlTextWriter writer = new HtmlTextWriter(new StringWriter(sb)); CmsLanguage langToRender = CmsConfig.Languages[currentLangIndex]; // the currentLangIndex is incremented when the EndPageBody statement is found in the template // dynamically load the Placeholder class and call its Render method switch (CmsContext.currentEditMode) { case CmsEditMode.Edit: PlaceholderUtils.RenderInEditMode(placeholderName, writer, page, identifier, langToRender, subParamsArray, templateName); break; case CmsEditMode.View: PlaceholderUtils.RenderInViewMode(placeholderName, writer, page, identifier, langToRender, subParamsArray, templateName); break; } string txt = sb.ToString(); // -- Run Placeholder Filters txt = CmsOutputFilterUtils.RunPlaceholderFilters(placeholderName, page, txt); LiteralControl literal = new LiteralControl(txt); parentUserControl.Controls.Add(literal); } } else if (command.StartsWith(COMMAND_DELIMITER + "rendercontrol", StringComparison.CurrentCultureIgnoreCase)) { if (!parameters.ContainsKey("##commandname##")) { throw new TemplateExecutionException(templateName, "Template statement \"" + command + "\" must have at least one parameter!"); } string controlNameOrPath = parameters["##commandname##"]; // -- try to dynamically load the control onto the page from the ASCX file. // if the ASCX file is not found, we try to load the control as a class. If that fails, throw an Exception if (CmsControlUtils.ControlExists(controlNameOrPath)) { // do not output if: // 1) we are making a printer friendly version, and the control has its printer friendly parameter name set to false. // 2) we are making an offline version, and the control has its offline version parameter name set to false. bool doNotOutput = ( /* print friendly version: */ (CmsContext.currentUserIsRequestingPrintFriendlyVersion && parameters.ContainsKey(PRINTER_FRIENDLY_VERSION_OUTPUT_CONTROL_PARAMETERNAME) && String.Compare(parameters[PRINTER_FRIENDLY_VERSION_OUTPUT_CONTROL_PARAMETERNAME], "false", true) == 0) || /* offline version: */ (CmsContext.currentUserIsRequestingPrintFriendlyVersion && parameters.ContainsKey(OFFLINE_VERSION_OUTPUT_CONTROL_PARAMETERNAME) && String.Compare(parameters[OFFLINE_VERSION_OUTPUT_CONTROL_PARAMETERNAME], "false", true) == 0)); if (!doNotOutput) { int langIndex = currentLangIndex; if (langIndex >= CmsConfig.Languages.Length) { langIndex = 0; } CmsLanguage langToRender = CmsConfig.Languages[langIndex]; // the currentLangIndex is incremented when the EndPageBody statement is found in the template CmsControlDefinition controlDef = new CmsControlDefinition(controlNameOrPath, rawParameters); CmsControlUtils.AddControlToPage(controlNameOrPath, controlDef, parentUserControl, langToRender); } } else { string ControlNotFoundMessage = "Could not find or load Control: \"" + controlNameOrPath + "\""; throw new TemplateExecutionException(templateName, ControlNotFoundMessage); } } // renderRonctol }
} // resolveUrl private void RenderViewStatus(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { PageRedirectDb db = new PageRedirectDb(); string url = db.getPageRedirectUrl(page, identifier, langToRenderFor.shortCode, true); string resolvedUrl = resolveRedirectUrl(url); string width = "100%"; string height = "1.5em"; if (CmsConfig.TemplateEngineVersion == CmsTemplateEngineVersion.v2) { width = PlaceholderUtils.getParameterValue("width", width, paramList); height = PlaceholderUtils.getParameterValue("height", height, paramList); } else { throw new NotImplementedException("Error: invalid TemplateEngine version"); } System.Text.StringBuilder html = new System.Text.StringBuilder(); html.Append("<div style=\"background: #CCC; padding: 0.2em;\">"); html.Append("Normal site viewers (people who are not site authors) will be automatically redirected to :"); html.Append("<a href=\"" + resolvedUrl + "\" style=\"font-size: " + height + ";\">"); html.Append(url); html.Append("</a>"); if (resolvedUrl != "") { StringBuilder js = new StringBuilder(); js.Append("var start=new Date();" + Environment.NewLine); js.Append("start=Date.parse(start)/1000;" + Environment.NewLine); js.Append("var counts=10;" + Environment.NewLine); js.Append("function CountDownToRedirect(){" + Environment.NewLine); js.Append(" var now=new Date();" + Environment.NewLine); js.Append(" now=Date.parse(now)/1000;" + Environment.NewLine); js.Append(" var x=parseInt(counts-(now-start),10);" + Environment.NewLine); js.Append(" document.getElementById('redirectCountDown').value = x;" + Environment.NewLine); js.Append(" if(x>0){" + Environment.NewLine); js.Append(" timerID=setTimeout(\"CountDownToRedirect()\", 100)"+ Environment.NewLine); js.Append(" }else{" + Environment.NewLine); js.Append(" location.href=\""+ resolvedUrl + "\"" + Environment.NewLine); js.Append(" }" + Environment.NewLine); js.Append("} // CountDownToRedirect" + Environment.NewLine); page.HeadSection.AddJSStatements(js.ToString()); page.HeadSection.AddJSOnReady("CountDownToRedirect();"); page.HeadSection.registerBlockForOutput("RedirectTimer"); int numSecondsToWait = CmsConfig.getConfigValue("RedirectPlaceholder_autoRedirectAfterSeconds", 10);; html.Append("<p>You are being redirected in <input type=\"text\" name=\"clock\" id=\"redirectCountDown\" size=\"2\" value=\"" + numSecondsToWait.ToString() + "\"> seconds.</p>" + Environment.NewLine); } html.Append("</div>"); writer.WriteLine(html); } // RenderViewStatus
public override string RenderToString(CmsControlDefinition controlDefnToRender, CmsLanguage langToRenderFor) { // -- get the target page int targetPageId = PageUtils.getFromForm("target", Int32.MinValue); if (targetPageId < 0) { return("Error: invalid target page!"); } CmsPage page = CmsContext.getPageById(targetPageId); if (!page.currentUserCanWrite) { return("Access Denied"); } string html = "<Strong>Sort Sub-Pages</Strong><br>"; // -- process the submitted form string action = PageUtils.getFromForm("action", ""); if (action.ToLower() == "dosort") { string[] newOrderIds = PageUtils.getFromForm("order"); // writer.WriteLine(String.Join(",",newOrderIds)+"<p>"); for (int i = 0; i < newOrderIds.Length; i++) { int id = Convert.ToInt32(newOrderIds[i]); CmsPage tempPage = CmsContext.getPageById(id); if (tempPage.ID != -1) { tempPage.setSortOrdinal(i); } } // for html = html + "<script>" + Environment.NewLine; html = html + "function go(url){" + Environment.NewLine; html = html + "opener.location.href = url;" + Environment.NewLine; html = html + "window.close();\n}"; html = html + "</script>" + Environment.NewLine; html = html + "<p><center>Sub-Pages Successfully Sorted<p>"; html = html + "<input type=\"button\" value=\"close this window\" onclick=\"go('" + page.Url + "')\">"; html = html + "</center>"; return(html); } // if action = doSort // -- render the form CmsPage currentPage = CmsContext.currentPage; currentPage.HeadSection.AddEmbeddedJavascriptFile(JavascriptGroup.ControlOrPlaceholder, typeof(SortSubPagesPopup).Assembly, "sortSelectList.js"); string formId = "sortSubPagesForm"; html = html + currentPage.getFormStartHtml(formId, "selectall('order');"); html = html + "<table align=\"center\" border=\"0\">"; html = html + "<tr>"; html = html + "<td valign=\"top\">"; int size = Math.Min((int)page.ChildPages.Length, 20); html = html + "<select name=\"order\" size=\"" + size.ToString() + "\" multiple=\"multiple\" id=\"order\" onmousewheel=\"mousewheel(this);\" ondblclick=\"selectnone(this);\">"; // <option value="13" id="a01">0Red 1</option> foreach (CmsPage childPage in page.ChildPages) { html = html + "<option value=\"" + childPage.ID + "\">" + childPage.Title + "</option>" + Environment.NewLine; } html = html + "</select>"; html = html + "</td>"; html = html + "<td valign=\"middle\">"; html = html + "<input type=\"button\" value=\"Move to Top\" onclick=\"top('order');\" style=\"width: 100px;\" /><br><br>"; html = html + "<input type=\"button\" value=\"Move Up\" onclick=\"up('order');\" style=\"width: 100px;\" /><br>"; html = html + "<input type=\"button\" value=\"Move Down\" onclick=\"down('order');\" style=\"width: 100px;\" /><br><br>"; html = html + "<input type=\"button\" value=\"Move to Bottom\" onclick=\"bottom('order');\" style=\"width: 100px;\" /><br><br>"; html = html + "</td>"; html = html + "</tr>"; html = html + "</table>"; html = html + "<input type=\"hidden\" name=\"action\" value=\"doSort\">"; html = html + "<input type=\"hidden\" name=\"target\" value=\"" + targetPageId.ToString() + "\">"; html = html + "<input type=\"submit\" value=\"Save Order\">"; html = html + currentPage.getFormCloseHtml(formId); return(html); }
} // RenderViewStatus public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { return(new Rss.RssItem[0]); // no rss feed items to return. }
public override string RenderToString(CmsControlDefinition controlDefnToRender, CmsLanguage langToRenderFor) { StringBuilder html = new StringBuilder(); html.Append("<div style=\"text-align: center;\">"); string msg = validate(); if (msg != "") { return(formatErrorMsg(msg)); } CmsPage p = getCmsPage(); if (p.hasPlaceholder("FileLibraryAggregator")) { msg += handleFileLibraryAggregatorDelete(p); } if (p.hasPlaceholder("FileLibraryDetails")) { msg += handleFileLibraryDetailsDelete(p); } if (msg != "") { return(formatErrorMsg(msg)); } html.Append(renderCloseButton(p.ParentPage.Url)); html.Append("</div>"); return(html.ToString()); }
public override void RenderInViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { if (page.currentUserCanWrite) { RenderViewStatus(writer, page, identifier, langToRenderFor, paramList); } else { RenderView(writer, page, identifier, langToRenderFor, paramList); } }
} // RenderView public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { GlossaryDb db = new GlossaryDb(); GlossaryPlaceholderData placeholderData = db.getGlossary(page, placeholderDefinition.Identifier, langToRenderFor, true); GlossaryPlaceholderData.GlossaryViewMode origViewMode = placeholderData.ViewMode; // -- gets all glossary items (regardless of the ViewMode) GlossaryData[] items = db.getGlossaryData(placeholderData.GlossaryId); // -- each glossary item gets its own rssItem List <Rss.RssItem> ret = new List <Rss.RssItem>(); foreach (GlossaryData glData in items) { Rss.RssItem rssItem = new Rss.RssItem(); rssItem = base.InitRssItem(rssItem, page, langToRenderFor); rssItem.Description = glData.description; // -- setup the proper link switch (placeholderData.ViewMode) { case GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter: Dictionary <string, string> urlParams = new Dictionary <string, string>(); urlParams.Add("l", glData.word.ToUpper()[0].ToString()); rssItem.Link = new Uri(page.getUrl(urlParams, langToRenderFor)); break; case GlossaryPlaceholderData.GlossaryViewMode.SinglePageWithJumpList: // nothing to do break; default: throw new Exception("Error: invalid GlossaryViewMode"); } // switch } return(ret.ToArray()); }
public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { PageRedirectDb db = new PageRedirectDb(); string formName = "PageRedirect_" + page.ID.ToString() + identifier.ToString() + langToRenderFor.shortCode; string width = "100%"; string height = "1.5em"; if (CmsConfig.TemplateEngineVersion == CmsTemplateEngineVersion.v2) { width = PlaceholderUtils.getParameterValue("width", width, paramList); height = PlaceholderUtils.getParameterValue("height", height, paramList); } else { throw new NotImplementedException("Error: invalid TemplateEngine version"); } string pageRedirectUrl = db.getPageRedirectUrl(page, identifier, langToRenderFor.shortCode, true); // string Message = ""; // ------- CHECK THE FORM FOR ACTIONS string action = Hatfield.Web.Portal.PageUtils.getFromForm(formName + "_Action", ""); if (action.Trim().ToLower() == "saveUrl".ToLower()) { pageRedirectUrl = Hatfield.Web.Portal.PageUtils.getFromForm(formName + "_value", ""); if (!db.saveUpdatedPageRedirect(page, identifier, langToRenderFor.shortCode, pageRedirectUrl)) { throw new Exception("Problem with database: could not set redirect url"); } } // ------- START RENDERING // -- get the Javascript string html = ""; // -- render the Control // note: no need to put in the <form></form> tags. string id = formName + "_id"; html = html + "<div style=\"background: #CCC; padding: 0.2em;\">"; html = html + "URL to redirect to: <input style=\"font-size: " + height + "; font-weight: bold; width: " + width + "; height:" + height + " \" type=\"text\" id=\"" + id + "\" name=\"" + formName + "_value\" value=\"" + pageRedirectUrl + "\">"; //html = html + "<br><a href=\"#\" onclick=\"var url = document.getElementById('"+id+"').value; window.open(url,'"+id+"_window');\">test link</a>"; html = html + "<br>hint: use a '~' for a local link (eg: '~/' links to the home page, '~" + page.ParentPage.Path + "' links to the " + page.ParentPage.Title + " page )"; html = html + "<input type=\"hidden\" name=\"" + formName + "_Action\" value=\"saveUrl\">"; html = html + "</div>"; writer.WriteLine(html); } // RenderEdit
public static string GetFileStorageDirectoryUrl(CmsPage page, int identifier, CmsLanguage language) { return(FileLibraryDetailsData.getFileStorageFolderUrl(page, identifier, language)); }
public ProcurementDetailsData(CmsPage page, int identifier, CmsLanguage lang) { this.pageId = page.ID; this.identifier = identifier; this.lang = lang; }
/// <summary> /// Render the "Add an user image gallery" /// </summary> /// <param name="action"></param> /// <param name="pageToRenderFor"></param> /// <param name="langToRenderFor"></param> /// <returns></returns> protected static string AddGalleryEditMenuRender(CmsPageEditMenuAction action, CmsPage pageToRenderFor, CmsLanguage langToRenderFor) { NameValueCollection createPageParams = action.CreateNewPageOptions.GetCreatePagePopupParams(); if (action.CreateNewPageOptions.RequiresUserInput()) { return(CmsPageEditMenu.DefaultStandardActionRenderers.RenderPopupLink("CreateNewPagePath", "/_admin/createPage", createPageParams, pageToRenderFor, langToRenderFor, "<strong>Add</strong> an image gallery", 500, 400)); } else { return(CmsPageEditMenu.DefaultStandardActionRenderers.RenderLink("CreateNewPagePath", "/_admin/createPage", createPageParams, pageToRenderFor, langToRenderFor, "<strong>Add</strong> an image gallery")); } }
public ProcurementAggregatorData fetchProcurementAggregator(CmsPage page, int identifier, CmsLanguage lang, bool createIfNotExist) { if (page.ID < 0 || identifier < 0) { return(new ProcurementAggregatorData()); } StringBuilder sql = new StringBuilder("SELECT DefaultYearToDisplay FROM "); sql.Append(TableNameAggregator); sql.Append(" WHERE PageId=" + page.ID.ToString()); sql.Append(" AND LangCode='" + lang.shortCode + "'"); sql.Append(" AND Identifier=" + identifier.ToString()); sql.Append(" AND Deleted is null;"); ProcurementAggregatorData entity = new ProcurementAggregatorData(); DataSet ds = this.RunSelectQuery(sql.ToString()); if (this.hasSingleRow(ds)) { DataRow dr = ds.Tables[0].Rows[0]; entity.YearToDisplay = Convert.ToInt32(dr["DefaultYearToDisplay"]); } else { if (createIfNotExist) { if (addProcurementAggregator(page, identifier, lang, entity) == false) { throw new Exception("fetchProcurementAggregator() database error: Error creating new placeholder"); } } else { throw new Exception("fetchProcurementAggregator() database error: placeholder does not exist"); } } return(entity); }
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { Rss.RssItem rssItem = base.CreateAndInitRssItem(page, langToRenderFor); rssItem.Description = page.renderPlaceholderToString(placeholderDefinition, langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters); return(new Rss.RssItem[] { rssItem }); }
/// <summary> /// Renders a template with all its controls and placeholders, and add these controls and placeholders to the parentUserControl. /// Note: do not use Render to HtmlWriter - Control events are not called properly. /// </summary> public override void CreateChildControls(System.Web.UI.UserControl parentUserControl) { // -- get the template file contents string templateText = getTemplateFileContents(); // -- get the TemplateLayout statement string[] layouts = getCommandStatementParameters("TemplateLayout", templateText); if (layouts.Length == 0) { throw new TemplateExecutionException(templateName, "Template does not have a TemplateLayout statement."); } else if (layouts.Length > 1) { throw new TemplateExecutionException(templateName, "Template has more than one TemplateLayout statement - only one is allowed."); } // -- read the template layout file string layoutText = getTemplateLayoutFileContents(layouts[0]); // -- start with the first language if we are editing a page. currentLangIndex = 0; if (CmsContext.currentEditMode == CmsEditMode.View) { currentLangIndex = CmsLanguage.IndexOf(CmsContext.currentLanguage.shortCode, CmsConfig.Languages); } // -- make sure that StartPageBody and EndPageBody commands are included int start = layoutText.IndexOf("StartPageBody", StringComparison.CurrentCultureIgnoreCase); if (start < 0) { start = templateText.IndexOf("StartPageBody", StringComparison.CurrentCultureIgnoreCase); } if (start < 0) { throw new TemplateExecutionException(templateName, "You must include a StartPageBody and EndPageBody command in the template when multiple languages are used"); } int end = layoutText.IndexOf("EndPageBody", StringComparison.CurrentCultureIgnoreCase); if (end < 0) { end = templateText.IndexOf("EndPageBody", StringComparison.CurrentCultureIgnoreCase); } if (end < 0) { throw new TemplateExecutionException(templateName, "You must include a StartPageBody and EndPageBody command in the template when multiple languages are used"); } string startEditFormCommand = COMMAND_DELIMITER + "RenderControl(_system/StartEditForm)" + COMMAND_DELIMITER; string endEditFormCommand = COMMAND_DELIMITER + "RenderControl(_system/EndEditForm)" + COMMAND_DELIMITER; if (layoutText.IndexOf(startEditFormCommand, StringComparison.CurrentCultureIgnoreCase) >= 0 || templateText.IndexOf(startEditFormCommand, StringComparison.CurrentCultureIgnoreCase) >= 0 || layoutText.IndexOf(endEditFormCommand, StringComparison.CurrentCultureIgnoreCase) >= 0 || templateText.IndexOf(endEditFormCommand, StringComparison.CurrentCultureIgnoreCase) >= 0) { throw new TemplateExecutionException(templateName, "Do not include the StartEditForm or EndEditForm controls"); } templateLayoutFileContents = layoutText; templateFileContents = templateText; // -- render the output RenderTextToPage(parentUserControl, templateLayoutFileContents); } // CreateChildControls
public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] param) { // CmsContext.setCurrentCultureInfo(langToRenderFor); NewsArticleDb db = new NewsArticleDb(); NewsArticleDb.NewsArticleDetailsData entity = new NewsArticleDb.NewsArticleDetailsData(page, identifier, langToRenderFor); string dateString = ""; string editId = "newsDetails_" + page.Id.ToString() + "_" + identifier.ToString() + "_" + langToRenderFor.shortCode; // ------- CHECK THE FORM FOR ACTIONS string action = PageUtils.getFromForm(editId + "_Action", ""); if (action.Trim().ToLower() == "update") { dateString = PageUtils.getFromForm("dateOfNews_" + editId, ""); try { entity.DateOfNews = Convert.ToDateTime(dateString); } catch { } db.updateNewsDetails(page, identifier, langToRenderFor, entity); } else { entity = db.fetchNewsDetails(page, identifier, langToRenderFor, true); dateString = entity.DateOfNews.ToString("d"); } // ------- START RENDERING StringBuilder arg0 = new StringBuilder(); arg0.Append("<div style=\"width: 100%\">"); arg0.Append("<p>Date of News (" + CmsLanguage.CurrentShortDateFormat + "): "); arg0.Append(PageUtils.getInputTextHtml("dateOfNews_" + editId, "dateOfNews_" + editId, dateString, 10, 10)); arg0.Append("</p>"); arg0.Append("<input type=\"hidden\" name=\"" + editId + "_Action\" value=\"update\">"); arg0.Append("</div>"); writer.WriteLine(arg0.ToString()); }
public EventCalendarAggregatorData fetchAggregatorData(CmsPage page, int identifier, CmsLanguage lang, bool createIfNotExist) { if (page.Id < 0 || identifier < 0) { return(new EventCalendarAggregatorData()); } StringBuilder sql = new StringBuilder("SELECT ViewMode FROM "); sql.Append(TableNameAggregator); sql.Append(" WHERE PageId=" + page.Id.ToString()); sql.Append(" AND LangCode='" + lang.shortCode + "'"); sql.Append(" AND Identifier=" + identifier.ToString()); sql.Append(" AND Deleted IS NULL;"); EventCalendarAggregatorData entity = new EventCalendarAggregatorData(); DataSet ds = this.RunSelectQuery(sql.ToString()); if (this.hasSingleRow(ds)) { DataRow dr = ds.Tables[0].Rows[0]; rowToData(dr, entity); } else { if (createIfNotExist) { if (insertAggregatorData(page, identifier, lang, entity) == false) { throw new Exception("EventCalendarDb.fetchAggregatorData() database error: Error creating new placeholder"); } } else { throw new Exception("EventCalendarDb.fetchAggregatorData() database error: placeholder does not exist"); } } return(entity); }