我有一个if语句,它位于每个循环的末尾,用于添加|生成的无序列表末尾的字符。
我的目标是添加|在“不是最后两个”之后。
<?php if (! $_link->getIsLast()):?>|<?php endif;?>
我希望我可以在getIsLast或getIsFirst函数中输入一个值,如下所示:
<?php if (! $_link->getIsLast(2)):?>|<?php endif;?>
我希望上面的陈述会添加|每个生成的列表项的字符除了最后两个。但是,它似乎没有起作用。
有没有人知道做这样的事情的正确语法?
每个循环的内容如下:
<ul class="links pull-right"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>>
<?php foreach($_links as $_link): ?>
<?php if ($_link instanceof Mage_Core_Block_Abstract):?>
<?php echo $_link->toHtml() ?>
<?php else: ?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php endif;?>
<?php if (! $_link->getIsLast()):?>|<?php endif;?>
<?php endforeach; ?>
</ul>
答案 0 :(得分:1)
试试这个。
<ul class="links pull-right"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>>
<?php
$numberOfRows = count($_links);
$currentIndex=0;
foreach($_links as $_link):
?>
<?php if ($_link instanceof Mage_Core_Block_Abstract):?>
<?php echo $_link->toHtml() ?>
<?php else: ?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php endif;?>
<?php if ($currentIndex<$numberOfRows-2):?>|<?php endif;?>
<?php
$currentIndex++;
endforeach; ?>
</ul>
|