ページごとの項目を制限できるように変更する必要がある単純なニュース システムがありますが、これを行うものがないため、自分で行う必要があります。
基本的に、関数はフラット ファイルの配列全体を表示するだけで、1 ページあたり 3 項目に制限したいと思います (構成可能)。
私の開始ロジックは次のとおりです。
$itemspage=pages->current_page;
$itemsperpage=3;
$limitn=$itemperpage*$itemspage;
$itemindex=$limitn-2;
ページが 1 の場合、配列インデックス 1,2,3 からのニュースが表示されます。ページが 2 の場合、配列インデックス 4,5,6 からのニュースが表示されます...
これは論理的には機能すると思いますが、配列内のニュースを 3 つに分割できない場合はどうなりますか? このロジックでは、(少なくとも開始インデックスで) バグが発生するはずです。
コード全体は次のとおりです。
$list = $this->getNewsList();
$pages = new Paginator;
echo "<table class='newsList'>";
foreach ($list as $value) {
$newsData = file($this->newsDir.DIRECTORY_SEPARATOR.$value);
$newsTitle = $newsData[0];
$submitDate = $newsData[1];
unset ($newsData['0']);
unset ($newsData['1']);
$newsContent = "";
$itemspage=pages->current_page;
$itemperpage=3;
$limitn=$itemperpage*$itemspage;
$itemindex=$limitn - 2;
foreach ($newsData as $value) {
$newsContent .= $value;
}
echo "<tr><th align='left'>$newsTitle</th>
<th class='right'>$submitDate</th></tr>";
echo "<tr><td colspan='2'>".$newsContent."<br/></td></tr>";
}
echo "</table>";
for はまだ行われておらず、分割の背後にあるロジックのみです。私たちを手伝ってくれますか?