Skip to main content.

[18] エディタに機能ボタン追加

アイテムの追加編集の際に使用するエディタに、ボタンを追加。
今回は、<、>、&を&lt;、&gt;、&amp;に変換するボタン。

編集するファイル;
edit.js(nucleus\javascript内)
PAGEFACTORY.php(nucleus\libs内)

1)edit.jsの編集
105行目付近
function boldThis() { insertAroundCaret('<b>','</b>'); } 
の下に
function entitiesThis() { entitiesCaret('',''); } 
という行を追加。(挿入箇所は前後してもOK)

250行目付近
function insertAroundCaret (textpre, textpost)
というfunction節のあとに次のfunction追加。
// the selected text to entities
function entitiesCaret (textpretextpost) {
    var textEl lastSelected;
    if (textEl && textEl.createTextRange && textEl.caretPos) {
        var caretPos textEl.caretPos;
        caretPos.text caretPos.text.replace(/&/g'&amp;').replace(/</g'&lt;').replace(/>/g'&gt;');
    } else {
        document.getElementById('input' nonie_FormType).value += textpre textpost;
    }
    updAllPreviews();
} 


2)PAGEFACTORY.phpの編集

$this->_jsbutton('bold',"boldThis()",_ADD_BOLD_TT ." (Ctrl + Shift + B)");
という行の上に、次の1行を追加。
$this->_jsbutton('entities',"entitiesThis()","特殊文字変換");

※日本語を直接入れたのでファイル上書き保存の際は文字コードに留意。もしくは言語ファイルを適用させるようにした方がbetterかな。

この2つのファイルを上書きFTP転送したら機能します。
ただし、ボタンのgifファイルはこれから作ります(^_^;
以下、あとがき。

追加してるfunctionは前後にタグ挿入のfunctionをそのままパクったので、余計な部分がたくさんありますが、ご勘弁を。
javascriptは全然わかんないので下手にさわるとドツボにはまるし。
ひたすらgoogleで検索かけて、それっぽいものをペーストしただけです(^_^;
ホント、直感的な文法じゃないので、いつもサンプルを探しまくるだけ。
<ul><li>...</li></ul>ボタンも作りたいなぁ。改行ごとにタグ挿入ってできるかなぁ、私に。
また時間のあるときにパクリの旅をしてみよう。

ところで、このボタン、使うのは私だけかもな(笑)

Comments

No comments yet

Add Comment

:

:
: