private void AddEntityMenuXsl(XmlDocument doc, String EntityName, HierarchicalTableMgr m_TblMgr, XmlNode mnuItem, int ForParentEntityID, String NodeClass) { if (mnuItem == null) { return; } StringWriter tmpS = new StringWriter(); XslCompiledTransform xForm = new XslCompiledTransform(); String XslFile = "EntityMenuList"; xForm.Load(CommonLogic.SafeMapPath("EntityHelper/" + XslFile + ".xslt")); XsltArgumentList xslArgs = new XsltArgumentList(); xslArgs.AddParam("entity", "", EntityName); xslArgs.AddParam("custlocale", "", Page.ThisCustomer.LocaleSetting); xslArgs.AddParam("deflocale", "", Localization.GetDefaultLocale()); xslArgs.AddParam("ForParentEntityID", "", ForParentEntityID); xslArgs.AddParam("adminsite", "", AppLogic.IsAdminSite); xslArgs.AddParam("nodeclass", "", NodeClass); xslArgs.AddParam("suppresstoparrow", "", CommonLogic.IIF(NodeClass.Length != 0, "1", "0")); xForm.Transform(m_TblMgr.XmlDoc, xslArgs, tmpS); if (AppLogic.AppConfigBool("XmlPackage.DumpTransform")) { try // don't let logging crash the site { StreamWriter sw = File.CreateText(CommonLogic.SafeMapPath(String.Format("{0}images/{1}_{2}_{3}.xfrm.xml", CommonLogic.IIF(AppLogic.IsAdminSite, "../", ""), XslFile, EntityName, CommonLogic.IIF(AppLogic.IsAdminSite, "admin", "store")))); sw.WriteLine(XmlCommon.PrettyPrintXml(tmpS.ToString())); sw.Close(); } catch { } } if (tmpS.ToString().Length != 0) { if (NodeClass.Length != 0) // this means we are adding to the ROOT level, not as children! { // Create a document fragment to contain the XML to be inserted. XmlDocumentFragment docFrag = doc.CreateDocumentFragment(); // Set the contents of the document fragment. docFrag.InnerXml = tmpS.ToString(); // Add the children of the document fragment to the original document. mnuItem.ParentNode.InsertAfter(docFrag, mnuItem); // now get rid of the parent placeholder node! doc.SelectSingleNode("/SiteMap").RemoveChild(mnuItem); } else { mnuItem.InnerXml = tmpS.ToString(); } } }
private void AddEntityMenuXsl(XmlDocument doc, string EntityName, HierarchicalTableMgr m_TblMgr, XmlNode mnuItem, int ForParentEntityID, string NodeClass) { if (mnuItem == null) { return; } var tmpS = new StringWriter(); var xForm = new XslCompiledTransform(); string XslFile = "EntityMenuList"; xForm.Load(CommonLogic.SafeMapPath("EntityHelper/" + XslFile + ".xslt")); XsltArgumentList xslArgs = new XsltArgumentList(); xslArgs.AddParam("entity", "", EntityName); xslArgs.AddParam("custlocale", "", Page.ThisCustomer.LocaleSetting); xslArgs.AddParam("deflocale", "", Localization.WebConfigLocale); xslArgs.AddParam("ForParentEntityID", "", ForParentEntityID); xslArgs.AddParam("adminsite", "", false); xslArgs.AddParam("nodeclass", "", NodeClass); xslArgs.AddParam("suppresstoparrow", "", CommonLogic.IIF(NodeClass.Length != 0, "1", "0")); //let's call the extensions :) Customer thisCustomer = ((InterpriseSuiteEcommercePrincipal)HttpContext.Current.User).ThisCustomer; if (null != thisCustomer) { XSLTExtensionBase ext = new XSLTExtensionBase(thisCustomer, thisCustomer.SkinID); xslArgs.AddExtensionObject("urn:ise", ext); } xForm.Transform(m_TblMgr.XmlDoc, xslArgs, tmpS); if (AppLogic.AppConfigBool("XmlPackage.DumpTransform")) { try // don't let logging crash the site { var sw = File.CreateText(CommonLogic.SafeMapPath(string.Format("images/{0}_{1}_{2}.xfrm.xml", XslFile, EntityName, "store"))); sw.WriteLine(XmlCommon.PrettyPrintXml(tmpS.ToString())); sw.Close(); } catch { } } if (tmpS.ToString().Length == 0) { return; } if (NodeClass.Length != 0) // this means we are adding to the ROOT level, not as children! { // Create a document fragment to contain the XML to be inserted. var docFrag = doc.CreateDocumentFragment(); // Set the contents of the document fragment. docFrag.InnerXml = tmpS.ToString(); // Add the children of the document fragment to the original document. mnuItem.ParentNode.InsertAfter(docFrag, mnuItem); // now get rid of the parent placeholder node! doc.SelectSingleNode("/SiteMap").RemoveChild(mnuItem); } else { mnuItem.InnerXml = tmpS.ToString(); } }