ああいう HTML エディタは基本的に textarea の扱いを変更するだけで実現されている。したがって、JavaScript のコードを多少張り付ければ済む構造になっている。別にモジュール手を加えなくても、HTML を入力するフォームのテンプレートを少し変更すればよいだけだ。
ありがたいことに、XCL に組み込む解説 があったのでこれを参考に eguide に摘要してみる。
テンプレート: eguide_admin.html
@@ -128,14 +128,28 @@
</p>
<{/if}>
</fieldset>
<h3><{$smarty.const._MD_INTROTEXT}></h3>
-<{$summary_textarea}>
+<script type="text/javascript" src="<{$xoops_url}>/common/fckeditor/fckeditor.js"></script>
+<script type="text/javascript">
+function fckeditor_exec(target, width, height, url) {
+ var area_width = width;
+ var area_height = height;
+ var xoops_url = url;
+ var oFCKeditor = new FCKeditor( target, area_width, area_height, "Default" );
+ oFCKeditor.BasePath = xoops_url + "/common/fckeditor/";
+ oFCKeditor.ReplaceTextarea();
+}
+</script>
+<textarea id="summary" name="summary"><{$summary|escape}></textarea>
<h3><{$smarty.const._MD_EXTEXT}></h3>
<textarea name="body" wrap="virtual" cols="60" rows="10"><{$body}></textarea>
+<script>
+fckeditor_exec("summary", "100%", "350", "<{$xoops_url}>");
+fckeditor_exec("body", "100%", "350", "<{$xoops_url}>");
+</script>
-<h3><{$smarty.const._MD_EVENT_STYLE}></h3>
-<{$input_style}>
+<input type="hidden" name="style" value="0" />
<h3><{$smarty.const._MD_RESERV_SETTING}></h3>
<div><input type="checkbox" name="reservation" value="1"<{if $reservation}> checked<{/if}>/> <{$smarty.const._MD_RESERV_DESC}></div>
<div>
--
安冨 伸浩 (マイサイト管理人)
安冨 伸浩 (マイサイト管理人)