Создание элемента Sitecore из существующего шаблона

#sitecore #sitecore8

#sitecore #sitecore8

Вопрос:

Я новичок в sitecore, когда пытаюсь создать новый элемент для существующего шаблона. Я не могу вызвать свою основную базу данных.Вам нужно руководство о том, как создать новый элемент в sitecore и как показать его на моей запущенной странице sitecore? Просто нужна подсказка относительно потока после создания, как отобразить его на существующей странице sitecore.

 <configuration type="Sitecore.Search.SearchConfiguration, Sitecore.Kernel" singleInstance="true">
        <indexes hint="list:AddIndex">
          <index id="system" type="Sitecore.Search.Index, Sitecore.Kernel">
            <param desc="name">$(id)</param>
            <param desc="folder">__system</param>
            <Analyzer ref="search/analyzer" />
            <locations hint="list:AddCrawler">
              <core type="Sitecore.Search.Crawlers.DatabaseCrawler,Sitecore.Kernel">
                <Database>core</Database>
                <Root>/sitecore/content</Root>
                <include hint="list:IncludeTemplate">
                  <application>{EB06CEC0-5E2D-4DC4-875B-01ADCC577D13}</application>
                </include>
                <Tags>application</Tags>
                <Boost>2.0</Boost>
              </core>
              <core-controlpanel type="Sitecore.Search.Crawlers.DatabaseCrawler,Sitecore.Kernel">
                <Database>core</Database>
                <Root>/sitecore/content/applications/control panel</Root>
                <include hint="list:IncludeTemplate">
                  <taskoption>{BDB6FA46-2F76-4BDE-8138-52B56C2FC47E}</taskoption>
                </include>
                <Tags>taskoption</Tags>
                <Boost>1.9</Boost>
              </core-controlpanel>
              <master type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
                <Database>master</Database>
                <Tags>master content</Tags>
              </master>
            </locations>
          </index>
        </indexes>
      </configuration>
  

Ответ №1:

Я напишу код, который я обычно выполняю:

 Database database = Database.GetDatabase("master");
Item rooItem = database.GetItem(new ID(parentItemId));
if (rootItem == null) return null;

TemplateID pageTemplateId = new TemplateID(new ID(templateId));
string validName = ItemUtil.ProposeValidItemName(name);

using (new Sitecore.SecurityModel.SecurityDisabler())
{
    Item newItem = rootItem.Add(validName, pageTemplateId);
    if (newItem == null) return null;
    //TODO: publish item
}
  
  • Корневой элемент может быть элементом home
  • templateId будет идентификатором вашего шаблона страницы (помните, что на этой странице должны быть определены макет и рендеринг)

Комментарии:

1. Спасибо @ Santiago Morla, но я получаю сообщение об ошибке при получении базы данных. как «Не удалось прочитать конфигурацию Sitecore»

2. Вы проверили свой файл web.config? эта ошибка означает, что у вас нет узла <sitecore> в вашей конфигурации. Что вы можете сделать, так это предоставить надлежащее разрешение папке — (снимите флажок с атрибута только для чтения)

3. Он есть в моем файле web.config, начинающемся с <база данных sitecore=»SQLServer»>

4. у вас есть узел <конфигурация>, где определены индексы? какой поставщик поиска вы используете?

5. да, я добавил свой <configuration> в свой вопрос. Это нормально?