Re: 記事ブロックで、phpのコードを紹介するためのTinyMCEの具体的変更方法

2015年7月29日 at 2:58

kohki様

ご回答ありがとうございます。

カスタムテンプレートを利用する方法なんですね。
思いつきませんでした。
できない時はこれで実装してみます。
ありがとうございます。

しかしながら、タイトルにも記載しています通り、
「TinyMCEでの変更方法」について質問させていただいています。

私の質問に、リンクを記載しておりますが、
意図が伝わらず、申し訳ございませんでした。

エスケープしたコードは何もしなくても記事ブロックに記載できました。
問題は、「再度編集したとき」です。

katz515さんの投稿ですが、
一部引用しますね。

http://concrete5-japan.org/community/forums/usage/post-10328/
記事ブロックの TinyMCE で自動整形を無効にするオプション

----------引用ここから----------
どこかのブログで書かれていたんですが、覚えていらっしゃる方。

concrete5.6.x 系で、TinyMCE には普段、自動整形の JS が走っているのですが、それを無効化するオプションってなんでしたっけ?

コードを紹介するときに、毎回コード部分が削除されちゃうので・・・(苦笑)

Syntax Highlighter など、コードを表示するブロックはあるのですが、それではなく、あくまでも記事ブロック内のみで完結させたいと思っています。

(途中略)

早速、隊長、杉山さんより情報が

http://silver.thyme.jp/freotips/view/14

http://www.tinymce.com/wiki.php/Configuration3x:cleanup

後者のドキュメントの

tinyMCE.init({
...
cleanup : true
});


が、まさに探していた設定でした。でもこれは自動整形ONの設定です。

なので、おそらく、記事ブロックエディタ設定のカスタムで、上記の設定を変えて「cleanup : false」の1行を追加すればいいのではと思います。

時間ができた時に試してみます。
ありがとうございます!
----------引用ここまで----------

●これを受けて、私の質問ですが、

TinyMCEへのオプションを、tinymce.php (/helpersフォルダに置いてます)に

// Common options に 以下追加
’cleanup’ => false,

追加してみましたが、
コードをそのまま表示することはできませんでした。

お手数ですが、具体的な設定方法を教えてください。


と質問させていただきました。
よろしくお願いします。

タグ:

Re: 記事ブロックで、phpのコードを紹介するためのTinyMCEの具体的変更方法

2015年7月29日 at 18:23
もちろん、元記事も読んでますよ。

その上で、記事ブロックはご希望の用途とそぐわないのでは、と述べております。
ひとつお詫びしないといけないのは、Syntax Highlighterですが、私は有料アドオンかと思っておりました。ですので、標準ブロックでなんとか出来ないかやり方を考えてみた次第です。(今調べたら、無料でしたね。)

で、話は戻りますが、やはり記事ブロックにPHPコードを無加工で貼る、というのは難しいと思います。何らかの形で、PHPの開始と終了の山括弧をエンティティできればいいのですが…

ちょっと、今の段階では私には思いつかないです。お役に立てずすみませんが。
他の方の回答をお待ちください。
 

Re: Re: 記事ブロックで、phpのコードを紹介するためのTinyMCEの具体的変更方法

2015年7月30日 at 5:17
kohki様

ご回答ありがとうございます。

ご指摘の通り、本来の方法ではないですね。

TinyMCEについて調査&トライしてみましたが、
コード本体か、プラグインに変換を持っているようです。
(詳しくは調査できませんでした。)

ですので、ご提案いただいたカスタムテンプレートで実態参照にするか、

あるいは、別の方法(単に編集手順)ですが、以下で対処しようと思います。

理由は、コード中にハイライトしたりと、なんらかの編集がつきまとうからです。

(手順)
1)編集のみ、通常どおり行い、完了後、[HTML]コード表示ボタンでコード箇所を一旦、
ローカルのテキストファイルとして保存しておきます。
2)万一編集が必要になった場合は、このファイルから、再度記事ブロック(TinyMCE)の[HTML]から流し込み、編集を行いまたコードをローカルに保存します。

少し手間な方法ですが、この方法で対応しようと思います。

※もしこのローカルファイルがなかった場合、データベースから直接コード部分をコピーしてきて、同様の手順で対応しようと思います。

いろいろご対応いただきありがとうございます。