Añadir contenido HTML en las descripciones de las categorías de Prestashop 1.5.x

A día de hoy Prestashop todavía no nos facilita un editor de textos que nos permita dar formato a las descripciones de las categorías ni a las descripciones de los fabricantes ni a las de proveedores o distribuidores.

En este artículo vamos a ver como añadir un editor de textos a estos campos de texto de la administración obteniendo como resultado lo que se muestra en la siguiente imagen:

rte_ps

Para conseguir este editor en la administración de categorías de Prestashop tan solo deberemos localizar en los archivos de la tieda el fichero:

/controllers/admin/AdminCategoriesController.php

Dentro de este archivo localiza la palabra «textarea» que se localizará aproximadamente sobre las líneas 400-410 donde verás un array como el siguiente:

array(
    'type' => 'textarea',
    'label' => $this->l('Description:'),
    'name' => 'description',
    'lang' => true,
    'rows' => 10,
    'cols' => 100,
    'hint' => $this->l('Invalid characters:').' <>;=#{}'
),

A esta construcción del array deberemos añadir un campo más:

'autoload_rte' => true,

Quedando el array de la siguiente forma:

array(
    'type' => 'textarea',
    'label' => $this->l('Description:'),
    'name' => 'description',
    'lang' => true,
    'autoload_rte' => true,
    'rows' => 10,
    'cols' => 100,
    'hint' => $this->l('Invalid characters:').' <>;=#{}'
),

La misma idea deberemos realizar si lo que queremos es añadir un editor de textos a los campos textarea de la administración de los fabricantes o la administración de los distribuidores pero editando los correspondientes ficheros:

Para fabricantes:

controllers/admin/AdminManufacturersController.php

Para distribuidores:

controllers/admin/AdminSuppliersController.php

 

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(11 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

14 respuestas a “Añadir contenido HTML en las descripciones de las categorías de Prestashop 1.5.x”

  1. Rafael dice:

    Yo tengo la version 1.5.6.2 y a veces me sale y a veces no, he revisado el archivo /controllers/admin/AdminCategoriesController.php y tengo la linea ‘autoload_rte’ => true, pero nada no me aparece.

  2. Unai dice:

    Buenas:

    Estoy realizando una pagina para venta online y estaba personalizando las categorías de CMS para que pudieran tener contenido. Es decir, que se pueda incluir textos, hipervinculos, imágenes, … en las categorías CMS

    He incluido el siguiente texto en el archivo AdminCmsCategoriesController.php:

    array(
    ‘type’ => ‘textarea’,
    ‘label’ => $this->l(‘Page content’),
    ‘name’ => ‘content’,
    ‘autoload_rte’ => true,
    ‘lang’ => true,
    ‘rows’ => 5,
    ‘cols’ => 40,
    ‘hint’ => $this->l(‘Invalid characters:’).’ ;=#{}’
    ),
    Ahora ya se me muestra la ventana de contenido con todas las herramientas en el backoffice, pero cuando le doy a grabar, no se me guarda. Cuando vuelvo a entrar en la categoría, la ventana de contenido esta vacía.

    Que me falta por incluir? o que he hecho mal?

    Muchas gracias por adelantado.

    • Jose Aguilar dice:

      Falta modificar la clase CMSCategory de forma similar a como modifico la clase Category en este tutorial

      • Pacheco dice:

        Muy buenas:

        A mi me pasa lo mismo que a Unai, pero no consigo encontrar en este artículo como modificar la clase CMSCategory y Category, según le respondes…

        Si que modifico la clase Validate, pero nada, aparece el editor de textos, pero no se guardan los cambios.

        Tengo la versión 1.6.

        Gracias de antemano.

  3. ANDRÉS dice:

    Hola he puesto esto que le recomiendas a uno para insertar videos o java en la descripcion, ya que tengo ps 1.5.6 y me salta fatal error al presionar en cualquier producto..

    if (preg_match(\\\\’/&lt;[\\\\\\\\s]*script/ims\\\\’, $html) || preg_match(\\\\’/(\\\\’.$events.\\\\’)[\\\\\\\\s]*=/ims\\\\’, $html) || preg_match(\\\\’/.*script\\\\\\\\:/ims\\\\’, $html))
    return false;

    if (!$allow_iframe &amp;&amp; preg_match(\\\\’/&lt;[\\\\\\\\s]*(i?frame|form|input|embed|object)/ims\\\\’, $html))
    return false;

    y déjalo de la siguiente manera: (inmediatamente comenzará a funcionar. Es un problema que apareció con P.S 1.5.5 en adelante):

    /* if (preg_match(\\\\’/&lt;[\\\\\\\\s]*script/ims\\\\’, $html) || preg_match(\\\\’/(\\\\’.$events.\\\\’)[\\\\\\\\s]*=/ims\\\\’, $html) || preg_match(\\\\’/.*script\\\\\\\\:/ims\\\\’, $html))
    return false;

    if (!$allow_iframe &amp;&amp; preg_match(\\\\’/&lt;[\\\\\\\\s]*(i?frame|form|input|embed|object)/ims\\\\’, $html))
    return false; */

  4. ANDRÉS dice:

    Hola he puesto esto que le recomiendas a uno para insertar videos o java en la descripcion, ya que tengo ps 1.5.6 y me salta fatal error al presionar en cualquier producto..

    if (preg_match(\\’/<[\\\\s]*script/ims\\’, $html) || preg_match(\\’/(\\’.$events.\\’)[\\\\s]*=/ims\\’, $html) || preg_match(\\’/.*script\\\\:/ims\\’, $html))
    return false;

    if (!$allow_iframe && preg_match(\\’/<[\\\\s]*(i?frame|form|input|embed|object)/ims\\’, $html))
    return false;

    y déjalo de la siguiente manera: (inmediatamente comenzará a funcionar. Es un problema que apareció con P.S 1.5.5 en adelante):

    /* if (preg_match(\\’/<[\\\\s]*script/ims\\’, $html) || preg_match(\\’/(\\’.$events.\\’)[\\\\s]*=/ims\\’, $html) || preg_match(\\’/.*script\\\\:/ims\\’, $html))
    return false;

    if (!$allow_iframe && preg_match(\\’/<[\\\\s]*(i?frame|form|input|embed|object)/ims\\’, $html))
    return false; */

  5. Patricia dice:

    Hola, he añadido el editor de textos html para las categorías pero en la página principal, cuando pasas el ratón por encima, aparece todo el texto html. He ido a category-tree-branch.tpl y he eliminado el «title», forzado la compilación e incluso he limpiado todo con el módulo «Flush Caches & Compile» pero nada, sigue apareciendo.
    Alguna idea de qué más hacer para que no salga esta descripción cuando pasas el ratón por encima?
    Gracias, un saludo.

  6. Antonio dice:

    Hola. Me gustaría saber cómo puedo hacer que aparezca entre esos botones para seleccionar parrafo (Etiquetas h1,h2,h3) etc. Porque no veo esos botones. Gracias.

  7. jose dice:

    hola buenas yo he podido añadir el contenido html a las categorias, pero una vez que intento añadir un video, me da el siguiente error:
    El campo descripción (Español (Spanish)) no es válido.
    y he modificado, en preferencias/general: Permitir iframes en campos html.
    y nada no hay manera de poder introducir videos.
    espero una solucion.
    un saludo y gracias

    • Alexander dice:

      Busca esto en tu carpeta de instalación, luego en Classes/Validate.php:

      if (preg_match(‘/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
      return false;

      if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html))
      return false;

      y déjalo de la siguiente manera: (inmediatamente comenzará a funcionar. Es un problema que apareción con P.S 1.5.5 en adelante):

      /* if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
      return false;

      if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html))
      return false; */

    • Alexander dice:

      Busca esto en tu carpeta de instalación, luego en Classes/Validate.php:

      if (preg_match(\’/<[\\s]*script/ims\’, $html) || preg_match(\’/(\’.$events.\’)[\\s]*=/ims\’, $html) || preg_match(\’/.*script\\:/ims\’, $html))
      return false;

      if (!$allow_iframe && preg_match(\’/<[\\s]*(i?frame|form|input|embed|object)/ims\’, $html))
      return false;

      y déjalo de la siguiente manera: (inmediatamente comenzará a funcionar. Es un problema que apareció con P.S 1.5.5 en adelante):

      /* if (preg_match(\’/<[\\s]*script/ims\’, $html) || preg_match(\’/(\’.$events.\’)[\\s]*=/ims\’, $html) || preg_match(\’/.*script\\:/ims\’, $html))
      return false;

      if (!$allow_iframe && preg_match(\’/<[\\s]*(i?frame|form|input|embed|object)/ims\’, $html))
      return false; */

  8. Marc dice:

    He hecho lo mismo para las categorías CMS y una vez añadido el editor de textos y he puesto una imagen le doy a guardar, dice que ok, pero realmente no me guarda los cambios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.