UWAGA: Strona zawiera materiały archiwalne. Większość artykułów dotyczy Joomla! 1.0
Start arrow Programowanie arrow Boty arrow Boty edytory
Boty edytory Drukuj Email
Redaktor: Stefan Wajda   
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
    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;
* 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
* 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 ) {
  <a href="http://www.php.net/global">global</a> $mosConfig_live_site, $_MAMBOTS;
  $results = $_MAMBOTS ⇒ trigger( 'onCustomEditorButton' );
  $buttons = <a href="http://www.php.net/array">array</a>();
  foreach ($results as $result) {
$buttons[] = '<img
onclick="insertAtCursor( document.adminForm.'.$hiddenField.',
''.$result[1].'' )" />';
  $buttons = <a href="http://www.php.net/implode">implode</a>( "", $buttons );
  return <<<EOD
name="$hiddenField" id="$hiddenField" cols="$col" rows="$row"
<br />$buttons

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() {
  <a href="http://www.php.net/global">global</a> $mosConfig_live_site;
  return <a href="http://www.php.net/array">array</a>( 'mosimage.gif', '' );
« poprzedni artykuł   następny artykuł »