ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月17日 at 20:57

本日の関西UG勉強会でページを更新日の降順で表示する方法はないかという質問が出ましたので
カスタムテンプレートで実現してみました。
ルートのblocksフォルダ内に page_list/templates フォルダを作成し、解凍してできたフォルダをそのままアップロードして下さい。
やっていることはusort関数を使って配列を並び替えた後で表示するというだけです。
「こんな方法があるよ」などご意見あったらお願いします。

タグ:

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月18日 at 10:31
aclissさん、昨日はありがとうございました。
そして早速作成いただいたファイルを使用したところうまくいきましたのでご連絡します!!

一箇所、そのままecho $page->cDateModifiedで呼び出すと年月日時分秒…と全部表示されてしまいました。
仕様どおりの動作なんですが…今回は年月日だけでいいので、いただきましたファイル内のコメントアウトしてあった$dataを利用して
//$date = date('F j, Y', strtotime($page->getCollectionDatePublic())); を
$date = date('Y年m日d日', strtotime($page->cDateModified));
にして、更新日をecho $dateでひっぱってくるようにカスタマイズさせていただきました。

usort関数…PHPはまだまだ勉強中の身ですので、とても参考になりました。
ありがとうございました:)
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月21日 at 22:10
acliss19xxさん

いつもありがとうございます。
今回は、すんなりインストゥールできたようです。

ですが更新日がオレンジで大きく表示されるのでこの項目についてのCSSを
調整するにはどうしたら良いのでしょうか?
教えてください。
 

Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月21日 at 22:59
view.php と view.css を変更すればいいのですが、
僕はhtmlやCSSは余り詳しくないので誰かお願いします。すみません。。。。。
ちなみにどのように変更したいか書かれるとアドバイスいただけるんじゃないかと思います。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月22日 at 21:48
acliss19xxさん

いつもありがとうございます。
単純に文字の大きさを小さくしたいだけです。
ポイント数を落としたいだけなので言われているview.phpとview.cssの
場所を探してみます。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月23日 at 7:09
ここにアップしているview.phpとview.cssファイルです。
view.phpの 59行目と 62行目の h3という文字を div という文字に変更すると小さくなると思います。正しいかどうか分かりません。

誰かアドバイスをお願いします。。。。。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月23日 at 20:59
aclies19xxさん

いつもありがとうございます。
いろいろ触ったので正解かどうかわからないのですが最後に触ったのが
サイト名/blocks/page_list/temlates/ModifiedDesc/view.php
の中の文字のサイズを落としたら、小さくなりました。

他も触ったのでこれだけで正解だったのかわかりませんが
参考までに。
ありがとうございました。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月30日 at 20:35
acliss19xxさん

すみません。
スレッドが間違っていたようですね。

更新日順のものですが入れてみたのですが
更新日順に並びませんでした。
変化が無いのです。

やり方がまずいのでしょうか?
「新規記事を最初に」という設定で良いのですよね。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年3月31日 at 6:08
カスタムテンプレートですので
並び替え順の設定はどれを選んでもいいです。
ブロック設置後ブロックメニューから
カスタムテンプレートを選択してください
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月18日 at 16:02
いつもお世話になっております。

こちらのテンプレートを使わせていただきたいと思いページリストに適用してみたのですが、
更新日順に並びません。
ページの並び替えのページ順で選択した順に並んでしまいます。

markfact 様と似たような状態だと思うのですが、
解決されていましたら、解決策をお教えください。

よろしくお願いいたします。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月18日 at 18:32
キャッシュかもしれません。

[管理画面→キャッシュのクリア]を実行してみてください。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月19日 at 10:53
ご回答ありがとうございます。

キャッシュのクリアは何度も行っているのですが変化がなかったので、
編集のページ数とタイプで[表示]を10→200にしてすべてのページが表示されるようにしたところ
更新日順に並びました。
その後、[表示]を10に戻すと元の順番に戻ってしまいました。

[表示]を10のままページの並び替えの[ページ順]を「新着記事を最初に」→「サイトマップ通りの並び」
に変更するとリスト表示に変化がありました。

たぶんですが、[ページ順]でソートして[表示]で指定された件数の中で
更新日順にソートされているのではないかと思います。

すべてのページの公開日時を同じにして「新着記事を最初に」にすればいいのかもしれませんが
あまり現実的ではないですよね・・・。

PHPが全くわからないのでどうしてよいのかわかりません。
申し訳ありません。
 

Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月19日 at 15:09
おっしゃるとおりです。ページリストのカスタムテンプレートではこの処理が限界だと思います。
 

Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月19日 at 15:53
ご回答いただきありがとうございました。
こういう処理をするものだということがわかってスッキリしました。

すべてのページ公開日を同じにして、acliss19xx様のカスタムテンプレートを使わせていただきます。
編集者(ライター)ユーザーに公開日時を変更してもらうという手順が省略できるので
更新日降順で自動的に表示されるのはとても便利だと思います。

今後ともよろしくお願いいたします。
 

Re: Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月20日 at 7:29
今気づいたのですが、concrete5 の 更新日は誤字脱字などを修正した場合も更新され、また更新日の修正はできないように思います。
ページリストに更新日順がないのもそのためかと勝手に推測しますが、ページリストブロックタイプで更新日順をするなら、新たにブロックタイプを作成するか、アドオンを探すことになりそうです。

更新日の修正はバージョン履歴管理の観点からも良くないと思われ、
公開日を変更するか、サイトマップで表示順を変更するか、ページ属性を使用して並び替えするかがいいのではないかと思います。
 

Re: Re: Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月24日 at 14:53
acliss19xx様、いつもありがとうございます。

元々は、ページ更新時に編集者にページ設定で公開日時を変更してもらおうと考えていたのですが、
ワークフローで行うと、編集モードで記事ブロック等の変更とページ設定の変更を行った場合に
一度に複数の承認申請が飛んでしまうという現象が起こっていて
今のところそれが解決できていないので、
http://concrete5-japan.org/community/forums/usage/post-6776/
更新の都度公開日時を変更させるのは避けたいと思っていたのです。

どうしても表示したくない場合は、「ページリストから除く」にチェックすればいいかなと考えています。
その場合、やはりページ設定を変更するので上記の現象が起こってしまうのですが・・・。


ということで、すべてのページの公開日時を同日同時刻に変更し
ページリストの表示件数を10、ページ順を「新規記事を最初に」としたところ
一番最後に更新したページが表示されませんでした。

試しに表示件数を200に変更したところ、この場合は更新日時の降順で正しく表示されたのですが、
件数を20にしたり5にしたりする度に表示される順番が異なりました。


ちなみに、「ページ属性を使用して並び替えする」というのはどのような感じでしょうか。
よろしくお願いいたします。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月26日 at 7:20
4154さん なるほど、そうなんですね。
ページ属性を使用して並び替えるのも同じように承認申請が飛びそうですし、
プログラミングが必要になります。
「更新日でソート」をチャレンジしてみますので、使われているconcrete5のバージョンを教えてください。
 

Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月26日 at 10:31
acliss19xx様、ありがとうございます!
よろしくお願いいたします!!

# concrete5 バージョン
5.6.1.2

# サーバーソフトウェア
Apache/2.2.22 (Win32) PHP/5.3.26

# サーバーAPI
apache2handler
 

Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月26日 at 12:04
作ってみました。
使用方法
解凍してできたフォルダを下記のとおりアップロードしてください。

page_listフォルダをルートのblocksフォルダにアップロード 
  ※concrete/blocksではないのでご注意を

models フォルダ内のpage_list.php を ルートのmodels フォルダにアップロード
  ※こちらもconcrete/modelsではないです。

ページリスとブロックの編集画面の[ページを並び替え]に「更新日降順」というのが追加されます。
そちらを選べばうまくいくと思います。

注意点
一切の動作保証はできません。必ずテスト環境で確認してご使用ください。
コア部分をオーバーライドしていますのでconcrete5をバージョンアップされる時は問題ないかチェックが必要です。
view.php は 更新日が表示されるようにしています。ページリストの標準で更新日が表示されるようになりますので、不必要なら変更・または削除を行ってください。
 

Re: Re: Re: ページリストで更新日の降順で表示するカスタムテンプレート

2013年9月26日 at 13:42
できました!!!
acliss19xx様、早急なご対応本当に本当にありがとうございます!

今後ともよろしくお願いいたします。