/// <summary>
        /// Get container region XPM markup with the container index piggy-backed on the template ID.
        /// This to make sure the new container items that drag&dropped into the region ends up in the correct container.
        /// </summary>
        /// <param name="localization"></param>
        /// <returns></returns>
        public override string GetXpmMarkup(Localization localization)
        {
            XpmRegion xpmRegion = localization.GetXpmRegionConfiguration(Name);

            if (xpmRegion == null)
            {
                return(string.Empty);
            }

            return(string.Format(
                       XpmRegionMarkup,
                       Name,
                       string.Join(", ", xpmRegion.ComponentTypes.Select(ct => string.Format(XpmComponentTypeMarkup, ct.Schema, ct.Template, this.containerModel.Index))),
                       0));
        }
Beispiel #2
0
        /// <summary>
        /// Gets the rendered XPM markup
        /// </summary>
        /// <param name="localization">The context Localization.</param>
        /// <returns>The XPM markup.</returns>
        public override string GetXpmMarkup(Localization localization)
        {
            XpmRegion xpmRegion = localization.GetXpmRegionConfiguration(Name);

            if (xpmRegion == null)
            {
                return(string.Empty);
            }

            // TODO: obtain MinOccurs & MaxOccurs from regions.json
            return(string.Format(
                       XpmRegionMarkup,
                       Name,
                       string.Join(", ", xpmRegion.ComponentTypes.Select(ct => string.Format(XpmComponentTypeMarkup, ct.Schema, ct.Template))),
                       0));
        }
Beispiel #3
0
        /// <summary>
        /// Gets the rendered XPM markup
        /// </summary>
        /// <param name="localization">The context Localization.</param>
        /// <returns>The XPM markup.</returns>
        public override string GetXpmMarkup(Localization localization)
        {
            XpmRegion xpmRegion = localization.GetXpmRegionConfiguration(SchemaId ?? Name);

            if (xpmRegion == null)
            {
                return(string.Empty);
            }

            int    minOccurs            = xpmRegion.OccurrenceConstraint?.MinOccurs ?? 0;
            int    maxOccurs            = xpmRegion.OccurrenceConstraint?.MaxOccurs ?? -1;
            string occurrenceConstraint = "";

            occurrenceConstraint = maxOccurs == -1
                ? string.Format(occurenceConstraintMarkupUnlimited, minOccurs)
                : string.Format(occurenceConstraintMarkup, minOccurs, maxOccurs);

            object pathToRegion = string.Empty;

            if (XpmMetadata != null)
            {
                XpmMetadata.TryGetValue("FullyQualifiedName", out pathToRegion);
                if (pathToRegion != null)
                {
                    string value = pathToRegion as string;
                    pathToRegion = $" path: \"{value?.Replace("\\", "\\\\")}\",";
                }
            }

            return(string.Format(
                       XpmRegionMarkup,
                       Name,
                       pathToRegion,
                       string.Join(", ", xpmRegion.ComponentTypes.Select(ct => string.Format(XpmComponentTypeMarkup, ct.Schema, ct.Template))),
                       occurrenceConstraint));
        }