Создайте 2 отдельных случайно сгенерированных баннера, используя статические блоки PHP и Magento

Есть ли способ отобразить 2 баннера (без дублирования одного и того же баннера?) Другими словами, я не могу просто повторить код "эхо", потому что тогда он может случайным образом выбрать один и тот же баннер дважды. Есть ли способ сделать массив из 2 случайно выбранных баннеров?:

<?PHP
$collection = Mage::getModel('cms/block')->getCollection()
    ->addFieldToFilter('identifier', array('like'=>'ROMM-RFBanner_%'))
    ->addFieldToFilter('is_active', 1);
$blockCount = $collection->count();

echo ('<div class="footer-banner-boxes row clearfix">');
echo $this->getLayout()->createBlock('cms/block')->setBlockId('ROMM-RFBanner_'.mt_rand(1, $blockCount))->toHtml();
echo $this->getLayout()->createBlock('cms/block')->setBlockId('ROMM-RFBanner_'.mt_rand(1, $blockCount))->toHtml();
echo ('</div>'); ?>

1 ответ

Решение

Насколько я знаю, вы можете использовать

$collection->getSelect()->order(new Zend_Db_Expr('RAND()'));
$collection->getSelect()->limit(2);

Или только с PHP (хотя и не элегантно) вы можете прочитать это, чтобы использовать $first_id = mt_rand(1,$count) а затем исключить $first_id из второго вызова mt_rand(), прочитав Как получить случайное значение из 1~N, но исключая несколько конкретных значений в PHP?

Другие вопросы по тегам