使用ISSLOT标签获取广告位的位置

时间:2020-10-15 15:07:08

标签: intershop

实际上,我正在使用isslotiterator,并且必须使用循环循环来获取具有属性counter的每个广告位项目的位置。

我想知道是否可以通过<isslot>获得职位。 想象一下,我有一个包含3个条目的插槽。

因此,当我在广告位项目ISML中调用<isslot>时,我可以这样做: #Pagelet:位置#

那么结果是:1/2/3

2 个答案:

答案 0 :(得分:2)

不幸的是,position不是类型Pagelet的特征。如果成功完成此操作,则需要使用PageletAssignment。因此,您需要使用Pagelet:Position来代替PageletAssignment:Position

但是

isslot正在为您的“广告位项目ISML”准备一个渲染字典,其中不包含导致该“广告位项目”的分配。它仅包含项目本身(也就是小页面)。原因是广告位可以定义Pagelet Pipeline,从而可以完全动态地确定分页,而无需分配。

我的建议:要么将isslotiteratorAssignmentsAlias一起使用(简单),要么使用在您的广告位的广告位定义中定义的Pagelet管道(更复杂)。

答案 1 :(得分:1)

不,我认为这是不可能的。 <isslot>不会将位置信息传递给小页面,而只是呈现它。为了更好地控制广告位项目的呈现方式,引入了isslotiterator标签。

如果您不想使用计数器,则可以从SlotPageletAssignment对象获取位置信息。 看看演示主页上的Carousel组件。

app_sf_responsive_cm/release/templates/default/component/common/Carousel.isml

您可以看到他们使用AssignmentsAlias键来获取SlotPageletAssignment

<isslotiterator Slot="#Pagelet:SubSlot("app_sf_responsive_cm:slot.carousel.items.pagelet2-Slot")#" AssignmentsAlias="CarouselPageletAssignments">
<isloop iterator="CarouselPageletAssignments" alias="CarouselPageletAssignment" counter="i">
    #CarouselPageletAssignment:Position# - #CarouselPageletAssignment:getSubPagelet#<br/>
</isloop>