PowerCMS ブログ

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 / MTLinksFooterMTLinksブロックタグの最初と最後に出力されます。
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」プラグイン、エディタからの絵文字貼付けに対応した新しい携帯サイト作成支援機能等、いくつかの新しい機能が追加される予定です。ご期待ください。

ライセンス

ダウンロード

カテゴリー
プラグイン

ページの先頭へ