Hace un tiempo ya vimos como empezar a trabajar con el método formatDate.
El mismo se encuentra disponible en casi cualquier phtml, debido a la estructura de herencias de bloques.
La única función que tiene, y no por eso despreciable, es manipular el formato en el cuál se mostrará una fecha proveniente de la base de datos. Si bien lo vamos a usar de manera habitual dentro de nuestros phtmls, es posible utilizarlo también dentro de las plantillas de email.
Vamos a suponer que tenemos un objeto $data en una variable en nuestro phtml, que contiene un registro cualquiera (un producto, una página, etc) y que tiene un campo de fecha (al que vamos a llamar date haciendo honor a la falta de creatividad de ésta hora).
Ahora bien, si quisiéramos mostrarlo y simplemente lo invocamos, obtendríamos la fecha tal cual viene desde la base de datos.
<?php echo $data->getDate(); ?>
Mostraría
2009-09-03 11:19:31 PM
Claro está que lo que buscamos es hacer presentable ese valor, y que, además, funcione de manera acorde a nuestra configuración regional.
Para lograrlo, recurrimos al método formatDate (que lo pueden encontrar en /app/code/core/Mage/Core/Helper/Data.php).
Veamos un primer uso del método dentro de un phtml.
<?php echo $this->formatDate($data->getDate()); ?>
El resultado sería
03/09/09
Es posible que necesitemos otra representación de la fecha. De la mano del método, podemos, mediante un parámetro adicional, especificar el formato a utilizar.
Los parámetros disponibles son:
- short
- medium
- long
- full
Veamos en casos prácticos cada uno.
<?php echo $this->formatDate($data->getDate(), 'short'); ?>
Devuelve: 03/09/09.
Short es el parámetro por defecto del método.
<?php echo $this->formatDate($data->getDate(), 'medium'); ?>
Devuelve: 03/09/2009.
<?php echo $this->formatDate($data->getDate(), 'long'); ?>
Devuelve: 3 de septiembre de 2009.
<?php echo $this->formatDate($data->getDate(), 'full'); ?>
Devuelve: jueves 3 de septiembre de 2009.
Un último parámetro que podemos aplicar, tiene que ver con el hecho de mostrar o no el valor de hora del campo. Si han prestado atención, y salvo que se me esté pasando por alto algún campo, la totalidad de campos de fecha son campos datetime.
El método formatDate, por defecto, no muestra la hora, pero, si quisieramos, podríamos mostrarla agregando el parámetro true luego del formato.
Al usarlo:
<?php echo $this->formatDate($data->getDate(),'short',true); echo $this->formatDate($data->getDate(),'medium',true); echo $this->formatDate($data->getDate(),'long',true); echo $this->formatDate($data->getDate(),'full',true); ?>
Obtendríamos lo siguiente:
03/09/09 23:19 03/09/2009 23:19:31 3 de septiembre de 2009 23:19:31 PDT jueves 3 de septiembre de 2009 23h'19:31 PDT
Y con esto cerramos el capítulo de manipulación de fechas.
Hola Damian, estaba viendo que conocias bien el magento y queria consultarte si conoces algun add-on para poder usarlo en un formato multi vendor y de esta forma tener muchos vendedores que comparten el mismo site (todos ven los productos de todos) pero cada uno puede manejar su stock individual en forma privada (agregar, dar de baja, etc)
Muchas gracias
Pd. cualquier cosa ponete en contacto via email si se te ocurre algo
@Martin
¿Cómo estás?.
Si, hace más de un año que trabajo con Magento y ya he hecho (en equipo) unas cuantas implementaciones. También participo bastante en la comunidad.
El concepto de multitenant no es manejado por Magento Community Edition. Si se puede hacer con la versión Entreprise.
Por lo pronto no hay nada en la comunidad para dotar a Magento de un esquema de éste tipo. En lo personal, hace unos días estuve jugando un poco con el codigo y encontré algunos huecos por los cuales meterese para explorar este tema.
Por supuesto, lleva tiempo y energía. Personalmente lo estoy probando, pero de forma muy lenta (ya que aprovecho los pocos ratos libres que tengo para eso).