实际上,我正在使用isslotiterator,并且必须使用循环循环来获取具有属性counter
的每个广告位项目的位置。
我想知道是否可以通过<isslot>
获得职位。
想象一下,我有一个包含3个条目的插槽。
因此,当我在广告位项目ISML中调用<isslot>
时,我可以这样做:
#Pagelet:位置#
那么结果是:1/2/3
答案 0 :(得分:2)
不幸的是,position
不是类型Pagelet
的特征。如果成功完成此操作,则需要使用PageletAssignment
。因此,您需要使用Pagelet:Position
来代替PageletAssignment:Position
。
但是
isslot
正在为您的“广告位项目ISML”准备一个渲染字典,其中不包含导致该“广告位项目”的分配。它仅包含项目本身(也就是小页面)。原因是广告位可以定义Pagelet Pipeline
,从而可以完全动态地确定分页,而无需分配。
我的建议:要么将isslotiterator
与AssignmentsAlias
一起使用(简单),要么使用在您的广告位的广告位定义中定义的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>