Magento – Layout call static block CMS – Llamar desde Layout a Bloque CMS

Dentro de Magento tenemos la facilidad de poder llamar a un bloque estático o Cms Block/Bloque CMS desde un layout porque necesitemos incorporar una nueva funcionalidad por ejemplo en la apariencia de una plantilla.

Sólo es necesario un par de pasos:

1.- Crear el bloque CMS al que queremos llamar. En este caso llamaremos «bloqueCMS»

2.- Desde el layout donde lo queremos incorporar pondremos la llamada teniendo en cuenta la colocación con el atrbuto after o before. He puesto un nombre distintos en el atributo «name» para que nos demos cuenta que lo que cuenta es el id del bloque o identificador y no el título de él.

<block type="cms/block" name="Bloque-CMS-R2D2" before="contacto_dcha">
 <action method="setBlockId"><block_id>bloqueCMS</block_id></action>
 </block> 

Magento – Llamar a un Bloque CMS desde un Bloque CMS

Dentro de Magento tenemos la facilidad de poder llamar a un bloque estático o Cms Block/Bloque CMS desde otro bloque estático o desde una página.

Sólo es necesario un par de pasos:

1.- Crear el bloque CMS al que queremos llamar. En este caso llamaremos «llamada»

2.- Desde el bloque que va a ser el llamador o la página llamadora escribir lo siguiente.

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

Magento – Modificar mensaje de bienvenida – Modify wellcome message

Modificar o incluir en la plantilla el mensaje de Bienvenida de Magento no es complicado.
Lo primero y más sencillo es ver como incluirlo en la plantilla, normalmente en el header.phtml que te puedes encontrar en /app/design/frontend/default/plantilla/template/page/html
Ahí, puedes incluir la siguiente línea:

<p class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></p>

Esto, cogerá la combinación entre lo que tienes en el administrador y lo que tienes en el core.

Pongamos el caso de que cuando el cliente no está conectado quiero que salga «Bienvenido» y cuando está conectado, que le ponga «Bienvenido, Pepito Pérez».

Para ello no tocaríamos el código de core y en el administrador podríamos poner en Sistema-> Diseño->Cabecera: Bienvenido

Si no quiero que aparezca nada cuando no está conectado, el texto del administrador de Magento lo borraremos.

Ahora, hemos decidido ser más amigables y cambiar el texto de Bienvenida y ponerlo sólo con nombre o saludando con «Hola…».

Iremos a app/code/core/Mage/Page/Block/Html/Header.php y sin editarlo en ese sitio ya que perderíamos con los cambios de versiones, lo copiamos a app/code/local/Mage/Page/Block/Html/.

En la función getWelcome() es donde deberíamos la línea:
$this->escapeHtml(Mage::getSingleton(‘customer/session’)->getCustomer()->getName()));
por:
$this->escapeHtml(Mage::getSingleton(‘customer/session’)->getCustomer()->getFirstname()));

Magento Llamar a un bloque estático desde un phtml – Call static block in phtml

Llamar a un bloque estático desde un .phtml es bien sencillo. Sólo hay que recordar la sentencia!

Pongamos que hemos hecho un bloque estático para modificar un formulario de contacto típico de Magento y queremos que en ese bloque estático haya información de contacto de la tienda.

Primero creamos el bloque:
CMS-> Bloque estático

Imaginemos que de nombre le pusimos mas_info.

Lo guardamos y ahora editamos el fichero .phtml para insertar este código:

 <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('mas_info')->toHtml() ?> 

Obtener un atributo de un producto en Magento

Magento tiene una gran versatilidad para la definición de productos y filtros que puede llegar a ser un suplicio a la hora de mostrarlos, si aún no se está muy preparado con el modelo de datos de Magento.

¿cómo incluir un atributo de un producto en el frontend para que el cliente lo pueda ver? Muy sencillo.

Dependiendo si es una lista desplegable (drop-down) o no, se hará de la siguiente manera:

<?php echo $_product->getAttributeText(’attribute_name’) ?>
ó
<?php echo $_product->getAttributeName() ?>

Comprueba fácilmente en la ficha de producto, view.phtml e incluye el atributo que más rabia te dé.

Es sencillo y lo verás de inmediato.

Fuente en página web

Dolor de cabeza el que tenemos siempre para poner ciertas fuentas en una página web y más cuidado que hay que tener porque esa fuente puede no verla el navegador destino.

Supongamos que la fuente se llama «fto-ori»

El código para incrustar esa fuente en nuestro código sería:

@font-face {
src:
url(“fuentes/fto-ori.eot”), /*Para IE*/
url(“fuentes/fto-ori.ttf”) format(“truetype”); /*Para el resto*/
}
y el código para utilizarla sería:

body {

font-family:”fto-ori”;

}

También puedes incrustarlo directamente en el body:

body          { font-family:»fto-ori»,sans-serif; src: url(«fuentes/fto-ori.ttf»)

Inclusión Fecha creación Ticket – Factura Magento

Me he puesto un pelín las pilas de la cantidad de cosas que os quería contar!

Hoy hablaré de como incluir una cosa tan sencilla como la fecha de factura en una factura en Magento. Y diréis: ¿para qué esto?

Si con Magento tienes todas las formas de pago online (en ese mismo momento), no hay pegas, ya que la fecha del pedido y la de la factura coinciden, pero no es así en una transferencia no-online. Imaginemos que un cliente hace un pedido por transferencia y la transferencia no es efectiva hasta pasados un par de días. Eh ahí el problema! Tenemos fecha de pedido y factura distintos y muchas tiendas online quieren constancia de eso.

Muy sencillo, chicos!

Haremos la inclusión de la fecha de factura en los documentos, pdfs que se envía a los clientes.

Modificando el fichero Abstract.php e incluyendo la siguiente sentencia:

$page->drawText(Mage::helper(‘sales’)->__(‘Invoice Date: ‘) . Mage::helper(‘core’)->formatDate($invoice->getCreatedAtStoreDate(), ‘medium’, false), 285, 760, ‘UTF-8’);

Este fichero lo encontraremos en /httpdocs/app/code/core/Mage/Sales/Model/Order/Pdf. !Recordad no modificarlo al estar en core!

Copiarlo primeramente a /httpdocs/app/code/local/Mage/Sales/Model/Order/Pdf, con toda la estructura de directorios y en ese fichero modificarlo e incluirle la sentencia antes citada.

Validación en Magento

Cuánto tiempo amigos!

Demasiado jaleo para poder atender a todo, 😉

Os quería mostrar una posibilidad de incluir un check obligatorio para Magento:

<input type="checkbox" id="something" name="something" value="1" title="something" class="checkbox required-entry"

Esto es muy práctico para aquellos formularios o toma de contacto del cliente con la tienda online, solicitando que acepte los términos y condiciones de la tienda.

Google Adwords

Google Adwords es una herramienta que día tras día va avanzando para enseñar a sus clientes todas las entradas que han tenido en su web a través de enlaces patrocinados, desde la propia herramienta de búsqueda u otras revistas.

Hoy en día tienen un teléfono de asistencia gratuita muy cómodo para que te orienten y te ayuden a saber orientar tus campañas.

Hoy me he encontrado un editor de campañas para Windows y Mac, mucho más amigable que el propio navegador de google Adwords. Se llamada Adwords Editor y se puede bajar desde el siguiente enlace:  Editor Google

Muy cómodo porque a través de pantallas similares a las de cualquier programa puedes ir cambiando todo teniendo en cuenta que lo realizas en local y que cuando quieras llevar los cambios, los envías.

Bájate el programa con el enlace que te he pasado, prueba la experiencia y dame tus opiniones

Encriptación del código – eval decode…

Parece curioso que una vez que uno ha conseguido adentrarse en el mundillo del OPEN SOURCE, puede comprobar las miles de historias que hay para mermar el que puedan acceder todas las personas, el que sea OPEN SOURCE de verdad.

¿cuántas veces me habré encontrado código encriptado en php? A estas alturas, esta pregunta soy incapaz de contestarla por qué podría ser algo así como cientos, miles,..

El perfil de gente que encripta el código es bien variopinto, desde el típico que ha averiguado que no sepas lo que codificas y codifica una línea tonta hasta el que encripta realmente el «copyright» de algo que está ofreciendo gratuito y que se busca las formas para que no le quiten el enlace a su página. En estos últimos casos, te advierten, además que eliminar un trozo de código, hará que te deje de funcionar la web. Pero como todo, en estos entornos, es cuestión de estudiar, de estudiar codificación, programación, etc y al final se acaba encontrando la solución.

A mí, personalmente la codificación de ciertas líneas de código no me gusta e intento eliminarlo todo o al menos decodificarlo, para poder tener una lectura rápida de los programas, ya que como es lógico nadie se sabe de cabeza las codificaciones, ni leyéndolas puede llegar a una conclusión de lo que se hace en esas líneas de código.

Poniendo un ejemplo:
Sabríais que dice la siguiente línea de código: eval(gzinflate(base64_decode(’80jNyclXyFTPVUhJTc5PSU0BAA==’)));
La respuesta es «Hello i’m decoded». Supongo que ahora veis porque digo que no es obvio.

Desde aquí, os muestro varias páginas que os pueden ayudar cuando os encontréis en vuestras páginas con estas codificaciones y simplemente queréis saber lo que hacen.

Desencriptadores, encriptadores:
Desencriptador 1
Desencriptador 2
Desencriptador / Encriptador

Espero que os sirva de ayuda y a disfrutar de la codificación abierta!