protected void ValidateAndSetYearTemplate()
 {
     Sitecore.Diagnostics.Assert.IsNotNullOrEmpty(
         this.YearTemplate,
         "YearTemplate");
     this._yearTemplate =
         this._database.Templates[this.YearTemplate];
     Sitecore.Diagnostics.Assert.IsNotNull(this._yearTemplate, this.YearTemplate);
 }
 protected void ValidateAndSetMonthTemplate()
 {
     if (!String.IsNullOrEmpty(this.MonthTemplate))
     {
         this._monthTemplate = this._database.Templates[this.MonthTemplate];
         Sitecore.Diagnostics.Assert.IsNotNull(
             this._monthTemplate,
             this.MonthTemplate);
     }
 }
        protected void ValidateAndSetDayTemplate()
        {
            if (!String.IsNullOrEmpty(this.DayTemplate))
            {
                this._dayTemplate = this._database.Templates[this.DayTemplate];
                Sitecore.Diagnostics.Assert.IsNotNull(this._dayTemplate, this.DayTemplate);
            }

            Sitecore.Diagnostics.Assert.IsFalse(
                this._monthTemplate == null && this._dayTemplate != null,
                "dayTemplate without monthTemplate");
        }
예제 #4
0
        public void OnRemoteEvent(object sender, EventArgs args)
        {
            var remoteEventArgs = args as RemoteEventArgs;

            Log.Info($"Remote event raised: {remoteEventArgs.ItemName}", nameof(RemoteEventHandler));
            using (new SecurityDisabler())
            {
                Sitecore.Data.Database           masterDB = Sitecore.Configuration.Factory.GetDatabase("master");
                Sitecore.Data.Items.Item         home     = masterDB.GetItem("/sitecore/content/home");
                Sitecore.Data.Items.TemplateItem sample   = masterDB.Templates[new Sitecore.Data.ID("{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}")];
                Sitecore.Data.Items.Item         myItem   = home.Add(remoteEventArgs.ItemName, sample);
            }
        }
        // return the ID of the template
        // and any templates that inherit from that template
        public static string[] GetSelfAndDerivedTemplates(
            this SC.Data.Items.TemplateItem template)
        {
            SC.Diagnostics.Assert.IsNotNull(template, "template");
            List <string> results = new List <string>();

            results.Add(template.ID.ToString());
            SC.Links.ItemLink[] links = SC.Globals.LinkDatabase.GetReferrers(
                template);

            if (links != null)
            {
                foreach (SC.Links.ItemLink link in links)
                {
                    if (link.SourceFieldID != SC.FieldIDs.BaseTemplate)
                    {
                        continue;
                    }

                    if (String.Compare(
                            link.SourceDatabaseName,
                            template.Database.Name,
                            StringComparison.OrdinalIgnoreCase) != 0)
                    {
                        continue;
                    }

                    SC.Data.Items.Item referrer = template.Database.GetItem(link.SourceItemID);

                    if (referrer != null &&
                        referrer[SC.FieldIDs.BaseTemplate].Contains(template.ID.ToString()))
                    {
                        results.Add(link.SourceItemID.ToString());
                    }
                }

                // or replace that foreach with something like this if you prefer it...

                /*
                 * results.AddRange(from link in links
                 *               where link.SourceFieldID == SC.FieldIDs.BaseTemplate
                 *               where String.Compare(link.SourceDatabaseName, template.Database.Name, StringComparison.OrdinalIgnoreCase) == 0
                 *               let referrer = template.Database.GetItem(link.SourceItemID)
                 *               where referrer != null && referrer[SC.FieldIDs.BaseTemplate].Contains(template.ID.ToString())
                 *               select link.SourceItemID.ToString());
                 */
            }

            return(results.ToArray());
        }
        public static List <object[]> GetTemplatePropertiesFull(Sitecore.Data.Items.TemplateItem ti)
        {
            var ownfields = GetTemplateFieldProperties(ti.OwnFields);
            var fields    = GetTemplateFieldProperties(ti.Fields);
            var results   = new List <object[]>()
            {
                new object[] { "Template Property", "Value" },
                new object[] { "Name", ti.Name },
                new object[] { "Display Name", ti.DisplayName },
                new object[] { "Full Name", ti.FullName },
                new object[] { "ID", ti.ID.Guid },
                new object[] { "Base Templates", ti.BaseTemplates.Select(t => t.Name) },
                new object[] { "Standard Values", ti.StandardValues != null ? ti.StandardValues.Paths.FullPath : string.Empty },
                new object[] { "Own Fields", ownfields },
                new object[] { "Fields", fields },
                new object[] { "Template InnerItem", GetItemPropertiesLite(ti.InnerItem) },
            };

            return(results);
        }
        protected Sitecore.Data.Items.Item GetOrCreateChild(
            Sitecore.Data.Items.Item parent,
            string childName,
            Sitecore.Data.Items.TemplateItem template,
            int sortOrder)
        {
            Sitecore.Data.Items.Item child = parent.Children[childName];

            if (child == null)
            {
                child = parent.Add(childName, template);

                using (new Sitecore.Data.Items.EditContext(child))
                {
                    child[Sitecore.FieldIDs.Sortorder] = sortOrder.ToString();
                }
            }

            return(child);
        }
예제 #8
0
        public void Execute(
            XElement element,
            string name,
            SC.Text.UrlString parameters,
            string value)
        {
            SC.Diagnostics.Assert.ArgumentNotNull(element, "element");
            SC.Diagnostics.Assert.ArgumentNotNull(name, "name");
            SC.Diagnostics.Assert.ArgumentNotNull(parameters, "parameters");
            SC.Diagnostics.Assert.ArgumentNotNull(value, "value");
            SC.Diagnostics.Assert.IsNotNull(
                SC.Context.ContentDatabase,
                "Sitecore.Context.ContentDatabase");
            SC.Shell.Applications.Dialogs.ItemLister.SelectItemOptions options =
                new SC.Shell.Applications.Dialogs.ItemLister.SelectItemOptions();

            if (!String.IsNullOrEmpty(value))
            {
                SC.Data.Items.Item item = Client.ContentDatabase.GetItem(value);

                if (item != null)
                {
                    options.SelectedItem = item;
                }
            }

            options.Root = Client.ContentDatabase.GetItem(SC.ItemIDs.WorkflowRoot);
            SC.Data.Items.TemplateItem workflowCommandTemplate = SC.Context.ContentDatabase.GetTemplate(
                SC.TemplateIDs.WorkflowCommand);
            SC.Diagnostics.Assert.IsNotNull(workflowCommandTemplate, "workflowCommandTemplate");
            options.IncludeTemplatesForSelection = SC.Shell.Applications.Dialogs.ItemLister.SelectItemOptions.GetTemplateList(
                workflowCommandTemplate.GetSelfAndDerivedTemplates());
            options.Title = "Select Workflow Command";
            options.Text  = "Select the workflow command to use in this rule.";
            options.Icon  = "Applications/16x16/nav_right_green.png";
            SC.Web.UI.Sheer.SheerResponse.ShowModalDialog(
                options.ToUrlString().ToString(),
                true);
        }
예제 #9
0
        private void InitializeBeaconViewRendering()
        {
            DisplayItem = Rendering.Item;

            var linkFieldNameParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.LinkFieldName] ?? null;
            var generalLinkParameter   = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink] ?? null;

            BarcodeFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.BarcodeFormat] ?? defaultBarcodeFormat;
            ImageFormatParameter   = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.ImageFormat] ?? defaultImageFormat;

            int w = defaultWidthPx;
            int h = defaultHeightPx;

            int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.WidthPx], out w);
            int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.HeightPx], out h);

            ZXing.BarcodeFormat barcodeFormat = ZXing.BarcodeFormat.QR_CODE;
            ImageFormat         imageFormat   = ImageFormat.Png;

            barcodeFormat = (ZXing.BarcodeFormat)Enum.Parse(typeof(ZXing.BarcodeFormat), BarcodeFormatParameter.Trim());

            switch (ImageFormatParameter.ToLower())
            {
            case "bmp":
                imageFormat = ImageFormat.Bmp;
                break;

            case "emf":
                imageFormat = ImageFormat.Emf;
                break;

            case "gif":
                imageFormat = ImageFormat.Gif;
                break;

            case "icon":
                imageFormat = ImageFormat.Icon;
                break;

            case "jpeg":
            case "jpg":
                imageFormat = ImageFormat.Jpeg;
                break;

            case "png":
                imageFormat = ImageFormat.Png;
                break;

            case "tiff":
                imageFormat = ImageFormat.Tiff;
                break;

            case "wmf":
                imageFormat = ImageFormat.Wmf;
                break;

            case "svg":
                break;

            default:
                throw new ArgumentException("Image format isn't supported", ImageFormatParameter.ToLower());
            }


            var buttonText   = (string)null;
            var buttonLink   = (string)null;
            var buttonTarget = (string)null;


            if (!string.IsNullOrEmpty(generalLinkParameter))
            {
                var generalLinkXml = HttpUtility.HtmlDecode(generalLinkParameter);

                var renderingParameterTemplateField       = Rendering.RenderingItem.InnerItem.Fields[MobileFieldNames.ViewRenderingFields.ParametersTemplate];
                var renderingParameterTemplateLookupField = new Sitecore.Data.Fields.LookupField(renderingParameterTemplateField);
                var renderingParameterTemplateItem        = new Sitecore.Data.Items.TemplateItem(renderingParameterTemplateLookupField.TargetItem);

                var standardValuesGeneralLinkField = renderingParameterTemplateItem.StandardValues.Fields[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink];

                var generalLinkField = new Sitecore.Data.Fields.LinkField(standardValuesGeneralLinkField, generalLinkXml);

                buttonText   = generalLinkField.Text;
                buttonTarget = !string.IsNullOrEmpty(generalLinkField.Target) ? generalLinkField.Target : null;

                if (!string.IsNullOrEmpty(generalLinkField.Anchor))
                {
                    buttonLink = string.Format("#{0}", generalLinkField.Anchor);
                }
                else
                {
                    buttonLink = generalLinkField.Url;
                }
            }

            if (string.IsNullOrEmpty(buttonLink) && !string.IsNullOrEmpty(linkFieldNameParameter) && DisplayItem != null)
            {
                var itemField = DisplayItem.Fields[linkFieldNameParameter];
                if (itemField == null)
                {
                    return;
                }

                var fieldItem = DisplayItem.Database.GetItem(itemField.ID);
                if (fieldItem == null)
                {
                    return;
                }

                var linkField = new Sitecore.Data.Fields.LinkField(itemField);
                if (linkField.TargetItem == null)
                {
                    EmbeddedBarcodeImage = new HtmlString("Undefined barcode link field target item");
                    SvgBarcodeImage      = new HtmlString("Undefined barcode link field target item");
                    return;
                }

                buttonLink = DisplayItem.GetRoutePathInfo(
                    new Sitecore.Links.UrlOptions()
                {
                    AlwaysIncludeServerUrl = true
                });
            }

            if (string.IsNullOrEmpty(buttonLink) && DisplayItem != null)
            {
                buttonLink = DisplayItem.GetRoutePathInfo(
                    new Sitecore.Links.UrlOptions()
                {
                    AlwaysIncludeServerUrl = true
                });
            }


            if (string.IsNullOrEmpty(buttonLink))
            {
                EmbeddedBarcodeImage = new HtmlString("Missing barcode link");
                SvgBarcodeImage      = new HtmlString("Missing barcode link");
                return;
            }

            BarcodeModel = new BarcodeModel(buttonLink, imageFormat, barcodeFormat, w, h);

            System.Web.Mvc.TagBuilder tagBuilder = new System.Web.Mvc.TagBuilder("img");
            // tagBuilder.MergeAttributes<string, object>(tagParameters);

            string base64ImageString = string.Concat("data:", GetMimeType(imageFormat), ";base64,", Convert.ToBase64String(BarcodeModel.BarcodeImageEncoded));

            tagBuilder.Attributes.Add(new KeyValuePair <string, string>("src", base64ImageString));

            EmbeddedBarcodeImage = new HtmlString(tagBuilder.ToString());

            SvgBarcodeImage = new HtmlString(BarcodeModel.BarcodeImageSvg);
        }
예제 #10
0
 // return the item or its nearest ancestor that uses a data template
 // or a template that inherits from that template
 public static SC.Data.Items.Item GetAncestorWithTemplateThatIsOrInheritsFrom(
     this SC.Data.Items.Item item,
     SC.Data.Items.TemplateItem template)
 {
     return(GetAncestorWithTemplateThatIsOrInheritsFrom(item, template.ID));
 }