>  기사  >  백엔드 개발  >  还是ecshop问题:smarty里的 iteration 如何才能从2开始

还是ecshop问题:smarty里的 iteration 如何才能从2开始

WBOY
WBOY원래의
2016-06-23 14:01:37840검색


//iteration 默认是从1开始
{$smarty.foreach.pro.iteration}

//如果我想从11开始应该怎么写?
{$smarty.foreach.pro.iteration + 10?}


不要用这样的 if 判断的 {if $smarty.foreach.pro.iteration = 1}2{/if}

能否在   ?


回复讨论(解决方案)

可以加个start 
修改 includes\cls_template.php 里面的 foreach 处理方法,找到 
function _compile_foreach_start($tag_args)
在里面的输出之前添加一个
$i = $attrs['start'] ? $attrs['start'] : 0; //by neo

下面的if里面加入 $i++
if (!empty($name))
{
$foreach_props = "\$this->_foreach['$name']";
$output .= "{$foreach_props} = array('total' => count(\$_from), 'iteration' => 0, 'i' => {$i});\n";
$output .= "if ({$foreach_props}['total'] > 0):\n";
$output .= "    foreach (\$_from AS $key_part$item):\n";
$output .= "        {$foreach_props}['iteration']++;\n";
$output .= "        {$foreach_props}['i']++;\n"; //by neo
}

start=2 试试

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.