Nucleusのエディタにボタン追加
カテゴリ:Nucleus
日時:2005/02/26 10:46
まみおさんのエディタに機能ボタン追加(<、>、&を<、>、&に変換するボタン)をウチにも実装。が、なぜかうまく動かない。おそらくウチの環境に問題があるのだろう。バージョンの違いが原因かもしれない。
いじくり回しているうちに、何とか動くようになった。ついでに、このサイトで多用している<blockquote>用のボタンも追加してみた。
編集するのは、
・nucleus/javascript/edit.js
・nucleus/libs/PAGEFACTORY.php
・nucleus/language/japanese-utf8.php(UTF-8な場合)
の3つ。
まずはedit.jpから。114行目付近の
次に、274行目付近のinsertAroundCaret()関数とmozWrap()関数の間辺りに、以下の関数を挿入する。
japanese-utf8.phpは、380行目付近。
最後に、nucleus/images/に新ボタン用の画像を用意する。ファイル名は、button-entities.gifとbutton-blockquote.gif。PAGEFACTORY.phpや言語ファイルで指定した定数から「_ADD_」と「_TT」を取って小文字にし、頭に「button-」を付ける。文で説明するとややこしいが、
_ADD_ENTITIES_TT→button-entities.gif
_ADD_BLOCKQUOTE_TT→button-blockquote.gif
とすれば法則性は明らかだ。
編集したファイルとボタン画像をアップロードすれば、作業完了だ。
いじくり回しているうちに、何とか動くようになった。ついでに、このサイトで多用している<blockquote>用のボタンも追加してみた。
編集するのは、
・nucleus/javascript/edit.js
・nucleus/libs/PAGEFACTORY.php
・nucleus/language/japanese-utf8.php(UTF-8な場合)
の3つ。
まずはedit.jpから。114行目付近の
function italicThis() { insertAroundCaret('<i>','</i>'); }
の下に、function blockquoteThis() { insertAroundCaret('<blockquote>','</blockquote>'); }
function entitiesThis() { entitiesCaret('',''); }
の2行を挿入。1行目は<blockquote>用。次に、274行目付近のinsertAroundCaret()関数とmozWrap()関数の間辺りに、以下の関数を挿入する。
// the selected text to entities
function entitiesCaret (textpre, textpost) {
var textEl = lastSelected;
if (textEl && textEl.createTextRange && lastCaretPos) {
var caretPos = lastCaretPos;
caretPos.text = caretPos.text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
} else {
document.getElementById('input' + nonie_FormType).value += textpre + textpost;
}
updAllPreviews();
}
今度はPAGEFACTORY.php。295行目付近に、$this->_jsbutton('blockquote',"blockquoteThis()",_ADD_BLOCKQUOTE_TT);
$this->_jsbutton('entities',"entitiesThis()",_ADD_ENTITIES_TT);
の2行を挿入。japanese-utf8.phpは、380行目付近。
define('_ADD_ENTITIES_TT', '特殊文字変換');
define('_ADD_BLOCKQUOTE_TT', '引用');
の2行を挿入。「特殊文字変換」「引用」は適当に変えてOK。最後に、nucleus/images/に新ボタン用の画像を用意する。ファイル名は、button-entities.gifとbutton-blockquote.gif。PAGEFACTORY.phpや言語ファイルで指定した定数から「_ADD_」と「_TT」を取って小文字にし、頭に「button-」を付ける。文で説明するとややこしいが、
_ADD_ENTITIES_TT→button-entities.gif
_ADD_BLOCKQUOTE_TT→button-blockquote.gif
とすれば法則性は明らかだ。
編集したファイルとボタン画像をアップロードすれば、作業完了だ。