ページリストの表示について

2016年3月15日 at 16:05

バージョン5.7.5.2、エレメンタルで使用しているのですが

ページリストブロック内の日付で時間を消して日付のみ表示させる事は可能でしょうか?

あと、ページリストブロック内の表示がページタイトルの下に日付が表示されてしまうのですが、これを反対にしたりはできますでしょうか?

すごく初歩的な質問ですみませんが、よろしくお願いします。

タグ:

Re: ページリストの表示について

2016年3月16日 at 1:34
まず、カスタムテンプレートでやったほうがいいですね。

application/blocks/にpage_list/templatesとなるようにディレクトリ作って
concrete/blocks/page_listの中にあるview.phpをtemplatesに入れて適当に名前を変えてください。
view.php ⇒ sample.php

53行目付近にあると思われる
$date = $dh->formatDateTime($page->getCollectionDatePublic(), true);
これを
$date = $page->getCollectionDatePublicObject()->format('Y/m/d');
このようにすると日付の表示が変わると思います。

上下の入れ替えは110行目くらいに$titleと$dateというのがあるのでそれが表示部分になります。
この位置をいじれば変わります。

最後にこのいじったカスタムテンプレートを当ててください。
 

Re: ページリストの表示について

2016年3月16日 at 20:14
無事にできました。

ご丁寧にありがとうございました。助かりました。
 

Re: ページリストの表示について

2016年9月29日 at 20:11
横からすみません。 ご指示のように書き換えたのですが・・・最後の一文
「最後にこのいじったカスタムテンプレートを当ててください。」 の意味が理解できずにおります。初心者ですみません。どのようにすればよいのでしょうか。
 

Re: ページリストの表示について

2016年10月1日 at 13:42
編集モードで該当ブロックをクリックしてにょろっと出てくる中の
「デザイン&カスタムテンプレート」から作ったファイルを選ぶということですね。

上記の説明のままだとview.phpをsample.phpにしているので、
Sampleというのが表示されると思います。
 

Re: ページリストの表示について

2017年6月9日 at 13:38
横から申し訳ありません。
-----
$date = $dh->formatDateTime($page->getCollectionDatePublic(), true);
これを
$date = $page->getCollectionDatePublicObject()->format('Y/m/d');
-----
を参考にさせていただいて、ページリストの表示をさわりました。

$date = $page->getCollectionDatePublicObject()->format('Y年m月d日(D)');


としたのですが、(金)ではなく(Fri)と表示されます。
日本語表記の曜日にするにはどうしたら良いのでしょうか?
よろしくお願いいたします。
 

Re: ページリストの表示について

2017年6月9日 at 13:48
横から申し訳ありません。
-----
$date = $dh->formatDateTime($page->getCollectionDatePublic(), true);
これを
$date = $page->getCollectionDatePublicObject()->format('Y/m/d');
-----
を参考にさせていただいて、ページリストの表示をさわりました。

$date = $page->getCollectionDatePublicObject()->format('Y年m月d日(D)');


としたのですが、(金)ではなく(Fri)と表示されます。
日本語表記の曜日にするにはどうしたら良いのでしょうか?
よろしくお願いいたします。
 

Re: ページリストの表示について

2017年6月9日 at 21:33
$day = $page->getCollectionDatePublicObject()->format('Y-m-d');
$datetime = new DateTime($day);
$week = array("日", "月", "火", "水", "木", "金", "土");
$w = (int)$datetime->format('w');

これを適当な場所に追加で記載して

$date = $page->getCollectionDatePublicObject()->format('Y年m月d日(' . $week[$w] . ')');

とすればできますね。
 

Re: ページリストの表示について

2017年6月9日 at 22:13
akiさん
ありがとうございます!
やってみます!
 

Re: ページリストの表示について

2017年6月9日 at 22:24
もしくは・・・

特に日付のフォーマットを何度も使う必要がなければ、
以下でもいけると思います。

$c = Page::getCurrentPage();
$pagedate = $c->getCollectionDatePublic();
$day = date('w', strtotime( $pagedate ));

$date = $c->getCollectionDatePublicObject()->format('Y年m月d日(' . $week[$day] . ')');

相変わらず、未検証ですが・・・

参考
http://documentation.concrete5.org/api/class-Concrete.Core.Page.Page.html
 

Re: ページリストの表示について

2017年6月12日 at 9:33
akiさん
遠藤さん
ありがとうございました!
お二方にいただいたお知恵を組み合わせて

ページリストのview.phpに

$pagedate = $c->getCollectionDatePublic();
$day = date('w', strtotime( $pagedate ));
$week = array("日", "月", "火", "水", "木", "金", "土");

を追加し、$dateの部分は

$date = $c->getCollectionDatePublicObject()->format('Y年m月d日(' . $week[$day] . ')');

とすることで「(月)」の表示ができるようになりました。

あ、ちなみにconcrete5.8.1.0です。
どなたかの参考になりますように…

【追記】
あ…うまくいっていませんでした。。。
違う日が表示されています。

なかなかうまくいかなかったのですが、結局最終的に…

$day = $page->getCollectionDatePublic();
$datetime = new DateTime($day);
$week = array("日", "月", "火", "水", "木", "金", "土");
$w = (int)$datetime->format('w');
$date = $page->getCollectionDatePublicObject()->format('Y年m月d日');

と記述して、出力するところの「<?php echo $date ?>」を

<?php echo $date ?>(<?php echo($week[$w])?>)

としたらうまくいきました!