Habilitar el editor WYSIWYG tinymce para Symfony 2

junio 28, 2012 at 17:18 1 comentario

Para usar edición WYSIWYG con tinymce dentro de un proyecto de symfony2 seguimos los siguientes pasos (suponemos que symfony2 está instalado en la ruta /var/www/symfony):

  • Creamos el directorio /var/ww/symfony/vendor/bundles/Stfalcon/Bundle:
    mkdir -p /var/www/symfony/vendor/bundles/Stfalcon/Bundle
  • Descargamos el Bundle que corresponde al editor tinymce en la ruta /var/www/symfony/vendor/bundles/Stfalcon/Bundle:
    wget https://github.com/stfalcon/TinymceBundle/tarball/master /var/www/Symfony/vendor/bundles/Stfalcon/Bundle

    Se descargará con el nombre master pero sigue siendo un archivo comprimido como tar.gz

  • Descomprimimos el archivo descargado:
    tar -xzvf /var/www/Symfony/vendor/bundles/Stfalcon/Bundle/master -C /var/www/Symfony/vendor/bundles/Stfalcon/Bundle/

    Esto nos creará una carpeta con un nombre similar a stfalcon-TinymceBundle-a545e3e

  • Cambiamos el nombre de la carpeta generada anteriormente por TinymceBundle:
    mv stfalcon-TinymceBundle-a545e3e TinymceBundle
  • Ahora editamos el archivo /var/ww/symfony/deps y agregamos lo siguiente al final:
    [TinymceBundle]
        git=git://github.com/stfalcon/TinymceBundle.git
        target=/bundles/Stfalcon/Bundle/TinymceBundle
  • Editamos el archivo /var/ww/symfony/app/autoload.php y agregamos lo siguiente:
    $loader->registerNamespaces(
        // ...
        'Stfalcon'                       => __DIR__.'/../vendor/bundles',
    ));
    
  • Editamos el archivo /var/ww/symfony/app/AppKernel.php y agregamos lo siguiente:
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Stfalcon\Bundle\TinymceBundle\StfalconTinymceBundle(),
        );
    }
    
  • Luego configuramos el editor en el archivo /var/ww/symfony/app/config/config.yml:
    stfalcon_tinymce:
        include_jquery: true
        tinymce_jquery: true
        textarea_class: "tinymce"
        theme:
            simple:
                language: es
                mode: "textareas"
                theme: "advanced"
                theme_advanced_buttons1: "mylistbox,mysplitbutton,bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,link,unlink"
                theme_advanced_buttons2: ""
                theme_advanced_buttons3: ""
                theme_advanced_toolbar_location: "top"
                theme_advanced_toolbar_align: "left"
                theme_advanced_statusbar_location: "bottom"
                plugins: "fullscreen"
                theme_advanced_buttons1_add: "fullscreen"
            advanced:
                theme: "advanced"
                plugins: "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template"
                theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect"
                theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor"
                theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen"
                theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak"
                theme_advanced_toolbar_location: "top"
                theme_advanced_toolbar_align: "left"
                theme_advanced_statusbar_location: "bottom"
                theme_advanced_resizing: true
            medium:
                mode: "textareas"
                theme: "advanced"
                plugins: "table,advhr,advlink,paste,xhtmlxtras,spellchecker"
                theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,forecolor,backcolor,|,hr,removeformat,|,sub,sup,|,spellchecker"
                theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,cleanup,code,|,tablecontrols"
                theme_advanced_buttons3: ""
                theme_advanced_toolbar_location: "top"
                theme_advanced_toolbar_align: "left"
                theme_advanced_statusbar_location: ""
                paste_auto_cleanup_on_paste: true
                spellchecker_languages: "+English=en,Dutch=nl"
            bbcode:
                mode: "none"
                theme: "advanced"
                plugins: "bbcode"
                theme_advanced_buttons1: "bold,italic,underline,undo,redo,link,unlink,image,forecolor,styleselect,removeformat,cleanup,code"
                theme_advanced_buttons2: ""
                theme_advanced_buttons3: ""
                theme_advanced_toolbar_location: "bottom"
                theme_advanced_toolbar_align: "center"
                theme_advanced_styles: "Code=codeStyle;Quote=quoteStyle"
                entity_encoding: "raw"
                add_unload_trigger: false
                remove_linebreaks: false
                inline_styles: false
                convert_fonts_to_spans: false
    
  • Luego desde la raíz del symfony ejecutamos el comando:
    php app/console assets:install web/
  • Para utilizar el WYSIWYG desde la clase que crea el formulario agregamos uno o más campos similares al siguiente:
    $builder->add('introtext', 'textarea', array(
            'attr' => array(
                'class' => 'tinymce',
                'data-theme' => 'medium' // simple, advanced, bbcode
            )
        ));
    
  • Por último en la plantilla twig que va a desplegar dicho campo agregamos la siguiente instrucción al final de la página:
    {{ tinymce_init() }}

Listo listo.

setas
Enjoy!

Entry filed under: bases de datos, frameworks, linux, mysql, php, programación, symfony. Tags: , , , , , , .

Instalación y uso básico de Symfony2 Generar reportes en excel utilizando Symfony2

1 comentario Add your own

Dejáte un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Acerca de Mi:


Hell-Out world!!

Digo yo

Es difícil hacerse la vida fácil.

Dice Victor Frankl

Lo que importa no es tanto que la vida de una persona esté llena de dolor o de placer, sino que esté llena de sentido.

Digo yo

Que dura está la vida.

Dice Jhon Lennon

La vida es lo que pasa mientras haces planes.

Digo yo

Dónde haya un computín esté dónde esté algo comenzará en cero.

Dice Einstein

Dios no juega a los dados.

Dice Niels Bohr

Einstein no le diga a Dios lo que tiene que hacer.

Dice el Che:

Seamos realistas y hagamos lo imposible.

Dice Goethe:

Lo que no comprendemos no lo poseemos.

Digo yo:

Hay que tratar de travesear todo.

Dice Oscar Wilde:

Cualquier hombre puede llegar a ser feliz con una mujer, con tal de que no la ame.

Digo yo:

De fijo dijo eso porque era homosexual.

Artículos

junio 2012
L M X J V S D
« Oct   Ago »
 123
45678910
11121314151617
18192021222324
252627282930  

A %d blogueros les gusta esto: