这听起来可能是一个简单的问题,但我有点困惑。
我试过使用Modulus和MultipleOf https://docs.silverstripe.org/en/3/developer_guides/templates/syntax/,但这给了我一个水平的列表。我想要两列,第一列包含列出的数据对象的前半部分,第二列包含后半部分。
使用CSS不起作用,因为它拆分内容并忽略li容器,因此我的一些列表项(每个列表项有多行)被拆分。https://www.w3schools.com/Css/css3_multiple_columns.asp
实际上,我希望能够找到中间的数据对象,并使用html / css对其进行划分。欢迎任何建议。
这是我的列表的一个例子,它显示了4个项目,列1将包含项目1和2,列2,3和4(实际的列表可以是任何长度):
5月1- 11 -7:30£POWERSTOCK THE HUT,DT6 3TB票房: 01935 873555 /网站门票:£10.00/£8.00
2013年10月2日--《贝德福德广场》票房: 01234 354321 /网站
10月14日-预览:贝德福德广场票房: 01234 354321 /网站
10月4日至18日-奇尔韦尔艺术中心比斯顿
发布于 2017-08-26 18:02:25
您需要一个自定义迭代器属性。您可以通过内核使用$First、$Last和$Middle,但是$Middle并不能满足大多数人的期望。它不是在中值迭代中返回true,而是介于第一次迭代和最后一次迭代之间的任何内容,这通常没有帮助。
class MyIteratorProperties implements TemplateIteratorProvider
{
protected $totalItems;
protected $pos;
public static function get_template_iterator_variables()
{
return ['Median'];
}
public function iteratorProperties($pos, $totalItems)
{
$this->pos = $pos;
$this->totalItems = $totalItems;
}
public function Median()
{
return $this->pos == floor($this->totalItems/2);
}
}和你的模板:
<% $loop $SomeItems %>
<% if $Median %></div><div ...><% end_if %>
<% end_loop %>https://stackoverflow.com/questions/45888727
复制相似问题