Configurar la cantidad de registros por defecto en una grilla

Por defecto las grillas del backend de Magento muestran hasta 20 registros.

Como otras, ésta propiedad puede ser redefinida en el constructor de la clase.

Si queremos que el valor por defecto de paginación sea otro, sólo tenemos que agregar una línea al constructor de nuestra grilla.

public function __construct()
    {
        parent::__construct();
        ...
        $this->setDefaultLimit(100);
    }

De ésta forma, si no se especifica un valor, el que aquí asignemos será el usado.

El único detalle a tener en cuenta es que los valores posibles a establecer tienen que coincidir con los que se muestran en el dropdown.

Si quisiéramos modificarlos, tendríamos que editar el archivo /app/design/adminhtml/default/default/template/widget/grid.phtml y establecer aquellos valores que nos estén faltando.

Url friendly en CodeIgniter

CodeIgniter nos permite la utilización de urls amistosas (si, la traducción suena bastante fea).

Dado que por defecto ésto no funciona, tenemos que hacer algunos pequeños ajustes.

Lo primero será crear un archivo .htaccess con lo siguiente.

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

A partir de ahora, en lugar de usar:

http://www.dominio.com.ar/index.php/controlador/accion/

Vamos a poder usar:

http://www.dominio.com.ar/controlador/accion/

Para que la impresión de urls resulte correcta, es necesario hacer un ajuste en el archivo de configuración. Esto aplica en particular si vamos a usar la función site_url del helper Url.

Para evitar que al llamar a la función nos devuelva http://www.dominio.com.ar/index.php, vamos a cambiar la línea 23 de /system/application/config/config.php, y vamos a dejar el valor de la key index_page en blanco.

La configuración debería quedar de ésta forma:

$config['index_page'] = "";

Con estos pequeños ajustes ya deberíamos estar aplicando urls semánticas sin problemas.

El teclado numérico no funciona en Ubuntu

En una de las últimas actualizaciones de la distro me pasó que el teclado numérico ya no funcionaba.

Lo primero que pensé fue que alguna de las actualizaciones requería algún reinicio (reconozco que no le presté gran atención a la lista de paquetes) y que ésto estaba generando algún tipo de incompatibilidad o conflicto entre paquetes.

Luego de haber reiniciado, la molestia se convirtió en problema. Buscando un poco encontré el bug sobre el no funcionamiento del teclado numérico en Ubuntu.

Al parecer se viene arrastrando el tema desde hace varias ediciones, aunque la solución es realmente sencilla.

Lo primero, es abrir “Tecnologías de asistencia”.

Ahora vamos a las opciones de “Accesibilidad del teclado”.

Continue reading

Primeros pasos con CodeIgniter

Ya habíamos visto (hace un tiempo) cómo se compone, mínimamente, la estructura de directorios y archivos que componen CodeIgniter.

Una vez que hayas descomprimido el framework, ya estamos listos para empezar.
Lo primero que deberíamos hacer es comenzar con las configuraciones básicas. Para esto vamos a abrir el archivo /system/application/config/config.php y vamos a cambiar el primer parámetro en la línea 14:

$config['base_url'] = "http://example.com/";

Lo vamos a cambiar por la url completa de nuestra aplicación.
Vamos a suponer que se tratara de este mismo blog, la url quedaría de la siguiente forma.

$config['base_url'] = "http://www.damianculotta.com.ar/";

Como bien dice el manual, si vamos a utilizar base de datos, debemos especificar la configuración en /system/application/config/database.php. Busquemos la siguiente sección:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

Y completemos, al menos, los datos de conexión a nuestra base de datos.

Cuando accedamos a nuestra url, veremos el mensaje de bienvenida que es manejado por el controller Welcome del framework.

Con esto ya estamos listos para comenzar a desarrollar nuestra primera aplicación.

Contact Form 7 y los archivos adjuntos

Hace ya un buen tiempo había hablado sobre cómo implementar Contact Form 7 en nuestro blog.

Hoy vamos a ver cómo agregar a nuestro formulario, la posibilidad de recibir archivos adjuntos (y que nos lleguen en el mail, claro está).

Para empezar, voy a tomar mi actual formulario de contacto (que siendo fiel al lo vago que vengo siendo, no tiene diseño).

Formulario de contacto con Contact Form 7

Ahora vamos a crear un campo del tipo file que nos va a permitir enviar archivos adjuntos.

Seleccionado el tipo de campo en Contact Form 7

Continue reading

Dc_Notification 0.1.0

Luego de un buen tiempo en que comencé a jugar con esto, hoy me puse las pilas y lo convertí en extensión completa.

La razón de ser de ésta modificación, se debe a que hace unos meses, debido a los problemas que presentaba el sitio oficial de Magento, muchos backends comenzaron a fallar (al punto de quedar inutilizables).

Investigando se descubrió que la plataforma busca cada cierto tiempo un feed en el sitio oficial. Cuando el feed no estaba disponible o el sitio estaba caído, el backend de nuestras tiendas quedaba, con suerte, complicado para su operación. En otros casos, directamente no funcionaba.

Como decía, con ésta extensión, van a tener opciones para el uso del feed oficial.

  • Puede seguir utilizándose como hasta ahora.
  • Puede configurarse la herramienta para que no busque nunca notificaciones.
  • Podemos indicar un feed personalizado para que las actualizaciones vengan de una fuente que nosotros indiquemos.

A continuación, algunas capturas y las explicaciones pertinentes de cómo funciona.

Configuración de opciones para las Notificaciones

Continue reading

Mostrar phtmls y bloques usados en el skin de backend de Magento

Pequeño truco para cuando necesiten detectar algo en el backend.

Existe una funcionalidad en Magento que nos permite mostrar qué archivos phtml e incluso qué bloques son invocados en cada pantalla. El detalle con esto es qué sólo puede configurarse para el frontend.

Por si alguno no se ha dado cuenta, me refiero al template path hints. Vamos a refrescar cómo habilitarlas para el frontend.

Primero, tenemos que ir a Sistema -> Configuración. Ahí tenemos que cambiar el alcance de la configuración.

Selección del alcance de configuraciones en Magento

Recuerden que éstas opciones sólo funcionan a nivel de store view, por lo cual será necesario hacer un pequeño cambio.

Seleccionamos el store view al cual vamos a aplciarle el cambio

Ahora si, buscamos las opciones de desarrollo. (Se encuentran al final de la columna)

Opciones para desarrollo de Magento

Continue reading

Variable media en las plantillas de email de Magento

Uno de los pocos cambios de la nueva versión de la plataforma, consiste en el agregado de la variable “media” para la composición de los templates de email.

Su uso es absolutamente sencillo.

Al igual que cuando invocamos {{skin url=”"}} para imprimir algún contenido de un skin dado, la variable media utiliza el mismo parámetro.

<img src="{{media url="imagen.jpg"}}" alt="Magento" border="0"/></a>

Esto hará que se busque la imagen dentro de la carpeta media. Si usáramos subcarpetas, deberemos escribir el path partiendo siempre desde dicha carpeta.

Si bien puede parecer una pavada la inclusión del template, su uso puede entenderse en el caso de campañas de promoción, en las cuales podríamos utilizar (es sólo un ejemplo para graficar) el mismo banner que tenemos en la home de la tienda, en el cuerpo del mail.