コード例 #1
0
    /// <summary>
    /// Initializes a new instance of the <see cref="StructuredTree"/> class.
    /// </summary>
    /// <param name="structuredTreeRootItem">
    /// The structured tree root item.
    /// </param>
    public StructuredTree(Item structuredTreeRootItem)
    {
      Assert.ArgumentNotNull(structuredTreeRootItem, "structuredTreeRootItem");

      Database db = structuredTreeRootItem.Database;

      this.FolderMasterItem = db.Templates["Ecommerce/StructuredData/StructuredData StructuredFolder"];
      this.StructuredTreeRootItem = structuredTreeRootItem;

      string id = this.StructuredTreeRootItem["enumeratorCurrentFolder"];
      if (!string.IsNullOrEmpty(id))
      {
        Item itm = db.GetItem(id);
        if (itm != null)
        {
          this.CurrentFolder = itm;
          return;
        }
      }

      if (this.CurrentFolder == null)
      {
        this.CurrentFolder = this.StructuredTreeRootItem;
      }
    }
コード例 #2
0
        protected override void OnLoad(EventArgs args)
        {
            base.OnLoad(args);
            string currentItemId = GetCurrentContentGuid();
            template = masterDb.GetItem(currentItemId);
            if(template == null)
            {
                SheerResponse.Alert("You must select a template to continue.", new string[0]);
            }
            else
            {
                if (!Context.ClientPage.IsEvent)
                {
                    CustomItemSettings settings = new CustomItemSettings(HttpContext.Current);

                    string defaultNamespace = settings.BaseNamespace;
                    string defaultFilePath = settings.BaseFileOutputPath;

                    if(!string.IsNullOrEmpty(defaultNamespace))
                    {
                        CustomItemNamespace.Value = defaultNamespace;
                    }

                    if (!string.IsNullOrEmpty(defaultFilePath))
                    {
                        CustomItemFilePath.Value = defaultFilePath;
                    }
                    else
                    {
                        CustomItemFilePath.Value = "[ENTER CUSTOM ITEM ROOT FILE PATH]";
                    }
                }
            }
        }
コード例 #3
0
 private bool InheritsFromTemplate(TemplateItem templateItem, Sitecore.Data.ID templateId)
 {
     return templateItem.ID == templateId
         || (templateItem.BaseTemplates != null
             && templateItem.BaseTemplates
                 .Where(baseTempl => InheritsFromTemplate(baseTempl, templateId)).Count() > 0);
 }
コード例 #4
0
 public virtual void ChangedTemplate(Item targetItem, TemplateItem oldTemplate)
 {
     if(oldTemplate != null)
         _logger.Debug($"* [T] from {oldTemplate.Name} to {targetItem.TemplateName}");
     else
         _logger.Debug($"* [T] to {targetItem.TemplateName}");
 }
コード例 #5
0
        public override void Execute(CommandContext context)
        {
            var selectedItem = context.Items.FirstOrDefault();
            if (selectedItem == null)
                return;

            string templateId = "{CC80011D-8EAE-4BFC-84F1-67ECD0223E9E}";

            TemplateItem newTemplate = new TemplateItem(Sitecore.Context.Database.GetItem(templateId));

            if (newTemplate != null)
            {
                try
                {
                    using (new Sitecore.SecurityModel.SecurityDisabler())
                    {
                        selectedItem.Editing.BeginEdit();
                        selectedItem.ChangeTemplate(newTemplate);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex.Message, ex, this);
                    throw;
                }
                finally
                {
                    selectedItem.Editing.EndEdit();
                }
            }
        }
コード例 #6
0
ファイル: BaseList.cs プロジェクト: cmarfia/KalikoCMS.Core
 protected void AddTemplate(ITemplate template) {
     if (template != null) {
         TemplateItem i = new TemplateItem();
         template.InstantiateIn(i);
         Controls.Add(i);
     }
 }
コード例 #7
0
ファイル: ItemExtensions.cs プロジェクト: KerwinMa/WeBlog
 /// <summary>
 /// Determine if an item is based on a given template or if the item's template is based on the given template
 /// </summary>
 /// <param name="item">The item to test the template of</param>
 /// <param name="template">The template which the item's template should be or inherit from</param>
 /// <returns>True if the item's template is based on the given template, otherwsie false</returns>
 public static bool TemplateIsOrBasedOn(this Item item, TemplateItem template)
 {
     if (template != null)
         return TemplateIsOrBasedOn(item, template.ID);
     else
         return false;
 }
コード例 #8
0
        /// <summary>
        /// Creates an alphabet folder structure under the passed in parent.  This will also inlcude 123 as a folder
        /// for handling items that start with numbers.
        /// </summary>
        /// <param name="parentItem">The parent item.</param>
        /// <param name="folderTemplate">The folder template.</param>
        /// <param name="upperCase">if set to <c>true</c> make the letter folder name upper case.</param>
        public static void CreateAlphabetFolderStructure(Item parentItem, TemplateItem folderTemplate, bool upperCase)
        {
            if (parentItem == null || folderTemplate == null) return;

            Database masterDb = Factory.GetDatabase("master");
            using (new SecurityDisabler())
            {
                foreach (string letter in alphabetFolderNames)
                {
                    //If we are supposed to make the folder name upper case, do so
                    string folderName = letter;
                    if (upperCase)
                    {
                        folderName = folderName.ToUpper();
                    }

                    //Only add the folder if it does not already exist, this way this method can be used to fill
                    // in missing folders in an already existing partial alpha folder structure.
                    string letterFolderPath = string.Format("{0}/{1}", parentItem.Paths.Path, folderName);
                    Item alphaFolder = SitecoreItemFinder.GetItem(masterDb, letterFolderPath);
                    if (alphaFolder == null)
                    {
                        parentItem.Add(letter.ToUpper(), folderTemplate);
                    }
                }
            }
        }
コード例 #9
0
    /// <summary>
    /// Cheks if selected templates has "StructuredData StructuredTreeArchive" as one of its base tamplates
    /// </summary>
    /// <param name="templateItem">The template item. </param>
    /// <returns>if selected templates has "StructuredData StructuredTreeArchive".</returns>
    private static bool RecursiveCheckBaseTemplatesIfStructuredTree(TemplateItem templateItem)
    {
      if (templateItem != null
          && !templateItem.Name.Equals("Standard template"))
      {
        if (templateItem.Name.Equals("StructuredData StructuredTreeArchive"))
        {
          return true;
        }

        TemplateItem[] baseTemplates = templateItem.BaseTemplates;
        if (baseTemplates != null)
        {
          foreach (TemplateItem baseTemplateItem in baseTemplates)
          {
            bool success = RecursiveCheckBaseTemplatesIfStructuredTree(baseTemplateItem);
            if (success)
            {
              return true;
            }
          }
        }
      }

      return false;
    }
コード例 #10
0
    /// <summary>Checks the specified output.</summary>
    /// <param name="output">The output.</param>
    /// <param name="item">The item.</param>
    public override void Check(ValidationAnalyzer output, Item item)
    {
      Assert.ArgumentNotNull(output, "output");
      Assert.ArgumentNotNull(item, "item");

      var parametersTemplateId = item[ParametersTemplateFieldId];
      if (string.IsNullOrEmpty(parametersTemplateId))
      {
        return;
      }

      var parameterTemplateItem = item.Database.GetItem(parametersTemplateId);
      if (parameterTemplateItem == null)
      {
        return;
      }

      var template = new TemplateItem(parameterTemplateItem);

      foreach (var templateFieldItem in template.Fields)
      {
        var templateItem = new TemplateItem(templateFieldItem.InnerItem.Parent.Parent);
        if (!templateItem.BaseTemplates.Any())
        {
          continue;
        }

        output.MaxMessages++;

        if (string.IsNullOrEmpty(templateFieldItem.ToolTip))
        {
          output.Write(SeverityLevel.Suggestion, "Parameter must have help text", string.Format("The parameter '{0}' in the '{1}' control does not have a short help text. The short help text is part of documentation and is displayed in the Documentation web site", templateFieldItem.Name, item.Name), "Write a help text.", templateFieldItem.InnerItem);
        }
      }
    }
コード例 #11
0
 public CustomItemInformation(TemplateItem template, string baseNamespace, string baseFileRoot)
 {
     CustomItemSettings settings = new CustomItemSettings(HttpContext.Current);
     ICustomItemNamespaceProvider namespaceProvider = AssemblyUtil.GetNamespaceProvider(settings.NamespaceProvider);
     ICustomItemFolderPathProvider filePathProvider = AssemblyUtil.GetFilePathProvider(settings.FilepathProvider);
     GetItemInformation(template, baseNamespace, baseFileRoot, filePathProvider, namespaceProvider);
 }
コード例 #12
0
ファイル: ItemExtensions.cs プロジェクト: kaytee821/WeBlog
        /// <summary>
        /// Find items below another based on the specified template or a derived template
        /// </summary>
        /// <param name="rootItem">The item the item must be below</param>
        /// <param name="template">The template to find item based on, or based on derivaties of the template</param>
        /// <returns>All items which match</returns>
        public static Item[] FindItemsByTemplateOrDerivedTemplate(this Item rootItem, TemplateItem template)
        {
            if (rootItem == null || template == null)
                return new Item[0];

            var database = rootItem.Database;
            var foundItems = new List<Item>();
            var derivedTemplates = new List<TemplateItem>();

            var references = Sitecore.Globals.LinkDatabase.GetReferrers(template);
            foreach (var reference in references)
            {
                var source = reference.GetSourceItem();
                if (source.Template.Key == "template")
                    derivedTemplates.Add((TemplateItem)source);
                else
                {
                    if(source.Axes.IsDescendantOf(rootItem))
                        foundItems.Add(source);
                }
            }

            foreach(var derivedTemplate in derivedTemplates)
            {
                foundItems.AddRange(FindItemsByTemplateOrDerivedTemplate(rootItem, derivedTemplate));
            }

            return foundItems.ToArray();
        }
コード例 #13
0
ファイル: Items.cs プロジェクト: KerwinMa/WeBlog
        public void TestFixtureSetUp()
        {
            // Create test content
            var templateHome = Sitecore.Context.Database.GetItem("/sitecore/templates/user defined");
            var home = Sitecore.Context.Database.GetItem("/sitecore/content/home");
            using (new SecurityDisabler())
            {
                templateHome.Paste(File.ReadAllText(HttpContext.Current.Server.MapPath(@"~\test data\templates.xml")), false, PasteMode.Overwrite);
                home.Paste(File.ReadAllText(HttpContext.Current.Server.MapPath(@"~\test data\template content.xml")), false, PasteMode.Overwrite);
            }

            // Retrieve created templates
            m_testTemplateRoot = templateHome.Axes.GetChild("Test Templates");
            m_baseTemplate = Sitecore.Context.Database.GetTemplate("user defined/test templates/base");
            m_d1Template = Sitecore.Context.Database.GetTemplate("user defined/test templates/d1");
            m_d2Template = Sitecore.Context.Database.GetTemplate("user defined/test templates/d2");

            // Retrieve created content items
            m_testRoot = home.Axes.GetChild("Test Root");
            m_base1 = m_testRoot.Axes.GetChild("Base1");
            m_base2 = m_testRoot.Axes.GetChild("Base2");
            m_d11 = m_testRoot.Axes.GetChild("D1-1");
            m_d12 = m_testRoot.Axes.GetChild("D1-2");
            m_d2 = m_testRoot.Axes.GetChild("D2");
        }
コード例 #14
0
 public override string Render(TemplateItem item)
 {
     return Template.Resolve().Render(new TemplateItem {
         Parent = item,
         Data = new ExpressionEvaluator(item).Evaluate(Data).Value,
         Options = new ExpressionEvaluator(item).Evaluate(Options).Value,
     });
 }
コード例 #15
0
ファイル: MoveItem.cs プロジェクト: KerwinMa/revolver
    public void Init()
    {
      Sitecore.Context.IsUnitTesting = true;
      Sitecore.Context.SkipSecurityInUnitTests = true;
      InitContent();

      _template = _context.CurrentDatabase.Templates[Constants.Paths.DocTemplate];
    }
コード例 #16
0
ファイル: Folder.cs プロジェクト: JimmieOverby/NewsMover
        /// <summary>
        /// Initializes a new instance of the <see cref="Folder"/> class.
        /// </summary>
        /// <param name="templateItem">The template item.</param>
        /// <param name="format">The format.</param>
        public Folder(TemplateItem templateItem, string format)
        {
            Sitecore.Diagnostics.Assert.IsNotNull(templateItem, "templateItem");
            Sitecore.Diagnostics.Assert.IsNotNullOrEmpty(format, "format");

            Template = templateItem;
            FormatString = format;
        }
コード例 #17
0
 public void GetAllTemplates(TemplateItem baseTemplate, List<string> list)
 {
     var str = IdHelper.NormalizeGuid(baseTemplate.ID);
     list.Add(str);
     if (baseTemplate.ID == TemplateIDs.StandardTemplate)
         return;
     foreach (var item in baseTemplate.BaseTemplates)
         GetAllTemplates(item, list);
 }
コード例 #18
0
        protected virtual bool TemplateAndBaseCheck(TemplateItem template, ID templateId)
        {
            if (template.ID == templateId)
            {
                return true;
            }

            return template.BaseTemplates.Any(baseTemplate => TemplateAndBaseCheck(baseTemplate, templateId));
        }
コード例 #19
0
 private static void RecurseTemplates(ICollection<string> list, TemplateItem template)
 {
     foreach (var baseTemplateItem in template.BaseTemplates)
     {
         list.Add(IdHelper.NormalizeGuid(baseTemplateItem.ID));
         if (baseTemplateItem.ID != TemplateIDs.StandardTemplate)
             RecurseTemplates(list, baseTemplateItem);
     }
 }
コード例 #20
0
ファイル: ListPublishQueue.cs プロジェクト: KerwinMa/revolver
    public void TestFixtureSetUp()
    {
      Sitecore.Context.IsUnitTesting = true;
      Sitecore.Context.SkipSecurityInUnitTests = true;

      _context.CurrentDatabase = Sitecore.Configuration.Factory.GetDatabase("master");
      InitContent(_context.CurrentDatabase);
      _template = _context.CurrentDatabase.Templates[Constants.Paths.DocTemplate];
    }
コード例 #21
0
 public static IEnumerable<Item> GetItemsByTemplate(TemplateItem template, Item root)
 {
     var usages = template.GetUsageIDs();
     foreach (var usage in usages)
     {
         var item = template.Database.GetItem(usage);
         if (item != null && (root == null || root.Axes.IsAncestorOf(item)))
             yield return item;
     }
 }
コード例 #22
0
 public TemplateInSetBase(Item item, string[] databases, string setNamespace)
 {
     TemplateItem = new TemplateItem(item);
     TemplateId = item.ID.ToString();
     TemplateName = item.Name;
     ClassName = DomUtil.ConvertCaseString(item.Name);
     FullClassName = string.Format("{0}.{1}", setNamespace, ClassName);
     Databases = databases;
     TemplateSectionItem[] sectionItems = TemplateItem.GetSections();
     Sections = sectionItems != null ? sectionItems.Select(sectionItem => new TemplateSection(sectionItem, false)) : null;
 }
コード例 #23
0
        public string GetNamespace(TemplateItem template, string baseNamespace)
        {
            string relativePath = TemplateUtil.GetRelativeTemplatePath(template);

            if(string.IsNullOrEmpty(relativePath)) return baseNamespace;

            relativePath = relativePath.Replace("/", ".");
            relativePath = CodeUtil.CleanStringOfIllegalCharacters(relativePath);

            return baseNamespace + "." + relativePath;
        }
コード例 #24
0
 private static void GetBaseTemplates(TemplateItem template, IDictionary<string, TemplateItem> templates)
 {
     if (template != null && !templates.ContainsKey(template.FullName))
     {
         templates.Add(template.FullName, template);
         foreach (var baseTemplate in template.BaseTemplates)
         {
             GetBaseTemplates(baseTemplate, templates);
         }
     }
 }
コード例 #25
0
 protected virtual bool ShouldMigrate(TemplateItem template)
 {
     foreach (TemplateItem baseTemplate in template.BaseTemplates)
      {
     if (string.Equals(baseTemplate.ID.ToString(), sharedBaseTemplateID) || ShouldMigrate(baseTemplate))
     {
        return true;
     }
      }
      return false;
 }
コード例 #26
0
ファイル: CloneItem.cs プロジェクト: KerwinMa/revolver
    public void TestFixtureSetUp()
    {
      // Set DB to master so notification provider exists
      _context.CurrentDatabase = Sitecore.Configuration.Factory.GetDatabase("master");

      using (new SecurityDisabler())
      {
        InitContent(_context.CurrentDatabase);
      }

      _template = _context.CurrentDatabase.Templates[Constants.Paths.DocTemplate];
    }
コード例 #27
0
 public void GetAllTemplates(TemplateItem baseTemplate, List<string> list)
 {
     if (baseTemplate.ID != Sitecore.TemplateIDs.StandardTemplate)
     {
         string str = IdHelper.NormalizeGuid(baseTemplate.ID);
         list.Add(str);
         foreach (TemplateItem item in baseTemplate.BaseTemplates)
         {
             this.GetAllTemplates(item, list);
         }
     }
 }
コード例 #28
0
        public static bool InheritsFrom(this Item item, TemplateItem templateItem)
        {
            bool returnValue = false;
            if (templateItem != null)
            {
                Template template = TemplateManager.GetTemplate(item);
                returnValue = template != null &&
                              (template.ID == templateItem.ID || template.DescendsFrom(templateItem.ID));
            }

            return returnValue;
        }
コード例 #29
0
        public string GetFolderPath(TemplateItem template,string baseFilePath)
        {
            string relativeTemplatePath = TemplateUtil.GetRelativeTemplatePath(template).Replace("/", "\\");
            relativeTemplatePath = CodeUtil.CleanStringOfIllegalCharacters(relativeTemplatePath);

            if(!baseFilePath.EndsWith("\\"))
            {
                baseFilePath += "\\";
            }

            return baseFilePath + relativeTemplatePath;
        }
コード例 #30
0
ファイル: Util.cs プロジェクト: KerwinMa/revolver
		public void Init()
		{
			m_context = new Context();

			Item home = m_context.CurrentDatabase.GetItem(Constants.Paths.Home);
			m_template = m_context.CurrentDatabase.Templates[Constants.Paths.DocTemplate];

			using (new SecurityDisabler())
			{
				m_testRoot = home.Add("testroot", m_template);
			}
		}
コード例 #31
0
ファイル: NewFileDialog.cs プロジェクト: zendbit/monodevelop
 public void Add(TemplateItem templateItem)
 {
     tree.Add(templateItem);
 }
コード例 #32
0
        public static void ImportPosts(Item bh, List <WPPost> listWordpressPosts, string blogName, Item userBlogPostTemplate)
        {
            Database master = Database.GetDatabase("master");

            foreach (WPPost post in listWordpressPosts)
            {
                try
                {
                    using (new SecurityDisabler())
                    {
                        if (string.IsNullOrEmpty(post.Content) || string.IsNullOrEmpty(post.Title))
                        {
                            continue;
                        }

                        TemplateItem blogPostTemplate = master.GetItem(userBlogPostTemplate.ID);

                        string validItemName = ItemUtil.ProposeValidItemName(post.Title);
                        if (string.IsNullOrEmpty(validItemName))
                        {
                            continue;
                        }


                        BlogPost bp = ItemManager.CreateItem(validItemName, bh, userBlogPostTemplate.ID).CreateAs <BlogPost>();

                        if (bp == null)
                        {
                            continue;
                        }

                        using (new EditContext(bp.InnerItem))
                        {
                            bp.InnerItem.SetString(BlogPost.BlogPostTitleFieldId, post.Title.Replace("-", " "));
                            bp.InnerItem.SetString(BlogPost.BlogPostBodyFieldId, post.Content);
                            bp.PublishDate.Value = DateUtil.ToIsoDate(post.PublishDate);

                            if (!string.IsNullOrEmpty(post.WPAuthor))
                            {
                                if (post.Tags.Any())
                                {
                                    foreach (string tag in post.Tags)
                                    {
                                        Item t = master.SelectItems("fast://sitecore/content/Data/" + blogName + "/Tags/*[@Tag Name= '" + tag + "']").FirstOrDefault();
                                        if (t == null)
                                        {
                                            continue;
                                        }
                                        bp.InnerItem.SetValue(BlogPost.BlogPostTagsFieldId, t.ID);
                                    }
                                }

                                if (post.Categories.Any())
                                {
                                    foreach (string cat in post.Categories)
                                    {
                                        Item c = master.SelectItems("fast://sitecore/content/Data/" + blogName + "/Categories/*[@Category Name= '" + cat + "']").FirstOrDefault();
                                        if (c == null)
                                        {
                                            continue;
                                        }
                                        bp.InnerItem.SetValue(BlogPost.BlogPostCategoryFieldId, c.ID);
                                    }
                                }

                                Item auth = master.SelectItems("fast://sitecore/content/Data/" + blogName + "/Authors/*[@Creator= '" + post.WPAuthor + "']").FirstOrDefault();
                                if (auth != null)
                                {
                                    bp.InnerItem.SetValue(BlogPost.BlogPostAuthorFieldId, auth.ID);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Log.Error("Cannot create entry for: " + post.Title + " " + ex.Message, "WPImporter");
                }
            }
        }
コード例 #33
0
 public ITemplateItem BuildTemplateItem(TemplateItem templateItem)
 {
     return(new TemplateItemWrapper(templateItem));
 }