martes, 28 de agosto de 2012

Magento: Cómo crear/usar variables globales

A partir de Magento 1.4 se pueden usar las variables personalizadas, o si lo quieres ver de otra manera "constantes" que pueden ser usadas a lo largo de tu código en Magento.

En este caso, voy a ejemplificarlo con el uso de una variable que me es muy útil para controlar el uso de la directiva display_errors de php.ini para los entornos de desarrollo/producción

Paso 1:

Acceder al backend de Magento, luego a System->Custom Variables

Paso 2:
Agregar una nueva variable. En el formulario ingresar los datos:
  • Variable Code. Aquí va el nombre de la variable, lo recomendable es nombrar una variable de acuerdo a la sintaxis de php (pero sin el signo de $)
  • Variable Name. Aquí se debe poner la descripción de la variable
  • Variable HTML Value. Opcional, se puede usar este campo que permite tags de HTML o usar el campo de abajo o ambos, y decidir en tu programación cual de los dos valores quieres que te retorne: el valor HTML o el valor de texto plano
  • Variable Plain Value. Colocar el valor que se desea, pero aquí no se acepta código HTML
Guardar los datos. Ahora vayamos al código para saber cómo usar esta nueva variable.

Paso 3:
Usar el siguiente código:

// por default, el tipo de datos es un string
$objVar = Mage::getModel('core/variable')->loadByCode('display_errors');
$display_errors = $objVar->getValue('plain');
ini_set('display_errors', $display_errors);

// pero puedes explícitamente cambiar el tipo:
$display_errors = (int) $objVar->getValue('plain');
ini_set('display_errors', $display_errors);

// booleano:
$display_errors = (boolean) $objVar->getValue('plain');
ini_set('display_errors', $display_errors);

// de punto flotante:
$display_errors = (double) $objVar->getValue('plain');
ini_set('display_errors', $display_errors);
Para este ejemplo, todos los tipos de datos son válidos para la directiva ini_set('display_errors', string|int|bool|double)

Y como te imaginarás, en el método getValue() puedes poner 'html' en lugar de 'plain'

Espero que te sea de utilidad y como dicen los gringos: Happy coding!

1 comentario:

  1. holaaa amigoo ... oye k buen post ...

    tengo una preguntotaa... ... quiero quitar del administrador .. el campo de texto de HTML_VALUE...

    y dejar los otros 3 campos k tiene .. solo que no puedo .. podrias ayudarme ???

    ResponderEliminar

Datos personales

Mi foto
Podrás encontrar códigos recursos y artículos sobre PHP, JavaScript, jQuery, MooTools, Ajax, CSS, HTML, UML, RUP, AUP, XP (eXtreme Programming), Six-Sigma, CMMI, FrameWorks, Zend Framework, Magento, CodeIgniter, CakePHP, Joomla 1.5, Doctrine, Active Record, ORM, POO, MVC, MySql, PostgreSql. Este espacio está destinado a ayudar y compartir un poco de lo mucho que he recibido de la comunidad en la Red.