Zend_Form textarea come editor

Salve a tutti  :)

Nella mia applicazione costruita con Zend ho creato tramite Zend_Form una textarea in cui l'utente può inserire del codice html.

Vorrei potenziare questa textarea trasformandola in un piccolo editor a sintassi colorata.

Voglio evitare editor wysiwyg, mi piace vedere direttamente il codice che si scrive. Per far questo ho trovato degli editor a sintassi colorata in javascript: http://helene.muze.nl/ e http://codepress.sourceforge.net/ che forse sono ciò che cerco.

Ne conoscete altri di simili?

Zend mette a disposizione nel suo framework qualcosa di semplice e di analogo?

Inoltre stavo pensando che forse è meglio sostituire la scrittura diretta in html a favore di bbcode, zend mette a disposizione qualche oggetto per la scrittura nelle textarea di codice bbcode e l'interpretazione successiva?

Spero riusciate a darmi qualche indirizzamento che non so esattamente cosa scegliere...

inviato 7 anni fa
Mario Santagiuliana
X 0 X

Nell'attesa che qualcuno mi dia qualche suggerimento mi rispondo da me  :)

Per quanto riguarda il bbcode pare ci sia una richiesta molto ben fatta che spero verrà presto inclusa nel framework di zend, credo sia una cosa utile e che a Zend manca:

http://framework.zend.com/wiki/display/ZFPROP/Zend_Markup+-+Pieter+Kokx

Per quanto riguarda l'editor ho trovato una cosa che mi piace molto di più dei due precedentemente citati:

http://markitup.jaysalvat.com/

Sembra sia esattamente ciò che cerco.

Qualcuno ha provato ad integrarlo nella propria applicazione zend? Si basa su jquery e abbiamo le librerie di zendx...

risposto 7 anni fa
Mario Santagiuliana
X 0 X

non so se questo possa esserti utile:

http://htmlpurifier.org/

qui un mitico tutorial (anche se datato) su come implementare il filter:

http://blog.astrumfutura.com/archives/365-Example-Zend-Framework-Blog-Application-Tutorial-Part-8-Creating-and-Editing-Blog-Entries-with-a-dash-of-HTMLPurifier.html

quando farai partire lo script riceverai degli avvisi di errore

devi modificare questa parte

<?php

class ZFBlog_Filter_HtmlBody extends ZFBlog_Filter_HTMLPurifier
{
   
    public function __construct($newOptions = null)
    {
        /* old
        $options = array(
            array('Cache', 'SerializerPath',
                Bootstrap::$root . '/cache/htmlpurifier'
            ),
            array('HTML', 'Doctype', 'XHTML 1.0 Strict'),
            array('HTML', 'Allowed',
                'p,em,h1,h2,h3,h4,h5,strong,a[href],ul,ol,li,code,pre,'
                .'blockquote,img[src|alt|height|width],sub,sup'
            ),
            array('AutoFormat', 'Linkify', 'true'),
            array('AutoFormat', 'AutoParagraph', 'true')
        );
       */
        //new
         $options = array(
            array('Cache.SerializerPath',
                Bootstrap::$root . '/cache/htmlpurifier'
            ),
            array('HTML.Doctype', 'XHTML 1.0 Strict'),
            array('HTML.Allowed',
                'p,em,h1,h2,h3,h4,h5,strong,a[href],ul,ol,li,code,pre,'
                .'blockquote,img[src|alt|height|width],sub,sup'
            ),
            array('AutoFormat.Linkify', 'true'),
            array('AutoFormat.AutoParagraph', 'true')
        );
    }

}

e quindi di conseguenza quest'altra:

<?php

class ZFBlog_Filter_HTMLPurifier implements Zend_Filter_Interface
{
   
    protected $_htmlPurifier = null;
   
    public function __construct($options = null)
    {
        $config = null;
        if (!is_null($options)) {
            $config = HTMLPurifier_Config::createDefault();
                foreach ($options as $option) {
                    // old
                    //$config->set($option[0], $option[1], $option[2]);
                    // new
                    $config->set($option[0], $option[1]);
                }
        }
        $this->_htmlPurifier = new HTMLPurifier($config);
    }

    public function filter($value)
    {
        return $this->_htmlPurifier->purify($value);
    }

}

se non vedi gli avvisi prova questo nel bootstrap:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);

fammi sapere se ti è stato utile

risposto 7 anni fa
arjuna
X 0 X

Ti ringrazio per la risposta  :)

Per dir la verità ho risolto il mio problema, temporaneamentem sfruttando markitup, gli utenti possono inserire nella textarea modificata da markitup del codice in html(non l'intera pagina html con doctype e tutto), htmlpurifier però potrebbe risultare utile comunque, gli darò un'occhiata.

Appena sarà disponibile anche l'oggetto zend_markup vorrei modificare markitup per l'uso del bbcode e non del codice html.

Grazie comunque  :bye:

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Anche se la domanda e' un po datata potrebbe sempre essere interessante avere una risposta inerente e attuale.

Come te anche io tempo fa mi sono imbatutto in questo quesito e ho trovato la soluzione grazie a questo post: http://juriansluiman.nl/en/article/100/improved-tinymce-solution-for-the-zend-framework

Spero ti sia d'aiuto.
Ciao

    small-logo.png  

risposto 5 anni fa
JellyBelly
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda