Documentation Menu

1.5 Template Project

The Joomla! Documentation Working Group is running a project to develop detailed reference and tutorial material on Joomla! 1.5 templates.  There is a project page on the documentation wiki where you can see the work in progress and help us by contributing your knowledge.

Who's Online

We have 5 guests online

Help Site License

The Joomla! Help Site content is copyright © 2005 - 2008 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution NonCommercial ShareAlike 2.5. Some parts of this website may be subject to other licenses.
Home arrow Manual arrow 4. Mambots arrow Editor Mambots

Editor Mambots PDF Print E-mail
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 )
 
< Prev   Next >