picoで、サブカテゴリーを含めた最新文書を表示する(ブロック編)

●やりたいこと

picoで、サブカテゴリーを含めた最新文書を表示する」と同じような深いカテゴリツリーから最新の文書をN本取り出してリストしたい。

●現状

picoには「コンテンツ一覧」というブロックがあり、これを使えば実現できます。ただし、対象となるカテゴリーをすべて指定しなければなりません。ツリー全体で20を超えるサブカテゴリーがぶら下がっているカテゴリツリーもあるし、今後カテゴリを追加・削除するたびにこのブロックの設定を見直すことは忘れっぽい僕にはできそうにありません。

●解決策

picoで、サブカテゴリーを含めた最新文書を表示する」で作成したarchit_subcatsプラグインをすこし拡張して、呼び出す際に取得件数を渡せるようにしました。ブロックの中からこんな感じで呼べばいいわけです。簡単!

<{archit_subcats dirname='docs' cat_id='1' limit='5' item='subcats'}>
<{pico_list dirname='docs' cat_id="`$subcats`" order='o.created_time DESC' limit='5'}>

……と思ったら、カスタムブロックにはSmartyのコマンドを書けないんですね。新たにブロックを作成するとxoops_version.phpの編集が発生してしまうし、どうしたものか……と検索してみたら、picoを使って見事に回避している例がありました。

注文の多いXOOPS屋 - Smartyタグを使えるカスタムブロック

要するに

  1. picoでブロックの内容をSmarty文書として作成する
  2. 任意のpico文書をブロック化できる「コンテンツ内容」ブロックを複製し、1で作った文書を読み込む

ということ。頭いい!さっそく真似させていただきました。紹介したブログではブロック専用のpicoモジュールを複製していますが、面倒なので新たにカテゴリを作ってそこに文書を作成しました。


友達に伝える
タグ: XOOPS pico
作成: 2013/9/18 by:webmaster
更新: 2013/11/19 by:koji


XOOPSのDB接続だけを使う

Tech

picoで、サブカテゴリーを含めた最新文書を表示する

新規ユーザー登録(無料)

  • メールニュース[週刊起-動線]の購読
  • コメントなどの投稿
  • ココロミの利用
  • 一部コンテンツの購読

ログイン

コメント

タグ(キーワード)