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("&lt;", "<", $content);
                $content = str_replace("&gt;", ">", $content);
                $content = str_replace("&amp;", "&", $content);
                //$content = str_replace("&nbsp;", " ", $content);
                $content = str_replace(array("&quot;","&#039;"), 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]


Reply via email to