183 lines
5.1 KiB
PHP
183 lines
5.1 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* @version $Id: none.php 14401 2010-01-26 14:10:00Z louis $
|
||
|
|
* @package Joomla
|
||
|
|
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
|
||
|
|
* @license GNU/GPL, see LICENSE.php
|
||
|
|
* Joomla! is free software. This version may have been modified pursuant
|
||
|
|
* to the GNU General Public License, and as distributed it includes or
|
||
|
|
* is derivative of works licensed under the GNU General Public License or
|
||
|
|
* other free or open source software licenses.
|
||
|
|
* See COPYRIGHT.php for copyright notices and details.
|
||
|
|
*/
|
||
|
|
|
||
|
|
// no direct access
|
||
|
|
defined( '_JEXEC' ) or die( 'Restricted access' );
|
||
|
|
|
||
|
|
jimport( 'joomla.plugin.plugin' );
|
||
|
|
|
||
|
|
/**
|
||
|
|
* No WYSIWYG Editor Plugin
|
||
|
|
*
|
||
|
|
* @package Editors
|
||
|
|
* @since 1.5
|
||
|
|
*/
|
||
|
|
class plgEditorNone extends JPlugin
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Constructor
|
||
|
|
*
|
||
|
|
* For php4 compatability we must not use the __constructor as a constructor for plugins
|
||
|
|
* because func_get_args ( void ) returns a copy of all passed arguments NOT references.
|
||
|
|
* This causes problems with cross-referencing necessary for the observer design pattern.
|
||
|
|
*
|
||
|
|
* @param object $subject The object to observe
|
||
|
|
* @param array $config An array that holds the plugin configuration
|
||
|
|
* @since 1.5
|
||
|
|
*/
|
||
|
|
function plgEditorNone(& $subject, $config)
|
||
|
|
{
|
||
|
|
parent::__construct($subject, $config);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Method to handle the onInitEditor event.
|
||
|
|
* - Initializes the Editor
|
||
|
|
*
|
||
|
|
* @access public
|
||
|
|
* @return string JavaScript Initialization string
|
||
|
|
* @since 1.5
|
||
|
|
*/
|
||
|
|
function onInit()
|
||
|
|
{
|
||
|
|
$txt = "<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>";
|
||
|
|
return $txt;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* No WYSIWYG Editor - copy editor content to form field
|
||
|
|
*
|
||
|
|
* @param string The name of the editor
|
||
|
|
*/
|
||
|
|
function onSave( $editor ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* No WYSIWYG Editor - get the editor content
|
||
|
|
*
|
||
|
|
* @param string The name of the editor
|
||
|
|
*/
|
||
|
|
function onGetContent( $editor ) {
|
||
|
|
return "document.getElementById( '$editor' ).value;\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* No WYSIWYG Editor - set the editor content
|
||
|
|
*
|
||
|
|
* @param string The name of the editor
|
||
|
|
*/
|
||
|
|
function onSetContent( $editor, $html ) {
|
||
|
|
return "document.getElementById( '$editor' ).value = $html;\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 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 onDisplay( $name, $content, $width, $height, $col, $row, $buttons = true )
|
||
|
|
{
|
||
|
|
// Only add "px" to width and height if they are not given as a percentage
|
||
|
|
if (is_numeric( $width )) {
|
||
|
|
$width .= 'px';
|
||
|
|
}
|
||
|
|
if (is_numeric( $height )) {
|
||
|
|
$height .= 'px';
|
||
|
|
}
|
||
|
|
|
||
|
|
$buttons = $this->_displayButtons($name, $buttons);
|
||
|
|
$editor = "<textarea name=\"$name\" id=\"$name\" cols=\"$col\" rows=\"$row\" style=\"width: $width; height: $height;\">$content</textarea>" . $buttons;
|
||
|
|
|
||
|
|
return $editor;
|
||
|
|
}
|
||
|
|
|
||
|
|
function onGetInsertMethod($name)
|
||
|
|
{
|
||
|
|
$doc = & JFactory::getDocument();
|
||
|
|
|
||
|
|
$js= "\tfunction jInsertEditorText( text, editor ) {
|
||
|
|
insertAtCursor( document.getElementById(editor), text );
|
||
|
|
}";
|
||
|
|
$doc->addScriptDeclaration($js);
|
||
|
|
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
function _displayButtons($name, $buttons)
|
||
|
|
{
|
||
|
|
// Load modal popup behavior
|
||
|
|
JHTML::_('behavior.modal', 'a.modal-button');
|
||
|
|
|
||
|
|
$args['name'] = $name;
|
||
|
|
$args['event'] = 'onGetInsertMethod';
|
||
|
|
|
||
|
|
$return = '';
|
||
|
|
$results[] = $this->update($args);
|
||
|
|
foreach ($results as $result) {
|
||
|
|
if (is_string($result) && trim($result)) {
|
||
|
|
$return .= $result;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if(!empty($buttons))
|
||
|
|
{
|
||
|
|
$results = $this->_subject->getButtons($name, $buttons);
|
||
|
|
|
||
|
|
/*
|
||
|
|
* This will allow plugins to attach buttons or change the behavior on the fly using AJAX
|
||
|
|
*/
|
||
|
|
$return .= "\n<div id=\"editor-xtd-buttons\">\n";
|
||
|
|
foreach ($results as $button)
|
||
|
|
{
|
||
|
|
/*
|
||
|
|
* Results should be an object
|
||
|
|
*/
|
||
|
|
if ( $button->get('name') )
|
||
|
|
{
|
||
|
|
$modal = ($button->get('modal')) ? 'class="modal-button"' : null;
|
||
|
|
$href = ($button->get('link')) ? 'href="'.$button->get('link').'"' : null;
|
||
|
|
$onclick = ($button->get('onclick')) ? 'onclick="'.$button->get('onclick').'"' : null;
|
||
|
|
$return .= "<div class=\"button2-left\"><div class=\"".$button->get('name')."\"><a ".$modal." title=\"".$button->get('text')."\" ".$href." ".$onclick." rel=\"".$button->get('options')."\">".$button->get('text')."</a></div></div>\n";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$return .= "</div>\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
return $return;
|
||
|
|
}
|
||
|
|
}
|