使用 ISSLOT 标签获取插槽项目的位置
Get position of slot item using ISSLOT tag
实际上我正在使用 isslotiterator 并且我必须使用循环循环来获取具有属性 counter
.
的每个插槽项的位置
我想知道是否有可能获得 <isslot>
的职位。
假设我有一个包含 3 个条目的插槽。
所以当我在插槽项 ISML 中调用 <isslot>
时,我可以这样做:
#Pagelet:位置#
结果为:1 / 2 / 3
不,我不认为这是可能的。 <isslot>
不会将位置信息传递给 pagelet,它只是呈现它。为了更好地控制插槽项的呈现方式,引入了 isslotiterator
标签。
如果您不想使用计数器,您可以从 SlotPageletAssignment
对象获取位置信息。
看看demo首页的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>
不幸的是 position
不是类型 Pagelet
的特征。如果成功做到这一点,您需要使用 PageletAssignment
。因此,您需要使用 PageletAssignment:Position
.
而不是 Pagelet:Position
但是
isslot
正在为您的“插槽项目 ISML”准备渲染字典,其中不包含导致此“插槽项目”的分配。它只包含项目本身(又名。pagelet)。原因是插槽可以定义一个 Pagelet Pipeline
,它完全动态地确定 pagelet,而不需要分配。
我的建议:要么使用 isslotiterator
和 AssignmentsAlias
(简单),要么使用在插槽的插槽定义中定义的 pagelet 管道(更复杂)。
实际上我正在使用 isslotiterator 并且我必须使用循环循环来获取具有属性 counter
.
我想知道是否有可能获得 <isslot>
的职位。
假设我有一个包含 3 个条目的插槽。
所以当我在插槽项 ISML 中调用 <isslot>
时,我可以这样做:
#Pagelet:位置#
结果为:1 / 2 / 3
不,我不认为这是可能的。 <isslot>
不会将位置信息传递给 pagelet,它只是呈现它。为了更好地控制插槽项的呈现方式,引入了 isslotiterator
标签。
如果您不想使用计数器,您可以从 SlotPageletAssignment
对象获取位置信息。
看看demo首页的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>
不幸的是 position
不是类型 Pagelet
的特征。如果成功做到这一点,您需要使用 PageletAssignment
。因此,您需要使用 PageletAssignment:Position
.
Pagelet:Position
但是
isslot
正在为您的“插槽项目 ISML”准备渲染字典,其中不包含导致此“插槽项目”的分配。它只包含项目本身(又名。pagelet)。原因是插槽可以定义一个 Pagelet Pipeline
,它完全动态地确定 pagelet,而不需要分配。
我的建议:要么使用 isslotiterator
和 AssignmentsAlias
(简单),要么使用在插槽的插槽定义中定义的 pagelet 管道(更复杂)。