お世話になっております。
過去1年分のNewsリストを表示しているのですが、ページネーションがすべてのNEWSの数表示されてしまいます。
どのように修正したらよいか教えていただけないでしょうか
初心者で手づまりしております。
下記、現在のコードです。
<?php foreach ($pages as $page):
$title = $th->entities($page->getCollectionName());
$lastDate = $page->getCollectionDatePublic('Y.m.d');
$date1 = new DateTime();
$dateyear = $date1->modify('-1 year')->format('Y.m.d');
?>
<?php if($lastDate >= $dateyear ): ?>
<a href="">
<p><?php echo $title ?></p>
</a>
<?php endif; ?>
<?php endforeach; ?>
<?php if ($showPagination): ?>
<div id="pagination">
<div class="ccm-spacer"></div>
<div class="ccm-pagination">
<span class="ccm-page-left"><?php echo $paginator->getPrevious('« ' . t('Previous')) ?></span>
<?php echo $paginator->getPages() ?>
<span class="ccm-page-right"><?php echo $paginator->getNext(t('Next') . ' »') ?></span>
</div>
</div>
<?php endif; ?>
<?php endforeach; ?>
@reo1995 ブロックの設定はどうなっていますか?
あと日本語で質問されているので、日本語カテゴリの下に移動させてもらってもいいでしょうか?
ご返信ありがとうございます。
下記へ移動させていただきました。
https://forums.concretecms.org/t/news-2/3449
ブロックの設定のスクショも載せております。(認識間違っていたらご指摘くださいませ)
よろしくお願い致します。
@reo1995
下記へ移動させていただきました。
あ、すいません。
私がここのフォーラムの管理人なので、この記事自体を移動させることができるので、
アクションは不要です。
記事のカテゴリを移動しました。
重複で作成された記事を削除して良いですか?
設定もありがとうございます。
ご利用の Concrete CMS のバージョンっていくつでしょう?
古いレガシー版の Concrete を使われているようですね。
新しい最新の Concrete であれば、ブロックに日付を絞り込んで表示させるという機能がデフォルトついています。
可能であれば、最新版にサイトを引越しをするのが良いのですが・・・。
ページ数はどれくらいありますか?
view.php ではなく、controller.php の方のカスタマイズをしなくてはいけなく・・・。
本当であれば、昔は、それを簡単に実現できる Page List + というパッケージもあったのですが、古いバージョンはサポートを停止しているために、パッケージの配布をやめています。
ご返信ありがとうございます。
重複した記事は削除して問題ございません。
バージョンは5.6.2.1になります。
サーバーの関係上、バージョンアップが現状は不可でして、
何かいい方法はないでしょうか。。
そうですね・・・。
controller.phpをオーバーライドし
$pl = new PageList();
の宣言の後ぐらいに
$dateFrom = '2022-01-01';
$pl->filterByPublicDate($dateFrom, '>=')
$dateTo = '2022-12-31';
$pl->filterByPublicDate($dateTo, '<=')
を追加すると、2022年1月1日〜12月31日のニュース一覧が絞り込みで表示されると思います。
古いレガシーのバージョンで、僕も手元にそのバージョンがなかったので、日付の変数を Unixtime でしなきゃいけなかったのか、この形式でよかったのか忘れちゃったんですが・・・一度試してみてください・・・
本当だと、サーバーを新しくして、バージョンアップをしてほしいです・・・
追記です。
controller.php にさきほどのオプションを追加すると、
ページリストブロック全てが1年間の間にしか表示されなくなるので、
今あるページリストブロックのオプションを活用して、ここの日付絞り込み部分の適用・非適用をすることになると思います。