メニュー

Home >freoプラグイン>エントリー系プラグイン> エントリーカテゴリー表示プラグイン

【freoプラグイン】【エントリー系プラグイン】エントリーカテゴリー表示プラグイン

2012/06/02 13:08|タグ:エントリーカテゴリー表示プラグインエントリーグッジョブ表示 94

freoのエントリーをカテゴリー別に一覧表示するプラグイン。
(当サイトのEntryで使用しています。)

特徴

・カテゴリーを一覧表示する。
・カテゴリーに登録されているエントリーを一覧表示する。
・エントリーの表示件数を設定できる。
・エントリーの表示順を設定できる。

ライセンスについて

ライセンスはGNU General Public License (GPL)です。

ダウンロード

導入方法

  1. 上記ファイルをDLして解凍する。
  2. [configs][libs][templates]フォルダをアップロード
  3. [freo/index.php/setup]にアクセスしてパーミッションを設定する。
  4. [freo/configs/plugins/entry_category.ini]のパーミッションを606に設定する。
  5. [freo/templates/internals/default/default]フォルダ[default.html]の79行目あたり(<!--{foreach from=$entries|smarty:nodefaults item='entry'}-->の直前)に以下のように記述する。
    <h2>カテゴリー別エントリー一覧</h2>
    {include file='entry_category.html'}
    <div id="page">
    <h6>ページ移動</h6>
    <ul class="order">
    <li><!--{if $freo.query.page > 1}--><a href="{$freo.core.http_file}/?page={$freo.query.page-1}">前のページ</a><!--{else}-->前のページ<!--{/if}--></li>
    <li><!--{if $plugin_entry_category_page > $freo.query.page}--><a href="{$freo.core.http_file}/?page={$freo.query.page+1}">次のページ</a><!--{else}-->次のページ<!--{/if}--></li>
    </ul>
    </div>
  6. default.html[freo/templates/internals/default]フォルダにアップロード。
  7. [管理メニュー][システム][設定管理][エントリーカテゴリー表示]で表示の昇順・降順を選択、表示件数を設定。

更新履歴

2011/06/02 プラグイン公開・配布開始
2013/11/12 テンプレート・フォルダの階層を修正。
2013/11/15 テンプレートを修正。
2013/11/17 mysqlでfreo利用時に表示されていたエラーを改善。
config.entry_category.php及びdisplay.entry_category.phpをアップデートしてください。
2014/05/07 entry_category.htmlを修正。
2015/07/10 制限されたエントリーを一覧に表示しないようにアップデート。
Config.entry_category.php及びdisplay.entry_category.phpをアップデートしてください。
2015/07/14 エントリーに閲覧制限がかかっていた場合に理由が表示されるようにテンプレートを更新しました。
config.entry_category.php及びentry_category.htmlをアップデートしてください。

    

ページ移動

関連エントリー

コメント

あき

こんにちは。こちらのプラグインを使用させていただきたいと思います。
質問ですが、独立したページを用意してこちらのプラグインを表示したいのですが、どのように設置すれば良いでしょうか。
虹色ミツバチさんのEntryページのようにメニューからリンクを張るかたちにしたいのです。
全く急いではおりませんので、お時間のあるときでも宜しくお願いします。m(_ _)m

  • 2012/11/16 01:54:48

ミツ@32877

コメントありがとうございます。
当サイトのプラグインのご利用をご検討されているとのこと、とてもうれしいです。

さて、独立したページで使用したいというのは、どういう意味でしょうか?
freoの機能でページ機能という機能がありますが、ページ機能を使って新規に作成したページ上で、エントリーをカテゴリーごとに表示したいということでしょうか。
だとすると、このプラグインはページ上でエントリーの情報を取得するために作られたものではないので、ご利用いただくことができません。

もし、当サイトのように、エントリー一覧画面([freo/index.php/entry]画面)でエントリーをカテゴリー表示したいというご要望でしたら、まずは、エントリー画面とデフォルト画面を切り離す作業が必要です。
freoの標準のテンプレートでは、[freo/index.php]を表示すると、エントリーが一覧表示されます。
この、[freo/index.php]を私はデフォルト画面と呼んでいます。
なぜなら、[freo/index.php]は、実は[freo/index.php/default]という画面なんだけれど、[default]という文字が省略されているだけであるからです。
標準の状態だと、[freo/index.php/entry]を表示したときも、エントリーが一覧表示されると思います。
これは、[freo/templates/internals]フォルダの中の[entry]フォルダに[default.html]というテンプレートが無かった場合、[freo/index.php/entry]という画面を表示しようとすると、[freo/index.php]画面を表示してしまうからです。
詳しくは、freo公式の内部構造の解説ページ(http://freo.jp/document/system/index.html)の動作モードについてと読み込まれるテンプレートについてを読んでみてください。

さて、まずは[freo/index.php]つまりデフォルト画面と、[freo/index.php/entry]画面を切り離します。
[freo/templates/internals/default]フォルダをコピーして、[freo/templates/internals]フォルダにペーストして、フォルダ名を[entry]にリネームしてください。
こうすることで、[freo/index.php/entry]つまりエントリー一覧画面を表示したときは、[freo/templates/internals/entry/default.html]が読み込まれて表示されるようになりました。
さて、このエントリー一覧画面でエントリーをカテゴリーごとに一覧表示したい場合は、親記事の導入方法の5を[freo/templates/internals/entry/default.html]で実装する必要があります。
[freo/templates/internals/entry/default.html]の79行目に、導入の5番目の項目に記載しているソースをコピペしてみてください。

そうしてテンプレートをアップデートすると、エントリーがカテゴリー表示されると思います。
尚、表示件数は管理画面→設定管理→エントリーの設定で設定するエントリーの表示件数に左右されることになると思います。

結構前に作ったプラグインなので改良しなければならない箇所があると思うのでそのうちもっと簡単に設置したり設定したりできるように改良版をupするかもしれません。
わからないことがあればまたご連絡ください。

  • 2012/11/16 13:27:11

あき

お忙しいところ、返信をありがとうございました。
なるほど、[/entry/default.html] を参照しているのですね!
[freo/templates/internals/entry/default.html] はカスタマイズして導入済みですので、上記導入方法の「(<!--{foreach from=$entries|smarty:nodefaults item='entry'}-->の直前)に以下のように記述する。」の通りに記述しましたところ、望み通り表示することができました。あとはメニューにこのリンク [/freo/index.php/entry] を張って目次としました。
私ごとですが、作品の管理に「ページ」ではなく「エントリー」を使用しております。ですのでこちらのプラグインは閲覧してもらうための目次一覧として最適でしたのでぜひ導入したいと考えておりました。大変便利なプラグインをありがとうございます。
教えていただいた公式の「内部構造の解説」も読んで、読み込まれるテンプレートについてもこれからじっくり確認したいと思います。
私の説明不足にもかかわらず、丁寧な解説をありがとうございました。m(_ _)m

  • 2012/11/18 23:31:19

名無し

こんにちは。「エントリーカテゴリー表示プラグイン」を設置させていただいたのですが、カテゴリーは表示されるのですが、
カテゴリー内のエントリー(のタイトル)がなぜか表示されません。
一日中考えてたのですが、カテゴリー一覧が表示できてなぜエントリー一覧が表示されないのか
どうしてもわからないので、考えられる原因を教えていただけませんでしょうか?
お忙しいところ大変恐れ入りますが宜しくお願い致します。

  • 2013/11/12 18:59:00

ミツ@32877

カテゴリー内のエントリー一覧が表示されないということですが、該当箇所をブラウザで見た時のHTMLソースとテンプレートにどう書いてあるか見ないことには正確にお答えできかねますが、思いつくところをいくつか記載しておきます。

【1】表示件数が正しく設定されていない

エントリー表示件数の設定はどうなってますか?
どの画面でエントリーをカテゴリー別に表示しているかによって設定する項目が違います。

(1)freo/index.php/default 画面でエントリーをカテゴリー別に一覧表示している場合
[管理画面][設定管理][プラグインの設定][エントリーカテゴリー表示]の表示件数
(2)freo/index.php/entry 画面でエントリーをカテゴリー別に一覧表示している場合
[管理画面][設定管理][表示設定][エントリーの1ページの表示件数]

上記の箇所の設定を確認してください。

【2】テンプレートの読み込みが正しく記述されていない

エントリーカテゴリー表示プラグイン利用部分のうち、カテゴリーを一覧表示すること部分は、freoにデフォルトで組み込まれているカテゴリー表示プラグインを利用していますが、カテゴリー内のエントリーを一覧表示する部分は、エントリーカテゴリー表示プラグインで管理しているので、その部分の記述がおかしいのだと思います。

[freo/templates]フォルダに、entry_category.htmlは正しくアップロードされていますか?
もう一度確認して下さい。

【3】エントリーに閲覧制限はかかっていませんか?

エントリーに閲覧制限がかかっていると、エントリータイトルを表示できないことがあります。
エントリーに閲覧制限がかかっていないかどうか確認してください。

上記の3箇所を確認してもタイトルが一覧表示されない場合、設置URLを記載の上もう一度お問い合わせ下さい。

  • 2013/11/12 19:12:44

名無し

早速ご回答ありがとうございます。
ちなみに作成したのは↓なのですが

http://test.dust.jp/index.php/entry

【1】「エントリーの1ページの表示件数」は「1」で設定しており、その通り1ページ1件で表示されております。

【2】defaultをコピーしてentryフォルダを作って、entryフォルダ内のdefault.htmlを少しいじって(インフォメの内容が表示されないように削除、ページ移動が重複で表示されるので片方を削除)表示させたものが上記URLになります。

【3】エントリーに閲覧制限はかけていません。

確認してみたのですが、表示されないので、お忙しいとことお手数ではございますがご教授お願い致しますm(_ _)m

  • 2013/11/12 19:45:11

ミツ@32877

ご連絡ありがとうございます。

【1】で確認していただいた、エントリーの1ページの表示件数が1件だと、タイトルリストは表示されないと思います。
ためしに、100件とかにしてみてください。

http://test.dust.jp/index.php/entry?page=1&date=20131112

ここを見ると、エントリータイトルが1件のみ表示されています。
テンプレートはちゃんと動いているみたいなので、あとは表示件数との兼ね合いかなーと思います。

  • 2013/11/12 19:54:57

名無し

こんにちは。たびたび申し訳ございません。
100件にしてみたのですが、
http://test.dust.jp/index.php/entry
上記URLだとやはりエントリーの一覧が表示されません…
何か変にいじってしまったのかと思いまた再インストールしてサンプルを作ってみたのですが、どうやっても表示できないので再度質問させて頂きました。
でもentryのあとに ?page=1&date=20131112 と付けると確かにエントリーの一覧が表示されます。
他になにか考えられる原因がありましたら教えて下さい。
宜しくお願い致します。

  • 2013/11/12 23:06:37

ミツ@32877

テンプレートを修正してアップデートしたので、お手数ですが1.0.2バージョンを再度DLの上アップロードいただけますか?
何度もお手数をおかけして申し訳ありませんがよろしくお願い致します。

  • 2013/11/12 23:24:19

名無し

こんにちは。何度も何度もすみません…
新しいバージョンをすべて上書きしてみましたが表示されませんでした…
管理者用の設定はデフォルトのままで特にいじってません。
entryフォルダ内のdefault.htmlをいじってしまっているのがいけないのでしょうか?
なにかまずいものを削除してしまってるのでしょうか?
何度も質問ばかりしていて大変恐縮なのですが、もしなにか原因がわかりましたら教えていただけますと幸いです…

  • 2013/11/12 23:46:37

ミツ@32877

templates/internals/entry/default.htmlのなにがいけないのかはテンプレートを見てみないとわかりません…。
差し支えなければメールでテンプレートを送ってみて下さい。
何分こちらで状況の再現ができないので…。
日付が入ってるとカテゴリーごとに表示されてるのと、同じテンプレートを使っても当方の環境だとカテゴリーごとに表示されてるので、なにがいけないのかすぐに思いつかない状況です。
お役に立てず申し訳ありません。

  • 2013/11/12 23:54:23

ミツ@32877

あ、いまさら気づいたんですけど、

[管理画面][設定管理][エントリーの設定]で[エントリー表示の初期値]はどうなってますか?
また、各エントリー記事のエントリー表示の初期値設定はどうなっていますか?

エントリーは初期画面(entry画面)に表示するかどうかを選択できます。
初期画面に表示しないを設定している場合はentry画面では表示されません。

各記事の設定を確認し、また、今後いちいち設定しなくていいように設定画面で初期画面に表示するかどうか設定しなおして下さい。

  • 2013/11/13 01:37:41

名無し

こんにちは。ご回答頂いたのにお礼遅れてすみません…
entryのテンプレートをdefaultに戻して79行目の直前に例のソースを記述しただけの状態にして、更に「エントリー表示の初期値」を「表示する」にしたのですが、やっぱり症状は変わりませんでした…
ちょっとあきらめます…何度も何度もお手数をお掛けして申し訳ございませんでしたm(_ _)m

  • 2013/11/15 14:34:21

ミツ@32877

えっと、ちゃんとお伝えできているか自信がないのでもう一度だけレスしますね。

[管理画面][設定管理][エントリーの設定]で[エントリー表示の初期値]だけを変えても、現在登録されているエントリーそれぞれの、「エントリー表示」の登録内容は変更になりません。
もし、[管理画面][設定管理][エントリーの設定]で[エントリー表示の初期値]を「表示する」に変更したなら、今まで登録したエントリーの「エントリー表示」の登録内容は「初期画面に表示しない」になっている可能性があります。
[管理画面][エントリー管理]から今まで登録したエントリーを編集するを開いて、「エントリー表示」の部分が「初期画面に表示しない」になっていないかどうか確認して、「初期画面に表示する」に変更してください。

日付を入れれば表示されてカテゴリーで検索しても表示されるのにエントリー画面でのみ表示されないというのは多分そこが引っかかってるんだと思うんですけど、もし上記の確認・変更をしていただいてそれでもダメなら私もホントお手上げです…。
何度も申し訳ありませんし同じ内容を繰り返しお伝えしてしまって本当に申し訳ないのですが、最後にもう一度だけ試してみて下さい。
よろしくお願いします。

  • 2013/11/15 14:49:11

名無し

こんにちは。「初期画面に表示する」に変更しましたら無事ちゃんと表示させることができました。どうもありがとうございます。お礼が遅くなってしまい申し訳ございませんでしたm(_ _)m

また別のご質問で大変恐縮なのですが、各ガテゴリーをクリックすると、その子タイトルが表示されるようにしたいのですが、同じようにcategryフォルダを作りdefault.htmlを置いてみたのですが、子のタイトルリストが表示できません。
ミツ様のサイトのように例えばfreoTIPSをクリックするとタイトルの一覧のみが表示されるようにするにはどうすればよいか教えていただけませんでしょうか?
すみませんが宜しくお願いします。

  • 2013/11/23 21:38:22

ミツ@32877

無事に表示されたようでよかったです。
カテゴリー画面でタイトルの一覧を表示する方法を書いておきました↓
http://32877.xii.jp/index.php/view/158

カテゴリー画面でタイトルの一覧を表示すること自体は特別なプラグイン等は使わずにテンプレートを書き換えるだけでできる編集なので、よろしければ↓を参考に編集方法などを考えてみてください。
http://32877.xii.jp/index.php/category/freo/lesson
「初心者のためのfreoテンプレート編集講座」

  • 2013/11/23 22:51:58

ゆたか

初めまして。突然のコメント失礼致します。
現在、freoでサイトの構築をしており、こちらのテンプレートとエントリーカテゴリー表示プラグインを利用させていただこうと導入しております。

それで、「虹色ミツバチ」様の「Entry」の表示のように、
親カテゴリ名と子カテゴリ名のテキスト装飾を変更したいと、色々と調べているのですが、どうにも上手くいきません。

例えば「カテゴリA」には<h2></h2>を適用させ、その子カテゴリ「カテゴリA-a」には<h3></h3>を適用させて変化をつけたいのですが、表示してみるとどちらのカテゴリ名にも<h2>が適用されて、おかしな表示になってしまいます。

このように、カテゴリ名のテキスト装飾などをそれぞれ変更するにはどのあたりを弄れば良いでしょうか・・・。
色々とこちらのtips含めて読みながら、ああでもないこうでもないとやっているのですが、どうしても上手くいきません。

また、こちらのプラグインで、エントリータイトルとあわせて
サムネイル画像を表示することはできるものでしょうか?

お忙しいところ大変申し訳ないのですが、お手すきの際にでも
どのあたりを弄ればいいか、ヒントなどいただけないでしょうか。
本当にお暇な際で結構ですので、よろしければご教示願えますと幸いです。

  • 2015/01/30 16:29:44

ミツ@32877

こんにちは。
質問ありがとうございます。

【プラグイン系TIPS】エントリーカテゴリー表示プラグインでカテゴリーの階層ごとにスタイルを変更してみる。
http://32877.xii.jp/index.php/view/253

をUPしましたので参考にしてください。

また、本プラグインで、エントリーイメージ、エントリーファイル、エントリーファイルのサムネイルを表示することができます。
本プラグインの変数一覧は未制作・未検証なので、多分ですが、

<!--{if $entry.file and $entry.image}-->
<p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_images/{$entry.id}/{$entry.image}" alt="{$entry.memo|default:$entry.file}" title="{$entry.memo|default:$entry.file}" width="{$entry_images[$entry.id].width}" height="{$entry_images[$entry.id].height}" /></a></p>
<!--{elseif $entry_thumbnails[$entry.id]}-->
<p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_thumbnails/{$entry.id}/{$entry.file}" alt="{$entry.memo|default:$entry.file}" title="{$entry.memo|default:$entry.file}" width="{$entry_thumbnails[$entry.id].width}" height="{$entry_thumbnails[$entry.id].height}" /></a></p>
<!--{elseif $entry.file and $entry_files[$entry.id].width and $entry_files[$entry.id].height}-->
<p><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}" alt="{$entry.memo|default:$entry.file}" title="{$entry.memo|default:$entry.file}" width="{$entry_files[$entry.id].width}" height="{$entry_files[$entry.id].height}" /></p>
<!--{elseif $entry.file}-->
<p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}">{$entry.memo|default:$entry.file}</a></p>
<!--{/if}-->

でOKなはずです。
出来なかった場合は教えて下さい。

  • 2015/01/30 19:30:08

ゆたか

失礼致します。先ほど投稿しましたゆたかです。
お忙しい中、しかもこんなに早く丁寧なご説明をいただき
ありがとうございます!
早速試してみましたら、理想どおりの表示になりました。

イメージの表示も、お教えいただいたもので
表示できました!
思い切って質問させていただいて本当に良かったです。

これからも、こちらのサイト様で色々と勉強し、カスタマイズしていけたらと思っています。

この度は、貴重なお時間をいただき本当にありがとうございました。

  • 2015/01/30 21:39:05

kazu

いつもお世話になっております。

【freoプラグイン】【エントリー系プラグイン】エントリーカテゴリー表示プラグインを使わせていただき、無事に設置できました。

権限の設定がグループ、もしくはパスワードで設定されているエントリーの表示が「権限がありません」とでます。

これを権限を持っていない人は何も表示しない設定にしたいのです。

お忙しいところ申し訳ありませんが、よろしくお願いいたします。

  • 2015/07/06 11:53:56

ミツ@32877

こんにちは。
制限されたエントリーが表示されないようにアップデートしました。
config.entry_category.php及びdisplay.entry_category.phpをアップデートして、お試し下さい。

  • 2015/07/10 11:18:57

kazu

お忙しい中、アップデートありがとうございます。
設置したところ、グループの制限は非表示になりましたがパスワードの制限は表示されたままでした。
パスワード制限も非表示にしたいのですが、急いでおりませんので、お時間あるときにでも教えていただけると助かります。よろしくお願いいたします。

  • 2015/07/10 23:25:18

kazu

大変申し訳ないのですが、2015/07/06 11:53:56の投稿に表示されると思わず、メールアドレスを入力してしまいました。
もし宜しければメールアドレスの削除して頂けると助かります。申し訳ありません。

  • 2015/07/10 23:26:50

ミツ@32877

こんにちは。

パスワード制限も非表示にするには、テンプレートの更新が必要です。
今回、参考までに閲覧制限がかかっていた記事を一覧で表示する際に理由が表示されるようにテンプレートを修正しましたので、ご確認下さい。

パスワード制限も非表示にするには、[freo/templates/entry_category.html]の12行目、つまり

<li><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}">{$entry.title}</a><!--{if $entry.restriction == 'user' and !$entry_category_securities[$entry.id]}--><span class="attention">(このエントリーは、登録ユーザーのみに公開されています。)</span><!--{elseif $entry.restriction == 'group' and !$entry_category_securities[$entry.id]}--><span class="attention">(このエントリーは、一部のグループのみに公開されています。)</span><!--{elseif $entry.restriction == 'password' and !$entry_category_securities[$entry.id]}--><span class="attention">(このエントリーは、パスワードで認証した人のみに公開されています。)</span><!--{/if}--></li>

の部分を、

<!--{if ($entry.restriction == 'user' and $entry_category_securities[$entry.id]) or ($entry.restriction == 'group' and $entry_category_securities[$entry.id]) or ($entry.restriction == 'password' and $entry_category_securities[$entry.id]) or !$entry.restriction}--><li><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}">{$entry.title}</a></li><!--{/if}-->

のようにすればよろしいかと思います。

  • 2015/07/14 09:43:24

kazu

お忙しい中、返信して頂き本当にありがとうございます。
パスワード制限していた投稿も無事に非表示にすることができました。
ありがとうございました。

  • 2015/07/15 23:39:40

コメント登録

登録フォーム
名前
メールアドレス
URL
コメント
投稿キー(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

新着コメント

Twitter

サイト内検索

ページ上部へ