管理画面のエントリーリストにパーマリンクを表示する

管理画面のエントリーリストにパーマリンクを表示する

Posted at January 29,2006 11:58 PM
Tag:[Customize, ManagementPage, MovableType, Permalink, Plugin]

管理画面のエントリーリストにパーマリンクを表示する管理画面でエントリーリストを表示した時にそのエントリーのパーマリンク(エントリーアーカイブページのURL)も同時に表示するカスタマイズです。
これを作った理由は、管理画面のエントリー一覧からあるエントリーのURLを取得するためには、そのエントリー編集画面の右上にある「エントリーを確認」のリンクからしか取得できず、エントリー一覧から直接取得(あるいは表示)できるようにしたいと思ったからです。

完成画面はスクリーンショットでお分かりのように、リンク画像をエントリータイトルの後方に表示するようにしています。これをクリックすることで該当のエントリーを表示することができます(URLを取得するだけであれば、IEの場合、リンクを右クリックして「ショートカットのコピー」を選択することでコピーできます)。
またツールチップにURLを表示するようにしてします。

以下、カスタマイズ方法です。

1.CMS.pm の修正

エントリー一覧ではパーマリンク情報を取得していないため、これを取得できるよう、lib/MT/App/CMS.pm をダウンロードし、下記のパッチをあてます。パッチのあて方についてはパッチをあてる(その1:適用方法)をご覧ください。パッチがよく分からない&面倒という方はパッチをあてる(その1:適用方法)の4項をご覧ください。

--- CMS.pm.bak  Thu Jan 29 23:24:40 2006
+++ CMS.pm      Thu Jan 29 23:26:58 2006
@@ -5038,6 +5038,7 @@
         $row->{author_name} = $author ? $author->name : $app->translate('(author deleted)');
         $row->{category_name} = $obj->category ? $obj->category->label : '';
         $row->{title_short} = $obj->title;
+        $row->{entry_permalink} = $obj->permalink;
         if (!defined($row->{title_short}) || $row->{title_short} eq '') {
             my $title = remove_html($obj->text);
             $row->{title_short} = MT::I18N::substr_text($title||"", 0, MT::I18N::const('DISPLAY_LENGTH_EDIT_ENTRY_TITLE')) . '...';

パッチをあてた後はアップロードして元の CMS.pm に上書きしてください。

2.エントリーリスト表示用テンプレートを修正する

BigPAPI用プラグインを利用する方法と、テンプレートを直接修正する方法の2通りを紹介します。2.1項または2.2項のいずれかお好きな方を選んでカスタマイズしてください。

2.1 BigPAPI用プラグインを利用する

2.1.1 BigPAPI プラグインのダウンロード

注:すでに BigPAPI プラグインをお使いの方は、2.1.1項および2.1.2項の作業をスキップして2.1.3項に進んでください。
下記のサイトより BigPAPI のプラグインをダウンロードします。Download のリンクまたは、Plugin Code のリンクをクリックしてください。

staggernation.comBigPAPI Plugin for Movable Type
2.1.2 BigPAPI プラグインのアップロード

Download のリンクをクリックした場合は、アーカイブを解凍した中にある BigPAPI.pl を、Plugin Code のリンクをクリックした場合は、保存した BigPAPI.pl をそのまま plugins ディレクトリにアップロードします。

2.1.3 リンク表示用プラグインのダウンロード

下記の DisplayEntryTitleAndPermalink.zip または DisplayEntryTitleAndPermalink.lzh をクリックしてアーカイブをダウンロードしてください。

DisplayEntryTitleAndPermalink.zip
DisplayEntryTitleAndPermalink.lzh
2.1.4 リンク表示用プラグインのアップロード

アーカイブを解凍して、中にある DisplayEntryTitleAndPermalink.pl を plugins ディレクトリにアップロードします。なおこのプラグインでは管理画面のエントリーリストのタイトルを全て表示するプラグインの機能も入っています。
注:管理画面のエントリーリストのタイトルを全て表示するプラグイン DisplayEntryTitle.pl をアップロードしている方は必ずこのプラグインに差し替えてください。

2.2 テンプレートを直接修正する

tmpl/cms/entry_table.tmpl をダウンロードし、任意のエディタで開き、77行目に青色部分を追加します。修正後、元のディレクトリにアップロードします。修正前に必ずバックアップをとっておきましょう。

<TMPL_IF NAME=VIEW_EXPANDED><strong><TMPL_VAR NAME=TITLE_LONG></strong>&nbsp;<a href="<TMPL_VAR NAME=ENTRY_PERMALINK>"><img src="<TMPL_VAR NAME=BLOG_URL>mt-static/images/status_icons/link.gif" alt="<TMPL_VAR NAME=ENTRY_PERMALINK>" width="16" height="9" /></a><TMPL_IF NAME=EXCERPT> &mdash; <TMPL_VAR NAME=EXCERPT></TMPL_IF><TMPL_ELSE><TMPL_IF NAME=HAS_EDIT_ACCESS><TMPL_IF NAME=IS_POWER_EDIT><input name="title_<TMPL_VAR NAME=ID>" value="<TMPL_VAR NAME=TITLE ESCAPE=HTML>" /><TMPL_ELSE><a href="<TMPL_VAR NAME=SCRIPT_URL>?__mode=view&amp;_type=entry&amp;id=<TMPL_VAR NAME=ID>&amp;blog_id=<TMPL_VAR NAME=BLOG_ID>"><TMPL_VAR NAME=TITLE_SHORT></a>&nbsp;<a href="<TMPL_VAR NAME=ENTRY_PERMALINK>"><img src="<TMPL_VAR NAME=BLOG_URL>mt-static/images/status_icons/link.gif" alt="<TMPL_VAR NAME=ENTRY_PERMALINK>" width="16" height="9" /></a>

2ヶ所に同じものを追加しているのは、エントリー一覧の左下にある「画面の表示設定を変更」のカスタマイズで、「コンパクト」と「拡張」の両方に対応させているためです。

3.新しいウィンドウで開く場合

本カスタマイズでは同一ウィンドウでリンクを開く設定になっています。新しいウインドウで開く場合は下記の修正を行ってください。

2.1項ご利用の方はプラグイン DisplayEntryTitleAndPermalink.pl、2.2項ご利用の方は tmpl/cms/entry_table.tmpl の

<a href="<TMPL_VAR NAME=ENTRY_PERMALINK>">

を検索して、taret 属性(青色部分)

<a href="<TMPL_VAR NAME=ENTRY_PERMALINK>" target="_blank">

を追加してください(いずれも修正部分が2ヶ所あります)。
なお本設定を行わなくてもリンクを右クリックすることで新しいウィンドウに表示することは可能です。

4.リンク画像が表示されない場合

リンクの画像は

mt-static/images/status_icons/link.gif

を利用していますが、mt-static のパスは index.html があるディレクトリを起点としています。もし cgi-bin 等に mt-static を配置している場合は正常に表示されない可能性がありますので、下記の修正を行ってください。

2.1項ご利用の方はプラグイン DisplayEntryTitleAndPermalink.pl、2.2項ご利用の方は tmpl/cms/entry_table.tmpl の

src="<TMPL_VAR NAME=BLOG_URL>mt-static/images/status_icons/link.gif"

の赤色部分を

src="[mt-staticまでのURL]/mt-static/images/status_icons/link.gif"

に変更してください(いずれも修正部分が2ヶ所あります)。

関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

管理画面のエントリリストからパーマリンクに直接ジャンプ from やむやむ
MT の管理画面 エントリ一覧から、エントリアーカイブページに直接とびたいとき、... [続きを読む]

Tracked on January 30, 2006 7:51 AM
コメント

おはようございます。やってみたのですが、リンクアイコンをクリックすると
全てのエントリで mt.cgi を配置してるディレクトリにとぶようになってます。
うちが mt.cgi を置いてるディレクトリと ブログのディレクトリを 別にしてるのが原因でしょうか?
<TMPL_VAR NAME=BLOG_URL> の部分を修正すればいいと思うのですが
どう修正したらいいでしょう?

[1] Posted by さえら : January 30, 2006 6:36 AM

ホントごめんなさい、ひとつ作業を忘れてました。
CMS.pm パッチあてるだけあてて 上書きしてなかったんです。
ちゃんとパーマリンクにとぶようになりました。
のちほど、トラックバックさせていただきます。ありがとうございました。

[2] Posted by さえら : January 30, 2006 6:52 AM

>さえらさん
こんにちは。
早々のご利用&トラックバックありがとうございます!
手前味噌で恐縮ですが、なかなか便利で重宝しています。

[3] Posted by yujiro : January 30, 2006 2:04 PM

 yujiroサン 先日は、ご親切に本当にぁりがとぉござぃましたぁ この前、ぉ礼のコメントさせていただいた時にドリコムのリストに登録させてもらってィィですか?って書きましたぉ返事を見に来たんデスが、自分で書いたコメントがどこに書いたヵ探しきれませんでしたコm(_ _;m)三(m;_ _)m
 スィマセン 

  マネェ★

[4] Posted by ○o。LΑセレブ観察日記。o○ : January 30, 2006 8:11 PM

システム関連ファイルの修正が必要が多いってことで今回は泣く泣く諦めます……(>_<)

そういえばプラグインのアーカイブにもパッチ部分を入れておいてはどうでしょう?
そして今回に限りませんけど、アーカイブに該当記事のPermlinkを書いただけのテキストファイルが入ってたりすると後でどこで提供してもらったプラグインのアーカイブか判って嬉しかったり(プラグインの先頭に書いてあってもそれを読む前に判りますし)

……どれもyujiroさんの手間が増えるだけの提案なんですけど……


後のほうの提案はプラグインをアーカイブ形式で配布してくれるかたがたが、同じような手間をかけて貰えると配布元に辿り着き易くて嬉しかったりも……

[5] Posted by ちは : January 30, 2006 11:43 PM

>○o。LΑセレブ観察日記。o○さん
こんにちは。
ドリコムのリストへの登録、ありがとうございます。
また何かございましたらご連絡ください。

>ちはさん
こんにちは。
コメント&提案ありがとうございました。
たしかにこれでは配布元すら分かりませんね。
今後追加する方向で検討したいと思います。

[6] Posted by yujiro : January 31, 2006 5:34 PM

 yujiroサァン  登録させていただいてぃぃんデスね。.:♪*:・'(*⌒―⌒*))) ぁりがとぉござぃます
 m(__)m では、早速登録させていただきますネ♪ 

  マネェ★ょり

[7] Posted by ○o。LΑセレブ観察日記。o○ : January 31, 2006 5:55 PM

いつもお世話様です。
早速BigPAPI対応プラグインを使わせていただきました。
ですが、おかしいところが2点ほど見つかりましたのでご報告します。

※管理用URIとブログ用URIを変えています。

1.システムメニューのエントリー一覧にはリンク用画像が出ますが、各ブログメニューのエントリー一覧には画像が出ません。
(管理用にしか mt-static フォルダがありません)

2.リンクが設定されていません。(ソースを見ると a href="" となっていました。)

どうぞよろしくお願いします。

「管理画面のエントリーリストのタイトルを全て表示する」の機能は以前より大変便利に使わせていただいています。

[8] Posted by やすひさ : January 31, 2006 10:57 PM

>やすひささん
こんばんは。
色々とご利用くださりありがとうございます。

ご質問の1.ですが、Movable Type はどちらの同じテンプレートを利用しておりますので、リンク画像 ?/mt-static/images/status_icons/link.gif をどちらか片方のURI(仮にURI-αとします)の直下にコピーし、4項と同じように

src="<TMPL_VAR NAME=BLOG_URL>mt-static/images/status_icons/link.gif"

src="URI-α/link.gif"

に変更してみてください(画像のURIを直接指定すればどちらのエントリー一覧からも表示されると思います)。

2.につきましては、1項の作業でパッチをあてた CMS.pm が元の位置に上書きされていることをご確認ください。

以上です。
それではよろしくお願い致します。

[9] Posted by yujiro : February 1, 2006 11:17 PM

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

2.に関しては CMS.pm を修正するしか方法がないんですね。できることならシステムに関わるファイルを修正したくないのですけどね…。(バージョンアップ時に困るから)
でも、CMS.pm を修正して対応しました。

1.に関しては BigPAPI 対応プラグインの98行目、2カ所の「BLOG_URL」を「CGI_PATH」にすると、システムメニュー・各ブログともにエントリー一覧で画像が表示されました。
(適当に試行錯誤してたら対応できてしまいました ^^; )


どうも、ありがとうございました。

[10] Posted by やすひさ : February 3, 2006 1:00 AM

>やすひささん
こんにちは。
CGI_PATHは気がつきませんでした。
無事に直ってよかったです。
ではでは!

[11] Posted by yujiro : February 4, 2006 1:59 PM

エントリー記事欄によくみかける「パーマリンク」の表示をさせリンクさせたいと思います。どの部分をどのように修正させればいいのでしょうか? テンプレートでは、パーマリンクの表示がありません。

[12] Posted by panser : January 28, 2007 1:29 PM

いつもお手数おかけしております。今回の件なんとか解決できました。ありがとうございます。

[13] Posted by panser : January 29, 2007 3:11 AM

>panserさん
こんばんは。
ご連絡ありがとうございました。
ご質問の件、自己解決されたようで良かったです。
ではでは!

[14] Posted by yujiro : January 29, 2007 7:33 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)