私は問題に直面しています。foreach
PHPでループを構築しました:
<?php $show = false; ?>
<?php foreach ($this->items as $item) : ?>
しかし、最初の 20 項目をエコーし、次の 16 項目を続けたいと思います。
20 個のアイテムの後にブレークすることはできましたが、次の 16 個のアイテム ( nr 21 から開始) を取得できません。
これは私がこれまでに持っているものです:
<?php $show = false; ?>
<?php $i = $item->id = 1; ?>
<?php foreach ($this->items as $item) : ?>
<?php if(++$i > 20) break; ?>
私がそれに設定$i
した'21'
場合でも、アイテム1などをエコーします。
解決策 ## @dhavald に感謝
<?php $show = false; ?>
<?php foreach (array_slice ($this->items, 0, 20) as $item) : ?>
foreach に を配置することarray_slice
で、表示するアイテムを制御できます。次の div では、アイテム 21 から 36 を表示したいのですが、変更する必要があったのは、0 と 20 を , 20, 36 に変更することだけでした。
探しているものを明確にするために、いくつかの項目をエコーしたい 3 つの div があります。ユーザーが最初の div を折りたたむと、最初の 20 項目が表示され、ユーザーが div2 をクリックすると、次の 16 項目が表示されます。
このコードを修正してそれを実現するにはどうすればよいですか?
言及するのを忘れていたように、あなたがもたらしたソリューションはプロセスを本当に理解するのに役立ちましたが、Joomla 3.1 のコンポーネントジェネレーターを使用したため、最初の 20 と 2 番目の 16 を呼び出すのが少し複雑になるコード行が 1 つあります。アイテム。
foreach ループの直後に、次のコード行があります。
if($item->state == 1 || ($item->state == 0 && JFactory::getUser()>authorise('core.edit.own',' com_ncitycatemus.vraagantwoordtoevoegen.'.$item->id))):
$show = true;
ループよりもどうすれば管理できますか?それとも別の方法を提案しますか?
前もって感謝します!ループを理解するのに本当に役立ちました!!