| Editor Mambots |
The Editor mambots define plugable WYSIWYG editors that can be made
available. Here is a very simple example for no editor. The file
none.php looks like:
// snip - the usual header $_MAMBOTS->registerFunction( 'onInitEditor', 'botNoEditorInit' ); $_MAMBOTS->registerFunction( 'onGetEditorContents', 'botNoEditorGetContents' ); $_MAMBOTS->registerFunction( 'onEditorArea', 'botNoEditorEditorArea' ); /** * No WYSIWYG Editor - javascript initialisation */ function botNoEditorInit() { return <<<EOD <script type="text/javascript"> function insertAtCursor(myField, myValue) { if (document.selection) { // IE support myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } else if (myField.selectionStart || myField.selectionStart == '0') { // MOZILLA/NETSCAPE support var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } </script> EOD; } /** * No WYSIWYG Editor - copy editor contents to form field * @param string The name of the editor area * @param string The name of the form field */ function botNoEditorGetContents( $editorArea, $hiddenField ) { return <<<EOD EOD; } /** * No WYSIWYG Editor - display the editor * @param string The name of the editor area * @param string The content of the field * @param string The name of the form field * @param string The width of the editor area * @param string The height of the editor area * @param int The number of columns for the editor area * @param int The number of rows for the editor area */ function botNoEditorEditorArea( $name, $content, $hiddenField, $width, $height, $col, $row ) { global $mosConfig_live_site, $_MAMBOTS; $results = $_MAMBOTS->trigger( 'onCustomEditorButton' ); $buttons = array(); foreach ($results as $result) { $buttons[] = '<img src="'.$mosConfig_live_site.'/mambots/editors-xtd/'.$result[0].'" onclick="insertAtCursor( document.adminForm.'.$hiddenField.', ''.$result[1].'' )" />'; } $buttons = implode( "", $buttons ); return <<<EOD <textarea name="$hiddenField" id="$hiddenField" cols="$col" rows="$row" style="width:$width;height:$height;">$content</textarea> <br />$buttons EOD; }The onInitEditor event is usually called in the head area of a template. Any javascript the editor needs should be placed here.The onGetEditorContents event allows for the content of the editor to be copied back to the form field.The onEditorArea displays the actual editor area.Editor areas may take advantage of Mambots in the editors-xtd group using the onCustomEditorButton event. Mambots making use of this event must
return an array of two element, the first is the image to display and
the second is the text to insert. The following code demonstrates the
the Mambot to include the text for a mosimage tag.$_MAMBOTS->registerFunction( 'onCustomEditorButton', 'botMosImageButton' ); /** * mosimage button * @return array A two element array of ( imageName, textToInsert ) */ function botMosImageButton() { global $mosConfig_live_site; return array( 'mosimage.gif', '' ); } |
|
| Last Updated ( Friday, 11 February 2005 ) |