Здравствуйте, я пытаюсь изучить Hybris, и, поскольку у меня нет доступа к сайту Wiki, мне сложно понять основы кода. Может ли кто-нибудь помочь мне понять приведенные ниже заявления Impex для текста «Добро пожаловать на домашнюю страницу» на главной странице.
Мои вопросы из приведенного ниже кода: на самом деле, у меня есть больше, но я не хочу обременять вас, но если вы можете помочь мне в большинстве основ заявления Impex, я буду очень признателен.
1) В некоторых местах используется более одной точки с запятой, почему?
2) Что такое uid?
3) Кажется, что значения параметров, определенных в start, начинаются после двух точек с запятой (;;) в каждом операторе, дайте мне знать, что я прав?
INSERT_UPDATE CMSParagraphComponent;$contentCV[unique=true];uid[unique=true];name;&componentRef;;;;content;
;;welcomeInfoComponent;Welcome information;welcomeInfoComponent;;;;welcome to home page;
INSERT_UPDATE ContentSlotName;name[unique=true];template(uid,$contentCV)[unique=true][default='LandingPage2Template'];validComponentTypes(code);compTypeGroup(code)
;welcomeInfo;;;wide
INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active
;;welcomeInfoSlot;welcome info slot;true
INSERT_UPDATE ContentSlotForTemplate;$contentCV[unique=true];uid[unique=true];position[unique=true];pageTemplate(uid,$contentCV)[unique=true][default='LandingPage2Template'];contentSlot(uid,$contentCV)[unique=true];allowOverwrite
;;WelcomeInfo-LandingPage2;welcomeInfo;;welcomeInfoSlot;true
INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];cmsComponents(uid,$contentCV)
;;welcomeInfoSlot;welcomeInfoComponent




what is uid?
uid - это атрибут, определенный как уникальный в CMSItem. Практически все элементы CMS расширяют CMSItem. Таким образом, вы должны указать уникальное значение для всех ваших записей в вашем Impex. Кроме того, uid использовался для объявления CMSItem как поддерживающего каталог.
<itemtype code = "CMSItem" jaloclass = "de.hybris.platform.cms2.jalo.contents.CMSItem" extends = "GenericItem" autocreate = "true"
generate = "true" abstract = "true">
<custom-properties>
<property name = "catalogItemType">
<value>java.lang.Boolean.TRUE</value>
</property>
<property name = "catalogVersionAttributeQualifier">
<value>"catalogVersion"</value>
</property>
<property name = "uniqueKeyAttributeQualifier">
<value>"uid"</value>
</property>
</custom-properties>
<attributes>
<attribute qualifier = "uid" generate = "true" autocreate = "true" type = "java.lang.String">
<persistence type = "property" />
<modifiers optional = "false" unique = "true" />
</attribute>
<attribute qualifier = "name" generate = "true" autocreate = "true" type = "java.lang.String">
<persistence type = "property" />
</attribute>
<attribute qualifier = "catalogVersion" type = "CatalogVersion">
<modifiers optional = "false" unique = "true" />
<persistence type = "property" />
</attribute>
</attributes>
</itemtype>
it seems values of parameters defined in starts begins after two semicolons (;;) in each statement, let me know I'm correct?
Позвольте мне сначала отформатировать ваш impex, чтобы вы поняли идею
INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true] ; name ; &componentRef ; ; ; ; content ;
; ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ; ; ; ; welcome to home page ;
Здесь
in some place more than one semicolon is used, why?
Просто для удобства чтения вы можете поставить столько точек с запятой, сколько хотите, в заголовке и столько же в строке значений. Если вы удалите эти лишние ;, даже если ваш Impex будет работать
INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true] ; name ; &componentRef ; content ;
; ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ; welcome to home page ;
Я ценю ваш ответ, он очень помог в понимании кода. Последний вопрос, какова цель тега & componentRef?
&componentRef используется для создания ссылки. Чтобы вы могли использовать эту ссылку в каком-нибудь другом itemType. Здесь вы можете увидеть, что ссылка welcomeInfoComponent используется в последней строке (ContentSlot) для привязки вашего компонента к contentSlot (welcomeInfoSlot).
Я вижу, вы задали много вопросов здесь, в StackOverflow, но не приняли ни одного ответа. Пожалуйста, взгляните на этот "Что мне делать, когда кто-то отвечает на мой вопрос?" и внесите свой вклад в сообщество SO