public string Render(string xpath, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { string text = ""; XmlNodeList nodes; try { nodes = content.SelectNodes(xpath); } catch { containsCacheableContent = false; return "[Cannot render placeholder; invalid XPath expression]"; } if (nodes.Count == 0) { containsCacheableContent = false; return null; } bool cacheable = true; foreach (XmlElement node in nodes) { if (node != null) { if (node.HasAttribute("Embed")) { PageEntry embedPageEntry = PageRegistry.Pages.FromPageCode(node.GetAttribute("Embed")); if (embedPageEntry == null) text += "[Embed failed. Page code \"" + node.GetAttribute("Embed") + "\" not found]"; else { bool returnValueCached; string embed = embedPageEntry.Render(placeHolderStack, out returnValueCached); cacheable = cacheable && returnValueCached; if (embed == null) text += "[Content not found for embedded page " + pageEntry.PageCode + "]"; else text += embed; } } else { if (node.FirstChild != null) { bool cache; string str = node.FirstChild.Value; foreach (PlaceHolder ph in PlaceHolder.Extract(str)) { str = str.Replace(ph.RawText, ph.Render(pageEntry, content, placeHolderStack, out cache)); cacheable = cacheable && cache; } text += str; } } } else text += "[Content not found for node " + xpath + "]"; } containsCacheableContent = cacheable; return text; }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, System.Xml.XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; switch (placeHolder.Expression.ToLower()) { case "action": return PayPal.PayPalPostURL; case "subscribetest": PaypalSubscription pps = new PaypalSubscription(); pps.CustomValue = Guid.NewGuid().ToString(); pps.ItemName = "Test Subscription"; pps.ItemNumber = 400; pps.NotifyURL = "http://snowdevil78.dyndns.org/prospector/public/paypal-ipn-process/"; pps.SubscriptionPeriodSize = 3; pps.SubscriptionPeriodUnit = PayPalSubscriptionPeriodUnit.Day; pps.SubscriptionPrice = 10; pps.TrialPeriodSize = 0; pps.EditMode = PayPalSubscriptionEditMode.ModifyOnly; return pps.GetFormFields(); default: return "[PayPalPlaceHolderRenderer error: Expression \"" + placeHolder.Expression + "\" not recognised]"; } }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { ListDefinition list = ListRegistry.Lists[placeHolder.Expression]; if (list == null) { containsCacheableContent = false; return "[No list found named " + placeHolder.Expression + "]"; } return list.Render(placeHolderStack, out containsCacheableContent); }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; switch (placeHolder.Expression.ToLower()) { case "path": return WebUtility.MakeFullPath(pageEntry.Path); default: return "[The {pageEntry} renderer does not support the expression " + placeHolder.Expression + "]"; } }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; Template t = TemplateRegistry.Templates[placeHolder.Expression]; string text = t.Text; foreach (PlaceHolder ph in t.PlaceHolders) { bool cache; text = text.Replace(ph.RawText, ph.Render(pageEntry, content, placeHolderStack, out cache)); containsCacheableContent = containsCacheableContent && cache; } return text; }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, System.Xml.XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = false; if (!WebAuthentication.Instance.IsLoggedIn) return "[not logged in]"; switch (placeHolder.Expression) { case "username": return SecurityProvider.CurrentUser.Username; default: return "[\"" + placeHolder.Expression + "\" is not a recognised placeholder expression for currentuser]"; } }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = false; String[] arr = placeHolder.Expression.Split('|'); if (arr.Length != 2) return "[EmbedSecure requires expression: loggedInPageCode|loggedOutPageCode (use relevant page code values, or blank for none)]"; string pagecode = (WebAuthentication.Instance.IsLoggedIn ? arr[0] : arr[1]).Trim(); if (pagecode == "") return ""; PageEntry page = PageRegistry.Pages.FromPageCode(pagecode); if (page == null) return "[No page found with PageCode \"" + pagecode + "\"]"; bool discard; return page.Render(placeHolderStack, out discard); }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { Template template = TemplateRegistry.Templates[placeHolder.Expression]; if (template == null) { containsCacheableContent = false; return "[No template found named \"" + placeHolder.Expression + "\"]"; } string text = template.Text; bool ccc = true; foreach (PlaceHolder ph in template.PlaceHolders) { bool check; text = text.Replace(ph.RawText, ph.Render(pageEntry, content, placeHolderStack, out check)); ccc = ccc & check; } containsCacheableContent = ccc; return text; }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; String[] arr = placeHolder.Expression.Split('|'); if (arr.Length != 2) return "[TemplateSecure requires expression: loggedInTemplateName|loggedOutTemplateName (use relevant template names, or blank for none)]"; string name = (WebAuthentication.Instance.IsLoggedIn ? arr[0] : arr[1]).Trim(); if (name.Length == 0) return ""; Template t = TemplateRegistry.Templates[name]; string text = t.Text; foreach (PlaceHolder ph in t.PlaceHolders) { bool cache; text = text.Replace(ph.RawText, ph.Render(pageEntry, content, placeHolderStack, out cache)); containsCacheableContent = containsCacheableContent && cache; } return text; }
public override string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { int scindex = placeHolder.Expression.IndexOf(';'); if (scindex == -1) { containsCacheableContent = false; return "[externalXml placeholder expression formatted improperly. Expected {externalXml:pagecode;xpath}]"; } string code = placeHolder.Expression.Substring(0, scindex); string xpath = placeHolder.Expression.Substring(scindex + 1); PageEntry page = PageRegistry.Pages.FromPageCode(code); if (page == null) { containsCacheableContent = false; return "[No external page exists with code " + code + "]"; } return Render(xpath, page, page.LoadContentDocument(), placeHolderStack, out containsCacheableContent); }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; Type[] types; if (placeHolder.Expression.Trim().Length > 0) { string[] typeNames = placeHolder.Expression.Split(','); types = new Type[typeNames.Length]; for (int i = 0; i < typeNames.Length; i++) { string typeName = typeNames[i].Trim(); if (typeName == "") continue; RegisteredModule mod = Core.Instance[typeName]; if(mod == null) { containsCacheableContent = false; return "alert('[Type " + typeName + " not found]');"; } types[i] = mod.Module.GetType(); } } else types = new Type[0]; string scr = ResourceLoader.LoadTextResource(typeof(WebClientScripts).Assembly, "Sprocket.Web.javascript.generic.js") + ResourceLoader.LoadTextResource(typeof(WebClientScripts).Assembly, "Sprocket.Web.javascript.json.js") + ResourceLoader.LoadTextResource(typeof(WebClientScripts).Assembly, "Sprocket.Web.javascript.ajax.js") .Replace("$APPLICATIONROOT$", WebUtility.BasePath) + WebClientScripts.Instance.GetAjaxMethodsScript(types); if (WebClientScripts.CompressJavaScript) return JavaScriptCondenser.Condense(scr); else return scr; }
public string Render(Stack <string> placeHolderStack, out bool isCacheable) { isCacheable = true; if (itemTemplate == null) { return("[Cannot render list \"" + name + "\". No ItemTemplate specified]"); } if (selectExpr == null || selectExpr == "") { return("[Cannot render list \"" + name + "\". No page selection expression has been specified]"); } List <PageEntry> pages = PageRegistry.Pages.SelectPages(selectExpr); bool alt = false; StringBuilder output = new StringBuilder(); bool cacheable = true; int startx, endx, incrementx; if (isReverseOrder) { startx = pages.Count - 1; endx = 0; incrementx = -1; } else { startx = 0; endx = pages.Count - 1; incrementx = 1; } int c = 1; for (int x = startx; x <= pages.Count - 1 && x >= 0; x += incrementx) { PageEntry page = pages[x]; Template t = null; if (singleItemTemplate != null) { if (singleItemTemplate.ContainsKey(c)) { t = singleItemTemplate[c]; } } if (t == null) { t = alt && alternatingItemTemplate != null ? alternatingItemTemplate : itemTemplate; } string canvas = t.Text; XmlDocument content = PageRequestHandler.Instance.GetXmlDocument("resources/content/" + page.ContentFile); if (content == null) { output.Append("[Unable to load content document " + page.ContentFile + "]"); continue; } bool containsCacheableContent; foreach (PlaceHolder ph in t.PlaceHolders) { canvas = canvas.Replace(ph.RawText, ph.Render(page, content, placeHolderStack, out containsCacheableContent)); cacheable = cacheable && containsCacheableContent; } if (output.Length > 0 && dividerTemplate != null) { output.Append(dividerTemplate.Text); } output.Append(canvas); alt = !alt; c++; } isCacheable = cacheable; return(output.ToString()); }
public string Render(PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { string phcode = pageEntry.InternalID.ToString() + ";" + rawText; if (placeHolderStack.Contains(phcode)) { containsCacheableContent = false; return "[Unable to render placeholder; circular dependency detected]"; } placeHolderStack.Push(phcode); string output; if (this.renderer == null) { containsCacheableContent = false; output = "[No renderer exists for placeholders of type \"" + prefix + "\"]"; } else { if (placeHolderStack == null) placeHolderStack = new Stack<string>(); output = renderer.Render(this, pageEntry, content, placeHolderStack, out containsCacheableContent); if (output == null) output = RawText; else output = outputFormatter.Format(output, outputFormat); } placeHolderStack.Pop(); return output; }
public string Render(string xpath, PageEntry pageEntry, XmlDocument content, Stack <string> placeHolderStack, out bool containsCacheableContent) { string text = ""; XmlNodeList nodes; try { nodes = content.SelectNodes(xpath); } catch { containsCacheableContent = false; return("[Cannot render placeholder; invalid XPath expression]"); } if (nodes.Count == 0) { containsCacheableContent = false; return(null); } bool cacheable = true; foreach (XmlElement node in nodes) { if (node != null) { if (node.HasAttribute("Embed")) { PageEntry embedPageEntry = PageRegistry.Pages.FromPageCode(node.GetAttribute("Embed")); if (embedPageEntry == null) { text += "[Embed failed. Page code \"" + node.GetAttribute("Embed") + "\" not found]"; } else { bool returnValueCached; string embed = embedPageEntry.Render(placeHolderStack, out returnValueCached); cacheable = cacheable && returnValueCached; if (embed == null) { text += "[Content not found for embedded page " + pageEntry.PageCode + "]"; } else { text += embed; } } } else { if (node.FirstChild != null) { bool cache; string str = node.FirstChild.Value; foreach (PlaceHolder ph in PlaceHolder.Extract(str)) { str = str.Replace(ph.RawText, ph.Render(pageEntry, content, placeHolderStack, out cache)); cacheable = cacheable && cache; } text += str; } } } else { text += "[Content not found for node " + xpath + "]"; } } containsCacheableContent = cacheable; return(text); }
public virtual string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack <string> placeHolderStack, out bool containsCacheableContent) { return(Render(placeHolder.Expression, pageEntry, content, placeHolderStack, out containsCacheableContent)); }
public virtual string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { return Render(placeHolder.Expression, pageEntry, content, placeHolderStack, out containsCacheableContent); }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack <string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; return(""); }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack <string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; return("[No renderer exists for placeholders of type " + placeHolder.Prefix + "]"); }
private PageEntry LoadEntry(XmlElement xml, PageEntry parent) { PageEntry pageEntry = new PageEntry(); pageEntry.Parent = parent; pageEntry.TemplateName = xml.GetAttribute("Template"); pageEntry.ContentFile = xml.GetAttribute("ContentFile"); if (xml.HasAttribute("PageID")) { pageEntry.PageID = new Guid(xml.GetAttribute("PageID")); pageIDs[pageEntry.PageID.Value] = pageEntry; } if (xml.HasAttribute("Path")) { pageEntry.Path = xml.GetAttribute("Path").ToLower(); requestPaths[pageEntry.Path] = pageEntry; } if (xml.HasAttribute("Code")) { pageEntry.PageCode = xml.GetAttribute("Code"); pageCodes[pageEntry.PageCode] = pageEntry; } if (xml.HasAttribute("ContentFile")) { pageEntry.ContentFile = xml.GetAttribute("ContentFile"); contentFiles[pageEntry.ContentFile] = pageEntry; } //else throw new Exception("Sprocket.Web.CMS.Pages.PageRegistry: A Page entry has been detected that is missing a PageCode attribute"); foreach (XmlElement node in xml.ChildNodes) pageEntry.Pages.Add(LoadEntry(node, pageEntry)); pages.Add(pageEntry); return pageEntry; }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; return "[No renderer exists for placeholders of type " + placeHolder.Prefix + "]"; }