2015-06-16 2 views
2

Я пытаюсь понять лучший подход к созданию статей в моем проекте sitecore 7.2.Где создавать статьи в Sitecore?

В основном я рассматриваю 2 варианта: 1 - Создайте статью в виде страницы; 2 - Создайте статью как элемент данных сайта.

1 - Создайте статьи на данной странице (т. Е. Мои статьи). Таким образом, каждая статья будет иметь конкретный URL-адрес из коробки, более понятный в контексте Авторы содержания;

2 - Указать определенную папку (то есть папку со статьей) в разделе Данные сайта. Таким образом, нам не нужно иметь страницу для каждой статьи - я думал, что у меня есть одна страница статьи, которая будет отображать поля статьи. Однако для этого потребуется больше работы с точки зрения URL-адресов, навигации и т. Д.

Есть ли другие идеи? Я что-то упускаю? Я также иметь взгляд на Ковши ...

Спасибо

+0

Некоторые разные мнения в этих ответах. Вот хорошая статья, в которой говорится об этой теме http://cardinalcore.co.uk/2014/07/29/page-vs-non-page-content/ Я не согласен с ней, но автор делает некоторые хорошие моменты :) –

ответ

3

Я буду не согласен с Мареком и рекомендуем вам выбрать вариант 2.

Сохранение ваших статей в папке под узлом Data позволяет эти элементы должны быть datasourced. Это был принцип Sitecore. Затем вы можете нарисовать эти статьи несколькими интересными способами через Widgets, такие как Promo Panels, предлагая пользователю щелкнуть, чтобы прочитать статью, не дублируя ее данные и требуя, чтобы Content Editors управляли данными несколько раз.

Он поддерживает даже несколько сайтов, поэтому Статьи могут использоваться на других сайтах, которые вы можете добавить в свой экземпляр Sitecore в будущем.

Как вы заявляете, это потребует дополнительной работы с точки зрения адресов и навигации, но это может быть достигнуто с помощью Wild Card Item Sitecore, и вы даже используете отличный модуль с открытым исходным кодом от Marketplace Sitecore, чтобы выполнить 90% работы за вас , См. Ссылки ниже для получения дополнительной информации.

Вы по-прежнему можете использовать точку Марека для применения информации о представлении один раз на стандартных значениях элемента Wild Cart, который вы создаете. Если вы используете Sitecore 7 и выше, вы можете хранить все свои статьи в Bucket, поэтому, если у вас есть много статей, они хранятся и доступны для поиска значимым образом.

+1

Хорошая точка на нескольких сайтах, если вам нужно делиться статьями, которые им нужно будет сидеть за пределами дерева контента. Источник данных не обязательно должен находиться за пределами дерева контента, однако оба решения могут удовлетворить это требование. –

+1

Очень верно, что источник данных не должен находиться за пределами дерева контента, это зависит от личного подхода. Для меня я предпочитаю уважать разделение проблем, данные не зависят от всех его представлений. –

+1

Спасибо jRobbings, я думаю, что я пойду с вашим предложением, несмотря на то, что это единственное решение для сайта. Хорошо придерживаться принципов sitecore и SoC от mvc. – Snapper

0

Go с подходом 1: статья страницы.

Определите все ваши данные для презентации на Article Page template __Standard Values. Все новые статьи получат их. И вы можете изменить некоторые детали презентации для выбранных вами статей, если хотите.

Если вы знаете, что у вас будет много статей, подумайте о структуре папки , например. articles/2015/06/12.

Подход 2 не дает вам ничего - вы все равно должны иметь предмет для каждой статьи. И, как вы писали, для этого потребуется дополнительное кодирование, которое не требуется.

+0

Привет, Марек, я понял, что вариант 2 будет более полезен в этой ситуации. У меня будут последние статьи и, вероятно, какие-то рекламные материалы, основанные на этих статьях. Учитывая это, я считаю, что я должен хранить статьи отдельно, а затем просто использовать их в качестве источников данных. Хорошее предложение. Спасибо Мареку. – Snapper

+0

@Snapper уверен. Это ваше решение. Вы можете использовать страницы в качестве источников данных для других компонентов. И поскольку я всегда стараюсь держать контент отделенным от презентации, я все же думаю, что статьи - это страницы, и вам будет проще, если вы и редакторы должны иметь их в дереве страниц. Если вы не планируете использовать их на нескольких сайтах, вам не удастся получить их на дереве за пределами узла. В любом случае, ваше решение. Может быть, опубликуйте некоторые комментарии, когда ваш сайт в прямом эфире, было ли это решение хорошим или нет? –

+0

Cool @Marek, сделаю. Несколько недель назад у нас был обзор sitecore, и один из парней сказал, что нам нужно убедиться, что персонализация рассматривается. Если я не ошибаюсь, это легче достичь, если мы примем подход с источниками данных. Ну ... Во всяком случае, я попытаюсь поделиться своим решением, как только закончу его. – Snapper

1

В стандартной конфигурации один экземпляр самый простой реализации заключается в создании статей, как страницы.

В Sitecore вы хотите ограничить количество элементов в папке до 100 или менее, что является наилучшей практикой, позволяющей редактору контента оптимально работать.

Это приводит тогда вы нуждаясь в структуру папок и пара вариантов:

  1. вручную сохранить структуру папок для ваших статей. Например, статьи/год/месяц/день. Это дает вашим редакторам наибольший контроль над структурой папок и позволяет им перемещаться по статьям более традиционным способом через видимую структуру папок.

  2. Используйте ведро, которое автоматически создает структуру папок и скрывает эту сложность от редактора содержимого. Это приводит к созданию и обслуживанию папки вручную из редактора содержимого и автоматически создается на основе конфигурации, установленной для вашего ведра. Папки не будут отображаться в редакторе содержимого, поэтому они будут вынуждены искать в корзине любые статьи, а не перемещаться по папкам. (https://marketplace.sitecore.net/en/Modules/News_mover.aspx). Для этого требуется другой подход. Он работает через традиционную структуру папок, однако он создает папки и перемещает элемент на сохранение в соответствии с полем даты в статье. Таким образом, новостной движок обрабатывает генерацию папок, однако вам все равно нужно снова проверить не более 100 элементов на каждую папку для повышения производительности при открытии папок с большим количеством элементов.

Со всеми решениями вы все равно должны учитывать URL-адреса для своих статей, так как они будут включать структуру папок по умолчанию. Это не всегда приемлемо. Я предпочитаю удалить структуру папок из URL. Для этого вам нужно создать собственный linkProvider и пользовательский HttpRequestProcessor. Во-первых, linkprovider позволяет вам гарантировать, что новый URL-адрес всегда создается и отображается на вашем сайте по своему усмотрению. Далее HttpRequestProcessor гарантирует, что при навигации по сокращенному URL Sitecore распознает его как действительный URL-адрес и представляет правильную страницу.

Исключая структуру папок из URL-адреса, он также добавляет дополнительное преимущество, которое URL-адрес не зависит от структуры. Это означает, что редакторы могут изменять эту структуру папок и не создавать элементы перенаправления, чтобы гарантировать, что рейтинг SEO или закладки пользователей не будут потеряны.

+0

Спасибо Джейсону - вы указали некоторые важные аспекты. Я думаю, что я поеду с вашим предложением относительно определения URL-адреса и лучше посмотрю модуль News Mover. Однако в этом случае я создам статьи в отдельной папке данных сайта и рассматриваю статью как элемент данных, а не страницу. Спасибо еще раз и держите хорошую работу! – Snapper

1

Модель данных чистых данных предназначена для использования подстановочного подхода для URL-адресов и централизации хранения данных статей в ведре источников данных. Это даст вам оптимальную производительность и повторное использование данных.

Однако это не то, как автор думает о своем веб-сайте. Когда они используют систему, они стремятся перейти к области, где они будут просматривать статьи, и попытаться создать там новую. Авторы склонны думать на «страницах», поэтому старайтесь скрыть любую модель данных, которую вы используете, и дайте им возможность редактировать страницу с помощью Редактора опыта.

Некоторые разработчики пытаются оптимизировать слишком далеко и забывают, что авторский опыт, вероятно, является наиболее важной частью поставленного решения.Автору все равно, насколько эффективно вы храните данные, только чтобы они могли легко его редактировать и публиковать. Независимо от того, какая модель поддерживает, что для вашей авторской базы является то, как вы должны ее реализовать.

Моя рекомендация - это подход на основе страниц, когда автор создает структуру URL с папками и элементами, что они понимают. Затем, если вам действительно нужно, вы можете перенести данные первичной статьи на компонент, основанный на источнике данных. Пользователь получает все инструменты, с которыми они знакомы (Редактор опыта, предварительная навигация), но вы можете хранить необработанные данные в централизованной папке. Затем вы могли бы теоретически поменять данные статьи с помощью правил DMS или скрыть информацию на основе аутентификации или статуса членства.

+0

Хороший вопрос относительно «мышления автора». Ты прав! Иногда мы склонны забывать об этом. Однако в этом случае я думаю, что я попытаюсь сохранить статьи в данных сайта и попросить авторов добавить их в Редактор страниц, а не в Редактор содержимого. «Подход к странице» был моим вариантом, прежде чем читать ответы, но jRobbins сделал несколько хороших моментов. Спасибо, Джей С. – Snapper

Смежные вопросы