Bloques estáticos Magento 1.9.2.2 no aparecen.

Después de actualizar a la versión de Magento 1.9.2.2, o la instalación de parches de seguridad SUPEE-6788 en una versión anterior, muchas personas se están dando cuenta de que sus códigos cortos de bloques estáticos ya no están trabajando. En mi página de inicio, por ejemplo, estoy incluyendo un Bloque CMS estático de la siguiente manera:

{{block type="cms/block" block_id="slide_home"}}

Después de la actualización, este bloque ya no se presentan. De hecho, este código corto provocó un error de PHP para mostrar en mis archivos de registro:

Aviso: Undefined variable: bloque en / app / Código / core / Mago / Core / modelo / Email / Plantilla / Filter.php on line 187

Además, pronto se hizo evidente que el error no se limita a cortos para CMS bloques estáticos, pero que en realidad todos mis bloques personalizados, incluidos los de las extensiones de 3 ª parte, no logró mostrar.

La causa de no visible bloques en magento. 

Al investigar el tema, rápidamente me di cuenta de que esto no es un error, sino una característica de seguridad adicional en el parche de seguridad SUPEE-6788. Al leer los detalles técnicos que el autor establece claramente que los bloques se tienen que añadir a una lista blanca si se van a mostrar:

Magento ahora incluye una lista blanca de bloques o directivas permitidas. Si un módulo o extensión utiliza variables como {{config path = “web / no segura / base_url”}} y {{tipo de bloque = rss / order_new}} en páginas CMS o correos electrónicos, y las directivas no están en esta lista, usted necesitará agregar con su script de instalación de base de datos. Extensiones o código personalizado que trata el contenido (como extensiones del blog) podrían verse afectados. – Ver más en: http://magento.com/security/patches/supee-6788-technical-details#sthash.oywSvFeq.dpuf

Comprobación del error de PHP anterior, queda claro que es causada por el tipo de bloque solicitado (en mi caso cms / manzana) no se añade a la lista blanca. El código responsable de filter.php se ve de la siguiente manera:

 if (isset ($ blockParameters ['type'])) {
     if ($ this -> _ permissionBlock-> isTypeAllowed (blockParameters $ ['type'])) {
         Tipo $ = $ blockParameters ['type'];
         $ bloque = $ esquema de trazado> createBlock ($ tipo, null, $ blockParameters);
     }
 } Elseif (isset ($ blockParameters ['id'])) {
     $ bloque = $ esquema de trazado> createBlock ('cms / bloque');
     if ($ bloque) {
         $ bloqueantes> setBlockId (blockParameters $ ['id']);
     }
 }

En pocas palabras, este pequeño pedazo de PHP comprueba si el tipo de bloque se agrega a la lista blanca, que se almacena en la tabla permission_block MySQL.

La solución bloques estáticos Magento.

Es evidente que todo lo que queda es añadir el tipo de bloque que desea mostrar a la lista blanca de Magento. Por suerte, esto es muy fácil y se puede hacer a través de la interfaz de backend de Magento. Simplemente navegue hasta

Sistema => Permisos => Bloques

Y añadir el tipo de bloque que desea mostrar. Para una visual de mi situación, ver las capturas de pantalla de abajo.


Vaya a Sistema => Permisos => Bloques

Haga clic en Agregar nuevo bloque, llenar el tipo de bloque y el conjunto Permitido Sí

¿Qué tipo de bloque debería añadir a la lista blanca en Magento?

Algunas personas tienen dificultades para saber qué bloque id para añadir a la lista blanca. Si ha agregado el bloque con un código corto, sólo tiene que añadir el tipo de bloque. En este código corto

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading...