関連エントリー機能

関連エントリー機能について

その記事に関連する記事を表示するためのモジュールとして、登録されているタグの一致数に応じて関連記事を表示するタグリレーショナル(Entry_TagRelational)というモジュールがありました。a-blog cms Ver.2.6.0からは(Admin_Entry_Autocomplete)モジュールを使うことで、下の図のようにその記事に関連するエントリーを検索し、エントリーに紐付けることができるようになりました。これにより、より柔軟な関連記事登録が可能になります。


登録されたエントリーは下記のピンクの線で囲まれたハンドルを掴んでドラッグアンドドロップすることで表示順を変更することも可能です。また、右の確認ボタンを押すことで、実際にそのエントリーのページに移動して内容を確認することもできます。


紐づけられたエントリーはテンプレートをカスタマイズすることで下の図のように表示することが可能です。


関連エントリー機能の使い方

この機能を使用するためにはテンプレート側のカスタマイズおよび管理画面の設定が必要になってきます。

関連エントリー機能を有効にする

関連エントリー機能を使用可能にするために、 管理画面 > コンフィグ > 編集設定 より下の図のように 関連エントリー のチェックボックスにチェックを入れます。


オートコンプリートのモジュールIDを作成

オートコンプリート(Admin_Entry_Autocomplete)モジュールは下の図のようにキーワードを入力し、そのキーワードを含むエントリーを絞り込み登録するためのモジュールです。


オートコンプリート(Admin_Entry_Autocomplete)モジュールはデフォルトでブログに登録された記事全体を検索できるようになっています。検索する記事をカテゴリーやカスタムフィールドなどで絞り込みたい場合はモジュールIDの作成が必要になってきます。

注意事項

モジュールID化した場合は、URLコンテキストのキーワードにチェックをつけてください。チェックがない場合は絞り込まれません。デフォルトではキーワードにチェックがつかないため、/js/config.js を以下のように設定が必要です。

// 684行目付近
'Admin_Entry_Autocomplete' : ['bid', 'uid', 'cid', 'keyword', 'tag', 'field_', 'start', 'end'],

しかしながら、/js/config.js を直接編集するとアップデート時に設定を消してしまうおそれがあるため、お使いのテーマファイルの /themes/お使いのテーマ/admin/module/field.html にファイルを設置して以下のように記述します。組み込みJSについて詳しくは、 読み込みが必要なJavascriptファイル をご覧ください。

<script type="text/javascript">
ACMS.Ready(function(){
	ACMS.Config.Admin.argGuidance.Admin_Entry_Autocomplete = ['bid', 'uid', 'cid', 'keyword', 'tag', 'field_', 'start', 'end'];
})
</script>


モジュールIDを作成する場合にはモジュールから下の図のようにオートコンプリート(Admin_Entry_Autocomplete)を選択します。また引数を指定することでエントリーを絞り込む範囲を制限することができます。例えばカテゴリーの引数に1を指定するとカテゴリーが1のエントリーの中から記事を検索し登録することができます。


テンプレートの記述

/system/ajax/edit/autocomplete.jsonを使用中のテーマの同一の階層にコピーします。その後、下のソースのように作成したモジュールIDをテンプレートに新たに追記してください。

<!-- BEGIN_MODULE Admin_Entry_Autocomplete id="設定したモジュールID" -->[<!-- BEGIN entry:loop -->
\{
	"label": "<!-- BEGIN categoryField -->({fieldCategoryName})<!-- END categoryField -->{title}",
	"value": "<!-- BEGIN categoryField -->({fieldCategoryName})<!-- END categoryField -->{title}",
	"title": "{title}",
	"id": {eid},
	"url": "{url}",
	"datetime": "{date#Y}/{date#m}/{date#d} {date#H}:{date#i}",
	"categoryName": "<!-- BEGIN categoryField -->{fieldCategoryName}<!-- END categoryField -->"
\}<!-- BEGIN glue -->, <!-- END glue --><!-- END entry:loop -->
]<!-- END_MODULE Admin_Entry_Autocomplete -->

エントリーサマリーのモジュールIDを作成

次に関連記事を表示するためのエントリーサマリーのモジュールIDを作成します。その際、関連エントリー一覧を表示できるように下の図のようにチェックを入れてください。


チェックを入れることで従来通りのテンプレートで登録された記事一覧を表示することができます。また、モジュールIDの引数の設定をしなくても登録したエントリー一覧はエントリーサマリーのモジュールIDにて表示されます。ただし登録したエントリー一覧はエントリーの詳細ページのみでしか表示されませんので、注意が必要です。


関連