Как переопределить шаблон ISML рендера в Intershop7
В Enfinity Suite 6.4 мы использовали для настройки страниц витрины путем переопределения ISML-шаблонов картриджей PrimeTech. Например, было возможно добавить зависимость в нашем пользовательском картридже в "sld_ch_consumer_app" и заменить любой шаблон Primetech ISML, добавив шаблон с тем же именем и иерархией в наш пользовательский картридж.
Возможно ли что-то подобное в Intershop7? Например, мы хотели бы изменить порядок элементов ISML в ProductTile.isml, не переопределяя модель страницы. Если мы добавим зависимость в наш пользовательский картридж в "app_sf_responsive_cm" и создадим шаблон ISML с тем же именем и иерархией папок в нашем пользовательском картридже, система все равно загрузит шаблон ISML из "app_sf_responsive_cm".
Единственным способом, которым нам удалось добиться, чтобы увидеть изменения в витрине, было переопределение модели страницы и изменение имени шаблона визуализации на "ProductTileCustom". Как это:
Если мы не используем пользовательское имя для шаблона рендеринга, система сначала загрузит ProductTile.isml из app_sf_responsive_cm вместо одного из наших пользовательских картриджей (app_sf_a1_shop_cm).
Порядок картриджей в файле listlist.properties такой:
....
bc_urlrewrite_test \
bc_product_rating_orm_test \
commerce_management_b2c_component \
app_core_a1 \
app_sf_a1_shop \
app_sf_a1_shop_cm \
app_bo_a1 \
app_sf_responsive \
app_sf_responsive_cm \
app_sf_responsive_b2c \
app_sf_responsive_smb \
as_responsive \
as_a1 \
Есть ли какой-то более простой способ переопределить шаблоны ISML адаптивного хранилища, кроме переопределения модели страницы?
2 ответа
В дополнение к тому, что Бас де Гроот упомянул в отношении использования мастера межшопной студии для переопределения шаблона ISML, я хочу отметить, что ваша проблема заключается в неправильном порядке картриджей в файле cartlist.properties. Так что вместо:
bc_urlrewrite_test \
bc_product_rating_orm_test \
commerce_management_b2c_component \
app_core_a1 \
app_sf_a1_shop \
app_sf_a1_shop_cm \
app_bo_a1 \
app_sf_responsive \
app_sf_responsive_cm \
app_sf_responsive_b2c \
app_sf_responsive_smb \
as_responsive \
as_a1 \
Вы должны использовать этот порядок здесь:
bc_urlrewrite_test \
bc_product_rating_orm_test \
commerce_management_b2c_component \
app_sf_responsive \
app_sf_responsive_cm \
app_sf_responsive_b2c \
app_sf_responsive_smb \
as_responsive \
as_a1 \
app_core_a1 \
app_sf_a1_shop \
app_sf_a1_shop_cm \
app_bo_a1 \
Другими словами, ваши картриджи проекта должны быть загружены после загрузки в магазин
Не должно быть необходимости переопределять модель страницы, просто переопределение шаблона ISML должно помочь. Вы можете легко переопределить шаблоны ISML в Intershop 7, выполнив следующие действия:
- Щелкните правой кнопкой мыши на пользовательском картридже, в который вы хотите добавить новый шаблон, и выберите
new > ISML Template
, - Во всплывающем окне нажмите
Override Existing...
, - Выберите шаблон, который вы хотите переопределить и нажмите
open
, - Нажмите
Finish
,
Intershop Studio теперь автоматически создает шаблон и корректирует структуру папок внутри указанного картриджа.
В зависимости от ваших настроек в appserver.properties
файл, который может потребоваться перезапустить или даже повторно развернуть сервер приложений, прежде чем новый шаблон появится в веб-интерфейсе.