スマイリーにはどうやら新旧の二つの仕組みが残っているようです.
一つはHTMLエディタのエモーションアイコンを押して入力するスマイリーで,どうやらこれは画像へのリンクと代替テキストで構成されるようです.多分,これが新しいスマイリーの入れ方なのかなと勝手に考えています.それに対してHTML文書中の:-)(←意図的に全角)などを勝手にスマイリーに置き換えるお節介なフィルタ機能が残っています.当方では,この旧式スマイリー(と勝手に判断)はバッサリと削除しました.(奥村先生のところでもそのようにしていませんでしたか?)
もし,スマイリーの大好きユーザさんが,アイコンから入力するのは面倒であるから:-) と入力したい,ということでしたら,仰るとおり,チェックボックスのようなものが必要でしょうね.ただ,このスマイリーなフィルタが入力確定時に置換するものではなく,表示時に置換して表示するのであるとすると面倒ですね.このHTML文書はフィルタを通さないが,このHTML文書はフィルタを通す,と仕分けするための情報を何らかの形でデータと共に保存する必要があります.
あくまでも案ですが,旧式スマイリーで入力したい方に対しては,チェックボックスをonにした状態で「変更を保存する」をクリックすると,入力したHTMLデータを保存する際にこのフィルタ(replace_smiles())を通すようにする,ということで,もしかしたらスマイリー化して記録されたりしないでしょうか.これならば要望を満たせるかも知れませんね.
#入力が容易な旧式スマイリーは諦めて,HTMLエディタのエモーションアイコンで入力してください,という訳にはいかないでしょうか.
http://www.suzuka-ct.ac.jp/mech/moodle/mod/wiki/view.php?id=320&page=Shirai046
呼び出し元ではなく,呼ばれたfunction lib/weblib.phpのfunction replace_smiles()の中身を全てコメントアウトすることで対処しています.
(参考リンク)
http://moodle.org/mod/forum/discuss.php?d=85640
http://moodle.org/mod/forum/discuss.php?d=57460#p261951
で,結局 lib/filelib.php で send_file の定義中
} else { // Try to put the file through filters
if ($mimetype == 'text/html') {
$options = new object();
$options->noclean = true;
$options->nocache = true; // temporary workaround for MDL-5136
$options->smiley=false; // okumura: to prevent smileys
$text = $pathisstring ? $path : implode('', file($path));
の okumura: というコメントのある行を付け加えることによって,影響を最小限にとどめて,アップロードされたHTMLファイルの置換だけを止めたところです。
その時点で白井先生の書き込みを見て驚いているところです。そういえば昔そんな話があったですね。まったく記憶から消えていました。
三重大学版では旧式スマイリーは消していません(私のふだん使う Safari がリッチテキストエディタ非対応なので唯一のスマイリー入力法がなくなってしまいます ^^;)。でも,Firefox にすればいいことなので,旧式スマイリーを諦めるのもいいですね。でも,以前に書いたものからスマイリーが消えてしまうんですね。うーん,悩むところです。