Archivados con la etiqueta: tips

Evitando conflictos de nombres entre Models y Controllers en CodeIgniter

En una época en cual las discusiones sobre qué framework usar, cuál es mejor, cuál es peor, etc, etc; yo sigo usando CodeIgniter para armar prototipos rápidos, para algunas pruebas de concepto e incluso para pequeñas aplicaciones (de hecho, la primera versión del módulo de traducciones para Magento, fue una aplicación CI).

Uno de los problemas que padece éste framework es que no puede usarse el mismo nombre para un modelo y para un controlador.

Normalmente esto se resuelve agregando un sufijo al modelo.

class Modulo_model extends CI_Model {
    //métodos de mi modelo
}

Como buen programador, la neurosis me persigue y me molesta de sobremanera tener que instanciar luego ese modelo usando:

$this->load->model('modulo_model');

Para evitar la severa molestia, lo que podemos aplicar es una sobrecarga a la clase core CI_Loader, en la cual vamos a agregar tan sólo un par de líneas al método model().

Seguir leyendo

Pedidos recientes en el Panel de Control del Comprador en Magento

Vuelvo a escribir, y al parecer perdí la capacidad de resumir los títulos.

En uno de los últimos proyectos en los que estuve participando, junto con Pedro, nos tocó modificar bastante el dashboard del Comprador.

De todo el lío que armamos, hubo una modificación que en si, llamó la atención: la cantidad de Pedidos recientes.

Normalmente, ese bloque se ve de la siguiente manera.

En nuestro caso, el requerimiento pedía que el número de pedidos debía ser otro. Ese parámetro no es editable en Magento, así que tuvimos que hacer un pequeño cambio.

Seguir leyendo

Mage::log()

Este pequeño post peca de obvio, aunque sólo busca funcionar como recordatorio.

Para testing, para generar un log propiamente dicho o para depurar código, en Magento podemos utilizar Mage::log() en lugar de la función nativa error_log de Php.

En primer lugar, para que se generen los logs, necesitamos activarlos. Para esto, desde el backend, vamos a System -> Configuration -> Developer.

Una vez activados, como bien indica la pantalla de configuración, vamos a encontrar los logs (una vez que se comiencen a ejecutar las llamadas) en var/log/system.log.

Si bien el método funciona con sus valores por defecto, nosotros podemos usarlo cambiando algunos de sus parámetros, incluso, podemos usarlo sin que los logs estén activados.

Seguir leyendo

Mejorando el SEO de nuestros módulos en Magento

Hoy vamos a ver dos pequeños trucos para lograr una mejor presentación de nuestros módulos.

El primero está relacionado con el SEO y el segundo con la navegación.

Para no perder la costumbre, vamos a partir de un módulo hecho por el Generador de Módulos. Además, para seguir manteniendo la línea, el módulo ha de llamarse Dc_Test.

Si intentamos acceder al controlador de nuestro módulo en el frontend, vamos a encontrarnos con lo siguiente.

Si vemos el código fuente, vamos a notar que hay 3 tags que no se están usando correctamente: title, description y keywords.

La idea del tip de hoy es aprovechar algunas funcionalidades de Magento para darle a nuestro módulo un poco de SEO haciendo uso de los tags html y del breadcrumb.

Seguir leyendo

Agregar validaciones javascript en Magento de forma no obstrusiva

Pequeño tip en pro de seguir con las buenas prácticas.

Hace no mucho tiempo me tocó hacer una personalización en la cual el requerimiento pedía agregar una regla adicional de validación para ciertos campos del checkout.

Lo que vamos a a ver es cómo agregar reglas propias de validación haciendo uso de la clase Validation. Por supuesto, la idea es no tocar el código original agregando código en js/prototype/validation.js o dentro de un phtml (como todavía seguimos viendo incluso en extensiones pagas).

Para el ejemplo vamos a necesitar 3 archivos.

El escenario con el cual voy a trabajar será el siguiente: “Agregar una nueva validación Javascript a ciertos campos del formulario del checkout sin por esto crear un nuevo módulo” (más adelante voy a volver sobre este punto).

Lo primero que vamos a hacer es crear nuestra función javascript de validación. Dado que la regla en si misma va más allá del skin, voy a crear el archivo dentro del directorio js. En mi caso, el archivo será /js/dc/validacion.js.

Seguir leyendo