XCL2.1でメインで運用しているサイト群に、FCKeditor(wysiwygエディタ)を導入。 ログインユーザーはHTML許可とし、d3forumとd3blogで使用可能としました。
この際、xpWikiレンダリング処理との選択が行えるようにするため、テンプレートに手を入れています。
d3forumの場合
d3forum_main_post_form.html
1 2 3 4 5 6
|
<{if $body_wysiwyg}> <{$body_wysiwyg}> <{else}> <input type="checkbox" id="message_bbcode_onoff" onclick="if(this.checked){xoopsGetElementById('message_bbcode_buttons_pre').style.display='block';xoopsGetElementById('message_bbcode_buttons_post').style.display='block'}else{xoopsGetElementById('message_bbcode_buttons_pre').style.display='none';xoopsGetElementById('message_bbcode_buttons_post').style.display='none'};" /><label for="message_bbcode_onoff"><{$smarty.const._MD_D3FORUM_LABEL_INPUTHELPER}></label> <br /> <{xoopsdhtmltarea name="message" cols="60" rows="15" value=$message pre_style="display:none;" post_style="display:none;"}> <{/if}>
|
これを、 ↓ のように変更
1 2 3 4 5
|
<{if $body_wysiwyg && $xoops_isuser}> <input type="button" class="formButton" value="FCKeditor" name="contentman_preview" onclick='fckeditor_exec("100%", "350", "<{$xoops_url}>");' /> <{/if}> <input type="checkbox" id="message_bbcode_onoff" onclick="if(this.checked){xoopsGetElementById('message_bbcode_buttons_pre').style.display='block';xoopsGetElementById('message_bbcode_buttons_post').style.display='block'}else{xoopsGetElementById('message_bbcode_buttons_pre').style.display='none';xoopsGetElementById('message_bbcode_buttons_post').style.display='none'};" /><label for="message_bbcode_onoff"><{$smarty.const._MD_D3FORUM_LABEL_INPUTHELPER}></label> <br /> <{xoopsdhtmltarea name="message" cols="60" rows="15" value=$message pre_style="display:none;" post_style="display:none;"}>
|
これで、
- d3forumの管理者設定で「HTMLを有効」にして、「common/FCKeditor」を選択すると、ログインユーザーのみに「FCKeditor」というボタンが現れ、これを押すとテキストエリアにエディタがロードされて使用可能になります。
- また、「HTMLを許可」にするとHTML使用可、不許可でwikiレンダリングが有効になります。
また、ゲストに強制的にHTML無効にするには、
1 2 3 4
|
<!-- html --> <{if $allow_html}> <input type="checkbox" name="html" id="html" value="1" <{$html_checked}> /><label for="html"><{$smarty.const._MD_D3FORUM_ENABLEHTML}></label> <br /> <{/if}>
|
の部分も 下記のように変更します。
1 2 3 4
|
<!-- html --> <{if $allow_html && $xoops_isuser}> <input type="checkbox" name="html" id="html" value="1" <{$html_checked}> /><label for="html"><{$smarty.const._MD_D3FORUM_ENABLEHTML}></label> <br /> <{/if}>
|
d3blog
1 2 3 4 5 6
|
<{if $moduleConfig.wysiwyg_editor && $currentUser.user_perm.allow_html}> <textarea id="contents" name="contents"><{$entry.contents4edit}></textarea><script>fckeditor_exec("100%", "350", "<{$xoops_url}>");</script><br /> <{else}> <div><input type="checkbox" id="switch_bbcode" onclick="if(this.checked){document.getElementById('contents_bbcode_buttons_pre').style.display='block';document.getElementById('contents_bbcode_buttons_post').style.display='block'}else{document.getElementById('contents_bbcode_buttons_pre').style.display='none';document.getElementById('contents_bbcode_buttons_post').style.display='none'};" /> <label for="switch_bbcode"><{$smarty.const._MD_D3BLOG_LANG_DISPLAY_XCODE_PALLET}></label></div> <{xoopsdhtmltarea name=contents cols=65 rows=10 value=$entry.contents4edit pre_style="display:none;" post_style="display:none;"}> <{/if}>
|
これを、 ↓ のように変更
1 2 3 4 5
|
<{if $moduleConfig.wysiwyg_editor && $currentUser.user_perm.allow_html}> <input type="button" class="formButton" value="FCKeditor" name="contentman_preview" onclick='fckeditor_exec("100%", "350", "<{$xoops_url}>");' /> <{/if}> <div><input type="checkbox" id="switch_bbcode" onclick="if(this.checked){document.getElementById('contents_bbcode_buttons_pre').style.display='block';document.getElementById('contents_bbcode_buttons_post').style.display='block'}else{document.getElementById('contents_bbcode_buttons_pre').style.display='none';document.getElementById('contents_bbcode_buttons_post').style.display='none'};" /> <label for="switch_bbcode"><{$smarty.const._MD_D3BLOG_LANG_DISPLAY_XCODE_PALLET}></label></div> <{xoopsdhtmltarea name=contents cols=65 rows=10 value=$entry.contents4edit pre_style="display:none;" post_style="display:none;"}>
|
に変更します。
元ネタ
[xoops] FCKeditorとwikiレンダラーの選択環境 (Motion Create)