Hello all,
I'm trying to create a Zend_Form_Element for the Cute Editor WYSIWYG editor,
that i want to use in a project i'm currently working on. I have found that
there
already exists a joomla plugin for that editor and used that as a base for
creating
my Form_Element which resultst in this
Cute Editor Form Element
[code]
<?php
require_once 'Zend/Registry.php';
require_once 'ZendX/JQuery/View/Helper/UiWidget.php';
class app_View_Helper_FormCuteEditor extends Zend_View_Helper_FormTextarea
{
public function setView(Zend_View_Interface $view)
{
parent::setView($view);
$this->CuteEditor = $this->view->CuteEditor();
$this->CuteEditor->enable();
return $this;
}
function onGetContent($editor)
{
return "document.getElementById('cuteeditor').getHTML();";
}
function onSetContent($editor, $html)
{
return "document.getElementById('cuteeditor').setHTML(".$html.");";
}
function onSave($editor)
{
return
"document.getElementById('cuteeditor').value=document.getElementById('cuteeditor').getHTML();";
}
public function formCuteEditor($name, $content, $width, $height, $col,
$row, $buttons = true)
{
if (is_numeric( $width )) {
$width .= 'px';
}
if (is_numeric( $height )) {
$height .= 'px';
}
$content = str_replace("<", "<", $content);
$content = str_replace(">", ">", $content);
$content = str_replace("&", "&", $content);
//$content = str_replace(" ", " ", $content);
$content = str_replace(array(""","'"), array("\"",
"'"),
$content);
//ToDo auto set editor direction
//if ($language->isRTL()) {
//}
include_once(ROOT_PATH .
"scripts/cuteeditor_files/include_CuteEditor.php");
$editor = new CuteEditor();
$name = "cuteeditor";
$editor->ID = "cuteeditor";
$editor->Width = $this->params->get('width');
$editor->Height = $this->params->get('height');
$editor->Text = $content;
$editor->FilesPath = ROOT_PATH . "scripts/cuteeditor_files";
$templateitemList = $this->params->get( 'TemplateItemList');
if ($templateitemList==""||$templateitemList==0)
{
$editor->AutoConfigure = $this->params->def(
'AutoConfigure', 'Simple' );
}else{
$editor->TemplateItemList=$templateitemList;
}
if ($this->params->def( 'EditorWysiwygModeCss', '' )=="")
{
// establish the database connection
$db = Zend_Registry::get('dbconnection');
// select the template names from the site_templates
table
$query = "SELECT template_name FROM site_templates";
$template = $db->fetchAll($query);
$file_path = $this->HTMLPath('templates/'. $template
.'/css/');
if (file_exists(ROOT_PATH . '/templates' . $template .
'/css/editor.css')){
$content_css = $file_path . 'editor.css';
}else{
$content_css = $file_path . 'template.css';
}
}
$editor->EditorWysiwygModeCss =
$content_css;
$editor->ThemeType =
$this->params->def( 'ThemeType',
'Office2007' );
$ImageGalleryPath =
$this->params->def(
'ImageGalleryPath', ROOT_PATH .'/images/stories' );
$FlashGalleryPath =
$this->params->def(
'FlashGalleryPath', ROOT_PATH .'/images/stories/' );
$MediaGalleryPath =
$this->params->def(
'MediaGalleryPath', ROOT_PATH .'/images/stories/' );
$FilesGalleryPath =
$this->params->def(
'FilesGalleryPath', ROOT_PATH .'/images/stories/' );
$TemplateGalleryPath =
$this->params->def(
'TemplateGalleryPath', ROOT_PATH .'/images/stories/' );
//Sanitize image path
$ImageGalleryPath
=
preg_replace('/(^\/|\/$)/','',$ImageGalleryPath);
$FlashGalleryPath
=
preg_replace('/(^\/|\/$)/','',$FlashGalleryPath);
$MediaGalleryPath
=
preg_replace('/(^\/|\/$)/','',$MediaGalleryPath);
$FilesGalleryPath
=
preg_replace('/(^\/|\/$)/','',$FilesGalleryPath);
$TemplateGalleryPath =
preg_replace('/(^\/|\/$)/','',$TemplateGalleryPath);
$editor->ImageGalleryPath =
$this->HTMLPath($ImageGalleryPath);
$editor->FlashGalleryPath =
$this->HTMLPath($FlashGalleryPath);
$editor->MediaGalleryPath =
$this->HTMLPath($MediaGalleryPath);
$editor->FilesGalleryPath =
$this->HTMLPath($FilesGalleryPath);
$editor->TemplateGalleryPath =
$this->HTMLPath($TemplateGalleryPath);
$editor->AbsoluteImageGalleryPath =
ROOT_PATH ."/".
$ImageGalleryPath;
$editor->AbsoluteFlashGalleryPath =
ROOT_PATH ."/".
$FlashGalleryPath;
$editor->AbsoluteMediaGalleryPath =
ROOT_PATH ."/".
$MediaGalleryPath;
$editor->AbsoluteFilesGalleryPath =
ROOT_PATH ."/".
$FilesGalleryPath;
$editor->AbsoluteTemplateGalleryPath = ROOT_PATH ."/".
$TemplateGalleryPath;
$editor->CustomCulture =
$this->params->def( 'CustomCulture',
'en-US' );
$editor->BreakElement =
$this->params->def( 'BreakElement',
'Div' );
$editor->AccessKey =
$this->params->def( 'AccessKey', ''
);
$editor->AllowEditServerSideCode =
$this->params->def(
'AllowEditServerSideCode', 0 );
$editor->BackColor =
$this->params->def( 'BackColor',
'#ffffff' );
$editor->BaseHref =
$this->params->def( 'BaseHref', ''
);
$editor->BorderColor =
$this->params->def( 'BorderColor',
'#dddddd' );
$editor->CodeViewTemplateItemList =
$this->params->def(
'CodeViewTemplateItemList',
'Print,Cut,Copy,Paste,Find,ToFullPage,FromFullPage,SelectAll,SelectNone' );
$editor->DisableItemList =
$this->params->def( 'DisableItemList',
'' );
$editor->EditorBodyClass =
$this->params->def( 'EditorBodyClass',
'' );
$editor->EditorBodyId =
$this->params->def( 'EditorBodyId',
'' );
$editor->EditorBodyStyle =
$this->params->def(
'EditorBodyStyle', '' );
$editor->EditorOnPaste =
$this->params->def(
'EditorOnPaste', 'ConfirmWord' );
$editor->EnableAntiSpamEmailEncoder =
$this->params->def(
'EnableAntiSpamEmailEncoder', 1 );
$editor->EnableContextMenu =
$this->params->def(
'EnableContextMenu', 1 );
$editor->EnableObjectResizing =
$this->params->def(
'EnableObjectResizing', 1 );
$editor->EnableStripScriptTags =
$this->params->def(
'EnableStripScriptTags', 1 );
$editor->Focus =
$this->params->def( 'Focus', 0 );
$editor->FullPage =
$this->params->def( 'FullPage', 0 );
$editor->MaintainAspectRatioWhenDraggingImage =
$this->params->def(
'MaintainAspectRatioWhenDraggingImage', 1 );
$editor->RemoveTBODYTag =
$this->params->def( 'RemoveTBODYTag',
1);
$editor->ShowBottomBar =
$this->params->def(
'ShowBottomBar', 1 );
$editor->ShowHtmlMode =
$this->params->def(
'ShowHtmlMode', 1 );
$editor->ShowPreviewMode =
$this->params->def(
'ShowPreviewMode', 1 );
$editor->ShowTagSelector
= $this->params->def( 'ShowTagSelector', 1
);
$editor->TabSpaces =
$this->params->def( 'TabSpaces',
'3' );
$editor->ToggleBorder =
$this->params->def( 'ToggleBorder',
1 );
$editor->URLType
= $this->params->def( 'URLType', 'Default' );
$editor->UseFontTags =
$this->params->def( 'UseFontTags', 0
);
$editor->UseHTMLEntities =
$this->params->def(
'UseHTMLEntities', 1 );
$editor->UsePhysicalFormattingTags =
$this->params->def(
'UsePhysicalFormattingTags', 0 );
$editor->UseSimpleAmpersand =
$this->params->def(
'UseSimpleAmpersand', 0 );
$editor->XHTMLOutput =
$this->params->def( 'XHTMLOutput', 0
);
$editor->CssClassStyleDropDownMenuNames =
$this->params->def(
'CssClassStyleDropDownMenuNames', '' );
$editor->CssClassStyleDropDownMenuList = $this->params->def(
'CssClassStyleDropDownMenuList', '' );
$editor->HelpUrl
= ROOT_PATH .
"scripts/cuteeditor_files/Help/default.htm";
$editor->Draw();
return $this->_displayButtons($name, $buttons);
}
function HTMLPath($input_path)
{
if(substr($input_path, 0, 1)!="/")
{
$ThisFileName = basename($_SERVER['PHP_SELF']); // get
the file name
$abspath =
str_replace($ThisFileName,"",$_SERVER['PHP_SELF']); // get
the directory path
$input_path=$abspath.$input_path;
$input_path = str_replace('/', '', $input_path);
}
return $input_path;
}
function onGetInsertMethod($name)
{
}
}
[/code]
The problem that i have is that i don't know how i can port the
onGetInsertMethod function from the joomla plugin to code that works with
Zend Framework. The onGetInsertMethod function in the Joomla
plugin looks like this:
onGetInsertMethod
[code]
function onGetInsertMethod($name)
{
$doc = & JFactory::getDocument();
$js= "function jInsertEditorText( text ) {
var editor = document.getElementById('CE_".$name."_ID');
editor.PasteHTML(text);
}";
$doc->addScriptDeclaration($js);
return true;
}
[/code]
Hope that someone can help me with this problem, many thanx in advance
Regards, Emile
--
View this message in context:
http://zend-framework-community.634137.n4.nabble.com/Cute-Editor-WYSIWYG-Form-Element-tp3590248p3590248.html
Sent from the Zend Framework mailing list archive at Nabble.com.
--
List: [email protected]
Info: http://framework.zend.com/archives
Unsubscribe: [email protected]