Sitecore - динамические значения на основе URL - PullRequest
0 голосов
/ 27 января 2011

Я хочу создать сайт, который имеет одну страницу, но будет отображаться независимо от того, какой это URL-адрес, и в зависимости от URL-адреса будут изменяться различные фрагменты информации.

Например:номер телефона.

site.com / url1 - показывает 800-123-4567

site.com / url2 - показывает 800-456-1234

site.com /url3 - показывает 800-987-6543

Может ли SiteCore 6 сделать это из коробки или мне нужно создать собственный элемент управления?

Может кто-нибудь указать мне правильное направление какого-то хорошегоучебники?

Ответы [ 4 ]

2 голосов
/ 27 января 2011

Каждый из этих разных URL-адресов на самом деле представляет собой отдельную страницу и уникальные элементы в дереве в Sitecore. Каждый из них будет основан на одном и том же шаблоне (поля для заполнения данными), и все они будут иметь одинаковый макет (веб-форма .aspx), у них просто будут разные значения, заполненные полями. Это базовая функциональность Sitecore.

1 голос
/ 28 января 2011

Судя по вашему описанию и комментариям, вы можете попытаться сделать несколько разных вещей.По сути, вы хотите предоставить механизм для адресации фрагмента данных, хранящихся в Sitecore, и представления / обработки его таким же образом, как и для других похожих фрагментов данных.Как замечает Майкл выше, это не просто стандартная функциональность Sitecore, это основная предпосылка программного обеспечения.Если у вас есть, например, телефонная книга, то создайте шаблон PhoneBookEntry, свяжите его с макетом и элементами управления, используя __Standard Values, а затем создайте из него элементы PhoneBookEntry.Каждый из них будет напрямую адресован без использования строки запроса.

Если ваш телефонный номер является лишь частью более широкого набора данных, который вы хотите представить (например, контактные данные), тогда вы можете создать шаблон ContactDetails, который использует обаШаблон адреса и шаблон PhoneBookEntry в качестве базовых шаблонов, а затем создайте из него элементы ContactDetails - у них будут все поля, включенные в Address и PhoneBookEntry.Опять же, они будут напрямую адресуемы без строки запроса.

Вам всегда нужно будет создавать какую-либо форму компонента представления - будь то XSLT или .Net - для визуализации вашего контента, хотя это очень просто, если выпросто используйте стандартные инструменты Sitecore для работы, такие как FieldRenderer.

Если ваши ContactDetails хотели разрешить использование нескольких телефонных номеров, и вы хотите выбрать, какие из них отображать, вы можете использовать строку запроса для этого (например, шоу = мобильный | офис | дом).Это условный рендеринг, и вам придется вставить тест строки запроса в компонент презентации.Опять же, это не должно быть трудным.

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

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

Стоит также отметить, что использование строк запросов может иметь неприятный эффектЧто касается SEO, то лучше всего свести их к минимуму, а там, где вы их используете, сохранить параметры как можно меньше.Стоит также отметить, что если вы начнете манипулировать созданием ссылок вне Sitecores из коробки API, вы рискуете, что изменение параметра в вашем web.config, касающегося того, как ссылки создаются и интерпретируются, может нарушить вашу ссылку.В Sitecore есть много функциональных возможностей, например, для определения языка элемента, который вам нужно будет реплицировать, если вы сшиваете вручную ссылки.

Я рекомендую провести некоторое время с документацией по продукту, есть множество поваренных книг там .

Помимо презентационных поваренных книг этот также может представлять интерес:

1 голос
/ 28 января 2011

Поиск в нашей документации для обмена контентом и элементами подстановки. Вы найдете решение там.

0 голосов
/ 27 января 2011

Похоже, вам нужно использовать некоторые перезаписи URL.Это позволит вам принять это:

http://site.com/?code=url1

в:

http://site.com/url1

Простая таблица базы данных с URL-адресом для # lookupsзатем будет использоваться для отображения правильного номера телефона.

Быстрый поиск в Google показывает, что вам, вероятно, потребуется установить что-то вроде модуля ISAPI_Rewrite от Helicon Tech (http://www.isapirewrite.com/) для перезаписи URL для работы в Sitecore.

Вот блог человека, который сделал это для URL без расширений

http://thebackshop.posterous.com/extensionless-urls-with-sitecore-using-the-he

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...