Пример #1
0
        /// <summary>
        /// Checks if the control has required parameters.
        /// Invalid:
        ///   - ##RenderControl(_system/[controlName])##
        /// Valid:
        ///   - ##RenderControl(_system/[controlName] key1="value1" key2="value2")##
        /// </summary>
        /// <returns></returns>
        public override CmsDependencyMessage[] ValidateDependency()
        {
            List <CmsDependencyMessage> ret = new List <CmsDependencyMessage>();

            string[] templates = CmsContext.getTemplateNamesForCurrentUser();
            CmsPage  dummyPage = new CmsPage();

            foreach (string template in templates)
            {
                dummyPage.TemplateName = template;

                CmsControlDefinition[] controlDefs = dummyPage.getAllControlDefinitions();
                controlDefs = CmsControlDefinition.GetByControlNameOrPath(controlDefs, ControlName);
                foreach (CmsControlDefinition controlDef in controlDefs)
                {
                    foreach (string keyToTest in keys)
                    {
                        bool keyExists = CmsControlUtils.hasControlParameterKey(CmsContext.currentPage, controlDef, keyToTest);
                        if (!keyExists && existsMode == ExistsMode.MustExist)
                        {
                            ret.Add(CmsDependencyMessage.Error("CMS Control parameter '" + keyToTest + "' for control '" + controlDef.ControlNameOrPath + "' in template '" + dummyPage.TemplateName + "' is required, but was not found."));
                        }
                        else if (keyExists && existsMode == ExistsMode.MustNotExist)
                        {
                            ret.Add(CmsDependencyMessage.Error("CMS Control parameter '" + keyToTest + "' for control '" + controlDef.ControlNameOrPath + "' in template '" + dummyPage.TemplateName + "' was found, and must be removed."));
                        }
                    }
                } // foreach controlDef
            }     // foreach template

            return(ret.ToArray());
        }
Пример #2
0
        /// <summary>
        /// Add a control that is located on disk or as a class name to the parentToAddControlTo.
        /// </summary>
        /// <param name="controlNameOrPathToAdd"></param>
        /// <param name="controlDefn"></param>
        /// <param name="parentToAddControlTo"></param>
        /// <param name="langToRenderFor"></param>
        /// <returns></returns>
        public static bool AddControlToPage(string controlNameOrPathToAdd, CmsControlDefinition controlDefnToAdd, System.Web.UI.UserControl parentToAddControlTo, CmsLanguage langToRenderFor)
        {
            if (ControlOnDiskExists(controlNameOrPathToAdd))
            {
                Control ascxControl = LoadControlOnDisk(controlNameOrPathToAdd);
                if (ascxControl != null)
                {
                    parentToAddControlTo.Controls.Add(ascxControl);
                    ascxControl.ID = controlDefnToAdd.RawTemplateParameters;

                    return(true);
                }
            }
            else if (ControlClassExists(controlNameOrPathToAdd))
            {
                HatCMS.Controls.BaseCmsControl c = LoadControlFromClass(controlNameOrPathToAdd);
                if (c != null)
                {
                    parentToAddControlTo.Controls.Add(c.ToLiteralControl(controlDefnToAdd, langToRenderFor));
                    return(true);
                }
            }

            return(false);
        }
Пример #3
0
        } // getControlParameterKeys

        public static bool hasControlParameterKey(CmsPage page, CmsControlDefinition controlDefinition, string keyName)
        {
            string[] keys = getControlParameterKeys(page, controlDefinition);
            if (StringUtils.IndexOf(keys, keyName, StringComparison.CurrentCultureIgnoreCase) > -1)
            {
                return(true);
            }
            return(false);
        }
 public abstract string getControlParameterKeyValue(CmsControlDefinition controlDefinition, string key, string defaultValue);
 public abstract string[] getControlParameterKeys(CmsControlDefinition controlDefinition);
Пример #6
0
        } // getControlParameterKeys

        public static string[] getControlParameterKeys(CmsPage page, CmsControlDefinition controlDefinition)
        {
            return(page.TemplateEngine.getControlParameterKeys(controlDefinition));
        } // getControlParameterKeys
Пример #7
0
        } // getControlParameterKeyValue

        public static string getControlParameterKeyValue(CmsPage page, CmsControlDefinition controlDefinition, string key, string defaultValue)
        {
            return(page.TemplateEngine.getControlParameterKeyValue(controlDefinition, key, defaultValue));
        }
 public CmsControlDependency(CmsControlDefinition controlDefinition)
 {
     controlNameOrPath = controlDefinition.ControlNameOrPath;
     existsMode        = ExistsMode.MustExist;
 }