0

| を追加する for each ループの最後に if ステートメントがあります。生成された順序なしリストの末尾の文字。

私の目標は | を追加することです。「最後の2つではない」の後。

<?php if (! $_link->getIsLast()):?>|<?php endif;?>

次のように getIsLast または getIsFirst 関数に値を入力できることを望んでいました。

<?php if (! $_link->getIsLast(2)):?>|<?php endif;?>

上記のステートメントで | が追加されることを期待していました。最後の 2 つを除く、生成された各リスト項目の文字。ただし、機能していないようです。

このようなことを行うための適切な構文を知っている人はいますか?

for each ループは次のとおりです。

<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>
4

1 に答える 1

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>
| |
于 2013-04-14T23:46:47.167 に答える