article模块加入所见即所得功能支持: Xoops的内核加入了对Form表单各个种类的封装,这个设计是简化了一些程序设计工作,但是其众多的Form class往往让人头晕。 xoops自带的Koivi,Dhtml编辑器都不怎么出色,很难直接投入商业运用,因此许多人尝试进行Hack. 今天跟霍炬聊的时候,他的话给了我信心,仔细看了代码,发现其实还是不太难的。 下面和我一起做。 我用的Xoops为XOOPS 2.015,artcile模块为0.96.这里系统自带的有三个编辑器,Textarea,koivi,dhtml.在 xoopsFrameworksxoops22classxoopseditor 中可以看到。 我在xoopsFrameworksxoops22classxoopseditortextareatextarea.php中加入这样一个类: n tinyMCE.init({n mode : “exact”,n theme : “advanced”,n elements : “text,elm2”,n plugins : “table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime, preview,zoom,media,searchreplace,print,contextmenu,paste, directionality,fullscreen”,n theme_advanced_buttons1_add_before : “save,newdocument,separator”,n theme_advanced_buttons1_add : “fontselect,fontsizeselect”,n theme_advanced_buttons2_add : “separator,insertdate,inserttime,preview,zoom, separator,forecolor,backcolor”,n theme_advanced_buttons2_add_before: “cut,copy,paste,pastetext,pasteword,separator, search,replace,separator”,n theme_advanced_buttons3_add_before : “tablecontrols,separator”,n theme_advanced_buttons3_add : “emotions,iespell,media,advhr,separator,print, separator,ltr,rtl,separator,fullscreen”,n theme_advanced_toolbar_location : “top”,n theme_advanced_toolbar_align : “left”,n theme_advanced_statusbar_location : “bottom”,n content_css : “example_word.css”,n plugi2n_insertdate_dateFormat : “%Y-%m-%d”,n plugi2n_insertdate_timeFormat : “%H:%M:%S”,n external_link_list_url : “example_link_list.js”,n external_image_list_url : “example_image_list.js”,n media_external_list_url : “example_media_list.js”,n file_browser_callback : “fileBrowserCallBack”,n paste_use_dialog : false,n theme_advanced_resizing : true,n theme_advanced_resize_horizontal : false,n theme_advanced_link_targets : “_something=My somthing;_something2=My somthing2;_something3=My somthing3;”,n paste_auto_cleanup_on_paste : true,n paste_convert_headers_to_strong : false,n paste_strip_class_attributes : “all”,n paste_remove_spans : false,n paste_remove_styles : false n });nn function fileBrowserCallBack(field_name, url, type, win) {n // This is where you insert your custom filebrowser logicn alert(“Filebrowser callback: field_name: “ + field_name + “, url: “ + url + “, type: “ + type);nn // Insert new URL, this would normaly be done in a popupn win.document.forms[0].elements[field_name].value = “someurl.htm”;n }n”; function render() { return “ “.$this->script.”getExtra().”>”.$this->getValue().” “; } } ?> 然后我们把class FormTextArea extends XoopsFormTextArea 改成 class FormTextArea extends XoopsFormTextAreaJsWithTinyMCE。哈哈,现在成功了。 不过这样也只有当编辑在发布文章选择textarea这个编辑器时才有用,选了koivi和DHTML时还是不行。这也容易,我们把 xoopsmodulesarticleincludeform.article.php中的 $form_art->addElement(new XoopsFormSelectEditor($form_art,”editor”,$editor,$nohtml));这一行去掉。这样用户就没得选择了。然后我们把默认编辑器设成textarea: 找到 $form_art->addElement(new XoopsFormEditor(art_constant(“MD_TEXT”), $editor, $editor_configs, $nohtml, $onfailure=null)); 这一行,把$editor改为”textarea”,ok了,系统不管什么时候都会使用TinyMCE. 当然,您看到了,在Xoops/js目录下加上TinyMCE这个目录。这个您自个儿Google一下 然后去tinyMCE官方网站去下吧。