2010年05月27日
リンクをオブジェクトで管理するLinkプラグイン
Movable Typeでは独自のオブジェクトのテーブルを作成して管理画面で作成・管理したり、作成したオブジェクトに対応するテンプレート・タグを作成することができます。
今回、(主に)外部リンクやRSS等の情報を管理するオブジェクトを作り、管理画面で管理したりエディタへの貼付けに対応した「Link」プラグインを作成しました。GNU General Public Licenseで公開します。
Linkプラグインについて
- 外部リンクの「名前」「URL」「RSS」等の情報をオブジェクトとして管理できます。
- リンク「タグ」をつけることができます。
- 管理画面での検索に対応しています。
- エディタにリンクを貼付けることができます。
- リンクをMTタグで出力することができます。
- スタティック/ダイナミック・パブリッシングの両方に対応しています。
- OPML形式のファイルからリンクをインポートすることができます。
- 一覧画面、または定期実行タスクによってリンクチェックを行えます。
- カスタム・パーミッション/ロールを作成します。
Perlモジュールについて
- XML::Simple (XML::Parser) - OPMLからのインポートの際に必要
- LWP::UserAgent - リンクチェックに必要
- HTTP::Date - リンクチェックに必要
- Digest::MD5 - リンクチェックに必要
スクリーンショット
テンプレート・タグ
ブロック・タグ
タグ | 説明 | 備考 |
---|---|---|
MTLinks | リンクをループで出力します |
コンテクスト(MTVar)にセットされる値 __first__:ループの最初 __counter__:ループの何回目か __odd__:奇数回目の出力 __even__:偶数回目の出力 __last__:ループの最後 指定出来るモディファイア lastn (limit):何件表示するかを指定します。 offset:何件目から表示するかを指定します(デフォルト値:0)。 sort_order:昇順、降順を指定します(descend,ascend / デフォルト値:ascend)。 sort_by:ソートするカラム名を指定します(created_on, urlupdated_on, rssupdated_on, url等 / デフォルト値:id) blog_id:リンクが属するブログのIDを指定する場合に記述します。 rating:ランク(rating)が指定した数字と一致するリンクをロードします。 more:ランク(rating)が指定した数字以上のリンクをロードします。 less:ランク(rating)が指定した数字以下のリンクをロードします。 tag:タグが一致するリンクをロードします。 |
MTLinksHeader / MTLinksFooter | MTLinksブロックタグの最初と最後に出力されます。 | |
MTLinkTags | リンクのタグをループ出力します。MTTagName、MTTagID等のタグ関連のMTタグが利用できます。 | MT標準のMTTagsタグでtypeに'link'を指定することができます |
MTLinkAuthor | リンクを作成したユーザーのコンテクストをセットします。 | ブロックの中ではMTAuthor関連のタグが利用できます。 |
MTLinkIfTagged | リンクがタグ付けされている時に出力されます。 | |
MTIfActiveLink (MTIfBrokenLink) | リンクのURLがリンク切れしていない(している)場合に出力されます。 | |
MTIfActiveRss (MTIfBrokenRss) | リンクのRSSがリンク切れしていない(している)場合に出力されます。 | |
MTIfActiveImage (MTIfBrokenImage) | リンクの画像のURLがリンク切れしていない(している)場合に出力されます。 |
ファンクション・タグ
タグ | 説明 |
---|---|
MTLinkBlogID | リンクのブログIDを出力します。 |
MTLinkName | リンクの名前を出力します。 |
MTLinkHTML | リンクをHTMLのタグの形式で出力します。 |
MTLinkAuthorDisplayName | リンクの作成者名を出力します。 |
MTLinkUrl | リンクのURLを出力します。 |
MTLinkDescription | リンクの概要を出力します。 |
MTLinkTitle | リンクのタイトル(title属性値)を出力します。 |
MTLinkRel | リンクのrel属性値を出力します。 |
MTLinkImageAddress | リンクの画像URLを出力します。 |
MTLinkRSSAddress | リンクのRSSのURLを出力します。 |
MTLinkNotes | リンクのメモを出力します。 |
MTLinkRating | リンクのランク(rating)を出力します。 |
MTLinkAuthoredOn | リンクの作成日を出力します。 |
MTLinkModifiedOn | リンクオブジェクトの更新日を出力します。 |
MTLinkURLUpdatedOn | リンク先のページの最終更新日を出力します(正確に取得できない可能性があります)。 |
MTLinkRSSUpdatedOn | リンク先のRSSの最終更新日を出力します。 |
コールバック
コールバックをトリガとして処理を行うプラグインを書くことで例えばリンク切れ検出をメールで通知する、等の拡張が可能です。
コールバック | パラメタ | 説明 |
---|---|---|
cms_pre_save.link | $cb, $app, $obj, $original | 管理画面からリンクオブジェクトを作成・更新した際に保存の直前にコールされます。 |
cms_post_save.link | $cb, $app, $obj, $original | 管理画面からリンクオブジェクトを作成・更新した際に保存の直後にコールされます。 |
cms_post_delete.link | $cb, $app, $obj, $original | 管理画面からリンクオブジェクトを削除した直後にコールされます。 |
post_broken_url.link | $cb, $app, $obj, $original | 定期実行タスクの実行時にLinkオブジェクトのリンク切れを検知した時にコールされます。 |
post_broken_rss.link | $cb, $app, $obj, $original | 定期実行タスクの実行時にLinkオブジェクトのRSSのリンク切れを検知した時にコールされます。 |
post_broken_image.link | $cb, $app, $obj, $original | 定期実行タスクの実行時にLinkオブジェクトの画像のリンク切れを検知した時にコールされます。 |
post_task_blog_linkcheck | $cb, $app, $blog, $error | 定期実行タスクで各ブログのリンクチェックが完了したタイミングでコールされます。エラーが1つ以上見つかったときには$errorに1が入ります。 |
post_unpublish.link | $cb, $app, $obj, $original | 一覧画面からリンクのステータスを非公開にした際にコールされます。 |
post_publish.link | $cb, $app, $obj, $original | 一覧画面からリンクのステータスを公開にした際にコールされます。 |
Power CMS for MTへの機能追加について
商用版のPower CMS for MT Ver.2の次期マイナーアップデートの提供の際に、リンク・グループ(ドラッグ&ドロップでリンクイブジェクトをグルーピング&ソーティング可能な機能)、CSVへのエクスポート/インポートに対応したLinkプラグインがバンドルされます。また、バナーやムービーの管理が可能でコンバージョンや表示数の測定が可能な「Campaign」プラグインや「アイテム」をグルーピング&ソーティング可能にする「AssetGroup」プラグイン、エディタからの絵文字貼付けに対応した新しい携帯サイト作成支援機能等、いくつかの新しい機能が追加される予定です。ご期待ください。
ライセンス
- GNU General Public License - GNU 一般公衆利用許諾契約書
ダウンロード
- カテゴリー
- プラグイン
tanabe
2017年8月22日 00:06LINKプラグインの機能で質問がございます。
LINKプラグイン内に外部リンクの一覧を作成し、ブログの記事ページの作成画面でチェックボックスで選択することで、記事内に外部リンクを表示したいと考えております。
そのため、カスタムフィールドでLINKプラグインを呼び出す設定をしたのですが、記事ページに外部リンクが表示がされません。
カスタムフィールドで登録したベースネームを、記事ページのテンプレートにブロックタグとして設定し、その中にさらにのブロックタグを設定し、その中に上記のLINK情報を呼び出すタグを記載しているのですが、記事ページの作成画面でリンクが選択してあっても、実際のページ上に外部リンクの情報が表示されません。
アルファサード株式会社
2018年1月18日 11:30tanabe様
アルファサード株式会社です。
お世話になっております。
ご連絡遅くなってしまい、大変申し訳ありません。
PowerCMSブログにコメントいただき、誠にありがとうございます。
ブログ記事に登録した複数形のリンクのカスタムフィールドを、表示したいとのことですが、
記事のアーカイブテンプレートなどにカスタムフィールドのテンプレートタグをブロックタグ形式に記述することで複数形のカスタムフィールドのコンテキストが取得できます。
以下が、記事アーカイブで複数形のリンクのカスタムフィールドを出力するサンプルになります。
■カスタムフィールドのテンプレートタグがCFLinksのケース
//==サンプル==
また、PowerCMSのタグの種類についてはユーザーガイドの「P112-カスタムフィールド Pro」に、追加されるカスタムフィールドタイプが一覧で掲載しておりますのでこちらをご参考ください。
何卒、よろしくお願い申し上げます。