2013-02-28 4 views
0

(Использование версии Ektron 8.6.1)Вставить Ektron SmartForm в другой Ektron SmartForm

Скажем, у меня есть SmartForm ContactInfo, что-то вроде:

<ContactInfo> 
    <Name></Name> 
    <Email></Email> 
</ContactInfo> 

Я хотел бы создать еще один SmartForm (например NewsArticle) и «вставлять» ContactInfo внутри

<NewsArticle> 
    <Title></Title> 
    <Summary></Summary> 
    ... 
    <ContactInfo> 
     <Name></Name> 
     <Email></Email> 
    </ContactInfo> 
</NewsArticle> 

Мое решение до сих пор было включить Resource Selector поле, чтобы добавить ссылка на существующую интеллектуальную форму пример. Я бы предпочел сделать ассоциацию на уровне , чтобы сделать рабочий процесс ввода данных более интуитивным.

Я использую Билл Кава ContentTypes и генерирую классы из smartform XSD, поэтому он также сделает код презентации более естественным и безопасным по типу в том, что встроенные поля могут быть доступны напрямую (вместо того, чтобы делать другой запрос на основе идентификатор ссылки, который может быть или не быть идентификатором для смарт-формы, которую я ожидаю).

Я понимаю, что это невозможно из коробки; Я не против взлома кода Workarea, чтобы сделать что-то вроде этой работы. Есть ли у кого-нибудь опыт в подобном сценарии?

Я слышал от представителя Ektron, что они планируют повысить роль смартформ в предстоящем летнем выпуске - может ли кто-нибудь предложить дополнительную информацию по этому вопросу? Возможно, будет поддерживаться композиция smartform, как я описал?

+0

Я нашел это http://dev.ektron.com/kb_article.aspx?id=16550, обсуждая добавление пользовательских кнопок панели инструментов с помощью пользовательских диалоговых окон - кажется, является первым шагом в выполнении того, что я описал выше. Будет опубликовать обновления, если я смогу добиться определенного прогресса. – kaveman

ответ

1

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

Если контактная информация smartforms связана с новостями в моделях от одного до многих или многих, то использование селектора ресурсов, поскольку у вас есть единственный способ, которым я знаю, создать отношения, которые вы ищете ,

Если отношение является индивидуально или много-к-одному, то я предлагаю отказаться от отдельного определения смарт-формы.

Если вы можете уточнить рабочий процесс, который вы пытаетесь достичь для авторов контента, я мог бы лучше реагировать.

0

Content Types будет представлять данные в CMS. Предположим, что в вашем примере в NewsArticle содержится ссылка на ContactInfo. Внедрение ContactInfo внутри вашей NewsArticle может иметь смысл с точки зрения презентации, но превращает ваши ContentTypes в одностороннюю модель данных. Вы потеряете способность создавать новую статью новостей и сохранять ее в CMS.

Что может сработать для вас, так это оставить типы содержимого как есть, с идентификатором ContactInfo из селектора ресурсов. Затем создайте NewsArticleDisplayModel ... по существу, модель представления, содержащую данные новостной статьи плюс ContactName и ContactEmail.

Теперь, если вам нужна контактная информация для поиска, вы могли бы действительно походить на CMS Extensions и подключиться к событию OnBeforePublish, чтобы обновить метаданные с возможностью поиска с именем из ContactInfo, чтобы можно было найти в NewsArticle с помощью значения из другого «встроенного» ресурса. Это может показаться сложным, хотя ...в идеале вам придется также подключаться к событиям публикации объектов ContactInfo в случае, если что-то изменится и с этой стороны. Затем вы создаете таблицу настраиваемых баз данных для отслеживания того, какие идентификаторы контента NewsArticle используют конкретный ContactInfo?

Ваше решение может быть настолько сложным, насколько это необходимо, но я бы сохранил блоки контента отдельно. Если ничего другого, вы получите более удобное и обновляемое решение.

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