Movable Type入門 » 3.17バージョン対応

エントリーでリンクを別画面に設定(ver3.17対応)

最初からついているリンクボタン機能では同一画面で開きます。
私は別サイトに飛ばす場合は別ウインドウ表示にしています。

これを分けるためにtarget ="_blank"を埋め込んだリンクを別に用意します。

エントリーの投稿で色ボタン設定(ver3.17対応)と作業自体は殆ど変わりません。
 1.画像のアップロード
 2.編集画面のソースを付け足す
 3.javascriptの作成
の3点になります。

1.イメージファイルをアップロード
 /cgi/mt/imagesの配下に画像gifをアップロードします。


よろしければダウンロードして使ってください。

2.cgi/mt/tmpl/cms/edit_entry.tmplを修正

186行目からがエントリーの内容のボタンを決めています。
この中の


write('<a title="<MT_TRANS phrase="Insert Link" escape="singlequotes">" href="#" onclick="return insertLink(document.entry_form.text)"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-link.gif" alt="<MT_TRANS phrase="Insert Link" escape="singlequotes">" width="22" height="16" /></a>');


の下に

write('<a title="<MT_TRANS phrase="Insert Link2" escape="singlequotes">" href="#" onclick="return insertLink2(document.entry_form.text)"><img src="<TMPL_VAR NAME=STATIC_URI>images/new.gif" alt="<MT_TRANS phrase="Insert Link2" escape="singlequotes">" width="22" height="16" /></a>');

210行目からが追記のボタンを決めています。
この中の


write('<a title="<MT_TRANS phrase="Insert Link" escape="singlequotes">" href="#" onclick="return insertLink(document.entry_form.text_more)"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-link.gif" alt="<MT_TRANS phrase="Insert Link" escape="singlequotes">" width="22" height="16" /></a>');

の下に


write('<a title="<MT_TRANS phrase="Insert Link2" escape="singlequotes">" href="#" onclick="return insertLink2(document.entry_form.text_more)"><img src="<TMPL_VAR NAME=STATIC_URI>images/new.gif" alt="<MT_TRANS phrase="Insert Link2" escape="singlequotes">" width="22" height="16" /></a>');

3.cgi/mt/mt.jsを修正

場所はfunction insertLink (e, isMail) {の上あたりに


function insertLink2 (e, isMail) {
if (!canFormat) return;
var str = getSelected(e);
var link = '';
if (!isMail) {
if (str.match(/^https?:/)) {
link = str;
} else if (str.match(/^(\w+\.)+\w{2,5}\/?/)) {
link = 'http://' + str;
} else if (str.match(/ /)) {
link = 'http://';
} else {
link = 'http://' + str;
}
} else {
if (str.match(/@/)) {
link = str;
}
}
var my_link = prompt(isMail ? 'Enter email address:' : 'Enter URL:', link);
if (my_link != null) {
if (str == '') str = my_link;
if (isMail) my_link = 'mailto:' + my_link;
setSelection(e, '<a href="' + my_link + '" target="_blank">' + str + '</a>');
}
return false;
}

以上です。