History of FckeditorPackage

Version 9

FckeditorPackage

A WYSIWYG Editor Integrated into Bitweaver

Created by: laetzer, Last modification: 19 Aug 2007 (04:51 UTC) by laetzer

FCKEditorPackage


FCKEditor is a WYSIWYG editor for bitweaver from fckeditor.net.


Basic Features

  • Multiple Browser Support Including:
    • IE 5.5+ (Windows)
    • Firefox 1.0+
    • Mozilla 1.3+
    • Netscape 7+.
  • XHTML 1.0 Output
  • CSS Support: For easier integration with a theme.
  • Font formatting: type, size, color, style, bold, italic, etc
  • Text formatting: alignment, indentation, bullets list, etc
  • Cut, Paste and Paste as Plain Text, Undo and Redo
  • Paste from Word cleanup with auto detection
  • Link and anchors support
  • Table creation and editing (add, delete rows, etc) - one of the best systems in the market.
  • Table cells editing (size, colors, etc)
  • Right click context menus support
  • Support for Toolbar Customization
  • Skins
  • Spell Checker Integration
  • Automatic browser detection and customization
  • Full Page Mode
  • Easy to Use
  • Source Code View

NOTE: FCKEditor is currently NOT compatible with the Ajax Comments feature in LibertyPackage.


Toolbars

Bitweaver includes the ability to use one of several toolbars with FCKEditor easily. It is also possible to customize the toolbar by editing the fckeditor/jscripts/fckconfig.js file to specify your own and then adding it to fckeditor/admin/admin_fckeditor_inc.php.

Skins

Bitweaver includes the ability to skin the interface with one of the three default skins. It is also possible to create your own skin. You will have to add it to the fckeditor/admin/admin_fckeditor_inc.php file to add it to the administration interface.

Adding Your Own Features - aka Plugins

Here are two good tutorials to get you started
Create a Dialog Based Plug-In
Creating a Non-dialog Based Plugin

bitweaver Plugins for FCKeditor


Split

The Split plugin gives you a button that will insert a split tag: ...split... into your content. This is good for blog posts and articles where you want to easily define a read more section. Now your users don't need to know how to use ...split... they can just click the "Insert Split" button, which includes a hover tool tip letting you know it is for adding a Read More section.

To enable Split in your FCKeditor you need to edit your fckconfig.js file in fckeditor/jscripts/

In fckconfig.js you need to add/uncomment the following:

<?php
FCKConfig
.Plugins.Add'split' ) ;
?>


and you need to add Split to your toolbar list, for example like:

<?php
FCKConfig
.ToolbarSets["Basic"] = [
    [
'Source'],['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','Split']
] ;
?>


Attachment

The Attachment plugin integrates bitweaver's native LibertyAttachments features into the FCKeditor. Note that the current state of the Attachment plugin only supports previewing of images, and does not yet create attachment associations between content and uploaded files. Like the attachment tab in most liberty content packages this fck plugin will let you upload files via ajax to associate with your user account. You can also get a list of all attachments your user has ever uploaded. From the resulting list it is a single click to insert attachment code into your text. The fck plugin will also preview the attachment image in the fck editing interface.

To enable Attachment in your FCKeditor you need to edit your fckconfig.js file in fckeditor/jscripts/ and edit the fck header_inc.tpl

In fckconfig.js you need to add/uncomment the following:

<?php
FCKConfig
.Plugins.Add'attachment' ) ;
?>


and you need to add Attachment to your toolbar list, for example like:

<?php
FCKConfig
.ToolbarSets["Basic"] = [
    [
'Source'],['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','Attachment']
] ;
?>


In header_inc.tpl you need to include a number of the MochiKit javascript library files.

<?php
{if $gBitSystem->isPackageActive('fckeditor') }
<
script src="../util/javascript/libs/MochiKit/Base.js" type="text/javascript"></script>
<script src="../util/javascript/libs/MochiKit/Iter.js" type="text/javascript"></script>
<script src="../util/javascript/libs/MochiKit/Async.js" type="text/javascript"></script>

...rest of header code
{/if}
?>


Image Browser Fix

To get the Resources Browser (Image > Browse Server) working so you can upload files,flash,images and media follow the steps below

in jscripts/editor/fckconfig.js
change asp

<?php
    
var _FileBrowserLanguage    'asp' ;
    var 
_QuickUploadLanguage    'asp' ;
?>

to php

<?php
    
var _FileBrowserLanguage    'php' ;
    var 
_QuickUploadLanguage    'php' ;
?>


create the following directories in your storage directory
Image,Media,Flash,File

in jscripts/editor/filemanager/browser/default/connectors/php/config.php
change

<?php
    $Config
['Enabled'] = false;
?>

to

<?php
    $Config
['Enabled'] = true;
?>


also set

<?php
    $Config
['UserFilesPath'] = "/UserFiles/";
?>

to point to your storage directory or any other directory that you want your media to be stored in.

<?php
    $Config
['UserFilesPath'] = "/bitweaver/storage/";
?>


make sure apache can write to the directories you created above

<?php
chmod 
-R 777 storage/
?>

Now point your browser to your fckconfig.js file and hit reload
http://localhost/bitweaver/fckeditor/jscripts/fckconfig.js this just makes sure that your changes arn't cached in your browser

Custom Configuration File

By setting up your FCKEditor with a custom config file, updates become less problematic, playing around with different settings becomes easier, and the overall setup becomes tidier:


<?php
1. copy 
/fckeditor/templates/header_inc.tpl to your theme folder:
2. /themes/styles/mytheme/fckeditor/header_inc.tpl
3. find a line like
:
4. var oFCKeditor something ;
5. write this underneath:
6. oFCKeditor.Config["CustomConfigurationsPath"] = "{$smarty.const.THEMES_PKG_URL}styles/mytheme/fckeditor/fckconfig.js";
7. you might also want this next extra line for ultra-fine-control over the toolbar:
8. oFCKeditor.ToolbarSet "finetunedtoolbar";
?>


Now, of course, create the file fckconfig.js in the path mentioned above. This holds all the desired variables from their documentation pages. Now if the FCKEditor package is updated, your settings are not lost. (Take it even one step further by externalizing that XML file. Copy the file fckstyles.xml from /fckeditor/jscripts/fckstyles.xml to the location claimed underneath, the content and how to utilize it is almost self-explanatory.) Anyway, for example, a fckconfig.js file might look like this:


<?php
FCKConfig
.Plugins.Add'attachment' ) ;
FCKConfig.BodyClass 'fck';
FCKConfig.EditorAreaCSS '/themes/styles/mystyle/mystyle.css';
FCKConfig.ForceStrongEm true;
FCKConfig.StylesXmlPath '/themes/styles/mystyle/fckeditor/fckstyles.xml';
FCKConfig.ToolbarSets["finetunedtoolbar"] = [
        [
'Source','Style','PasteText','RemoveFormat','Undo','Redo','Bold','Italic','OrderedList','UnorderedList','Outdent','Indent'],
        [
'Link','Unlink','Table','SpecialChar','FitWindow','Attachment']
] ;

// UTF-8 + ))Text_Diff((
// FCKConfig.ProcessHTMLEntities = false;
// FCKConfig.IncludeLatinEntities = false;
// FCKConfig.IncludeGreekEntities = false;
// FCKConfig.ProcessNumericEntities = false;
?>


UTF-8 + Text_Diff?

If you're using the HTML format and also sometimes the WYSIWYG editor and still want to compare different versions of a Wiki page efficiently, you want Text_Diff, the PEAR package that should be installed on your system. There are only 2 problems. First, to make Text_Diff work in a UTF-8 (e.g., non English) environment, you need to stop FCKEditor from processing special characters, otherwise Text_Diff will always find that Motörhead is something else than Motörhead. For that, the last 4 variables in the code sample above are ace of spades.

Next, in /wiki/page_history.php around line 40 you could change

<?php
this
: {$diffdata}
to this: {$diffdata|html_entity_decode}
?>


... which can both be desired, but the latter version renders HTML, so that Text_Diff'ing might not result in an exact view of all character that have actually changed, but in a nicy-fied view of what content has actually changed. Well, you had to be there ...


Page History
Date/CommentUserIPVersion
20 Jul 2010 (09:46 UTC)
Lester Caine81.138.11.13622
Current • Source
laetzer85.178.3.11921
View • Compare • Difference • Source
duco mansvelder213.73.188.14118
View • Compare • Difference • Source
laetzer141.20.150.4317
View • Compare • Difference • Source
laetzer85.178.14.21616
View • Compare • Difference • Source
Kozuch85.207.244.16015
View • Compare • Difference • Source
laetzer85.178.54.5313
View • Compare • Difference • Source
laetzer85.178.54.5312
View • Compare • Difference • Source
laetzer85.178.27.15211
View • Compare • Difference • Source
laetzer85.178.27.15210
View • Compare • Difference • Source
laetzer85.178.49.1409
View • Compare • Difference • Source
nexe58.105.83.1177
View • Compare • Difference • Source
nexe58.105.83.1176
View • Compare • Difference • Source
Will89.247.87.1845
View • Compare • Difference • Source
Will68.174.111.474
View • Compare • Difference • Source
Will68.174.111.473
View • Compare • Difference • Source
Will68.174.111.472
View • Compare • Difference • Source
WaterDragon145.116.228.341
View • Compare • Difference • Source