miércoles, 31 de diciembre de 2014

Feliz año nuevo

Antes de nada me gustaría dar las gracias a todos aquellos que habéis estado visitando el blog durante este año, quienes habéis seguido mis tutoriales, manuales, mis chistes...

Este año ha sido intenso, mi viaje a Polonia, las practicas, el proyecto de Apache Cordova, terminar el ciclo, la búsqueda de trabajo, y el desarrollo de todo un manual de PHP, diseños, ayudas, algunas entradas de MAGENTO... toda una odisea que concluye esta noche y da la bienvenida a otra nueva aventura, ya que no dejo de programar, ya sea por el trabajo o por motus propio, de modo que este año espero poder contaros muchas cosas, según parece de Wordpress y Magento...

Es una lastima pero la dirección que pretendía tomar en mi desarrollo, enfocándolo a Laravel y otros frameworks se ha visto truncada, en esta caso felizmente por el trabajo, que me dirige más hacia los CMS y su programación, lugar por donde seguiremos avanzando en NETRUNNING.

De modo que prepararse para un nuevo año de ayudas, ideas y soluciones para vuestros desarrollos, seguro que empiezo a encontrar tiempo ahora que empiezo a estabilizarme en mi nueva faceta laboral.

Un abrazo a todos y os deseo que le mejor del 2014 sea lo peor del 2015....

miércoles, 17 de diciembre de 2014

Acceso a la base de datos de Wordpress

En ocasiones puede ser necesario identificar el nombre de la base de datos, el usuario, la clave... para nuestros trabajos con wordpress, puede incluso que tengamos algún tipo de error y no sepamos como solucionarlo.

Pues bien, para ello es tan sencillo como acceder vía ftp a nuestro servidor y una vez dentro localizar el archivo wp-config.php, donde encontraremos la siguiente información:

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //
/** El nombre de tu base de datos de WordPress */
define('DB_NAME', 'nombre de la base de datos');

/** Tu nombre de usuario de MySQL */
define('DB_USER', 'nombre del usuario de la base de datos');

/** Tu contraseña de MySQL */
define('DB_PASSWORD', 'password en la base de datos');

/** Host de MySQL (es muy probable que no necesites cambiarlo) */
define('DB_HOST', 'hosting de nuestra base de datos');

/** Codificación de caracteres para la base de datos. */
define('DB_CHARSET', 'utf8');

/** Cotejamiento de la base de datos. No lo modifiques si tienes dudas. */
define('DB_COLLATE', '');


Los textos en azul son los que nos dan la información sobre la conexión a nuestra base de datos y desde donde podemos solucionar muchos de los errores de conexión.

martes, 9 de diciembre de 2014

Traduciendo Magento

En muchas ocasiones nos veremos obligados a traducir, o cambiar algunos de los textos que trae Magento, desde el carrito, al mensaje de bienvenida o cualquier otra cosa.

Para ello tenemos dos opciones, la primera es hacerlo manualmente que aunque es mucho más tediosa, puede resultar mejor si se hacen muchos cambios, ya que no ralentiza el sistema. La segunda por su parte se realiza haciendo traducciones "en caliente", es decir sobre la propia página web, aunque puede llegar el caso de que si abusamos de este método la web se ralentice un poco.

Traduciendo manualmente

Para hacer esto debemos de dirigirnos por medio de ftp a la ubicación de los archivos de idioma que se encuentran en: app >> locale >> es_ES

En esta carpeta se encuentran los archivos .csv en los que se encuentran los valores en inglés y en español, tan solo hace falta añadir el valor en español o modificar el que ya tiene para que su traducción aparezca en línea.

Este sistema es muy sencillo aunque muy laborioso ya que hay muchos archivos que varían en su extensión y puede ser realmente tedioso.

Traduciendo en caliente

La otra forma de traducir, menos tediosa, aunque puede sobrecargar el sistema si se traduce todo de este modo es hacerlo en caliente, es decir sobre la propia web, que puede o no estar en proceso de producción.

Para llevarla a cabo debemos irnos a la parte de administración de la tienda, y entrar en Sistema >> Configuración una vez dentro, buscamos avanzado en la parte izquierda y clicamos en desarrollador. Esto nos abrirá un menú y debemos abrir, Línea interna de traducción, y poner las opciones que nos interesen en sí.
  • Activado para el frontend: nos permitirá hacer la traducción en el frontend
  • Activado para el administrador: nos permitirá hacer los cambios en la parte de administración.
Hacemos click en guardar configiración y nos vamos al frontend de nuestra tienda, y vemos que hay muchas partes rodeadas de puntitos rojos y al pasar el ratón por encima aparece un librito azul. (como señala la flecha verde)
Al hacer click sobre el librito, se abre un cuadro de dialogo donde se nos permite cambiar el texto.
En este dialogo también tenemos que marcar la casilla  Store View Specific, para que el cambio se haga solo en el idioma que tiene la web actualmente.


Una vez que hemos puesto el nuevo texto, le damos a submit y podemos repetir el proceso tantas veces como queramos.

Una vez terminemos es necesario volver a a desactivar las traducciones online.

Reseteamos la cache, de la cual habrá un aviso en la administración de Magento y los cambios se quedan realizados.

Páginas visibles en Magento segun el grupo de usuarios

Una petición que muy común entre los clientes que solicitan una web en Magento es que ciertas páginas solo estén visibles para los usuarios registrados o incluso solo para ciertos grupos de usuarios.

Yo me he encontrado con este problema y estuve buscando como solucionarlo por toda la red, encontrando soluciones de pago, bastante caras por cierto, hasta que finalmente logré dar con la piedra filosofal, que no es más que unos pequeños scripts, claro que hay que hacer algo de código.

Lo primero que debemos de hacer es crear nuestro archivo .phtml, en el cual introduciremos el código que necesitamos para que podamos poner nuestras condiciones...

Página solo visible a usuarios registrados

Comenzaremos por una página que solo puede ser vista por usuarios registrados; para ello en nuestro archivo .phtml debemos de poner el siguiente código base:
<?php if(Mage::getSingleton('customer/session')->isLoggedIn()): ?>
<!-- Aquí se mostrará el código html si el cliente está logueado -->
<?php else: ?>
<!-- Aquí se mostrará el código html  si no se está logueado -->
<?php endif; ?>

Tan solo nos queda introducir el código en cada una de las dos opciones y ya esta.

Página solo visible para ciertos grupos de usuarios

Puede ocurrir que queramos que una página sea visible solo para un grupo de usuarios (si es para varios grupos, el desarrollador con un poco de conocimiento en PHP verá que tan solo hace falta modificar la condición del if y poner nuevas variables).

Lo primero que debemos de hacer es irnos a nuestro panel de control de Magento y en Clientes >> Grupos de clientes, apuntamos la id del grupo que queremos.

A continuación lo único que debemos de hacer es irnos a nuestro archivo .phtml y poner el siguiente código:
<?php $idgrupo = 4; //reemplazar por la id del grupo que queramos
if(Mage::getSingleton('customer/session')->getCustomerGroupId() == $idgrupo): ?>
<!-- Código htlml que se mostrará si el cliente pertenece al grupo -->
<?php else: ?>
<!-- Código que se mostrará en caso de que no pertenezca al grupo -->
<?php endif; ?>

De esta forma ya tenemos una página que se mostrará solo si los miembros pertenecen a un grupo determinado.

miércoles, 3 de diciembre de 2014

XAMPP no interpreta el código PHP

Seguramente a muchos os ha sucedido, eso de coger un proyecto en PHP, instalarlo en vuestro localhost y cuando parece que todo va a funcionar, aparece el código PHP en el navegador.

La razón más probable de esto, es que nuestro archivo php.ini no tiene activa la variable short_open_tag. Esto significa que nuestro servidor no reconoce la apertura corta de php <? tan solo reconoce la larga <?php y muchos desarrolladores utilizan la corta. (Personalmente prefiero la larga que tampoco es que sea algo para morirse y evita este tipo de problemas)

La solución a este problema es muy sencilla, tan solo debemos de ir a nuestro archivo php.ini ubicado en:
c://xampp/php/php.ini

Y una vez abierto tenemos que buscar la directiva short_open_tag, la cual seguramente tenga este aspecto:
short_open_tag=Off

Y nosotros tendremos que cambiarla por:

short_open_tag=On

Una vez hecho este cambio, tan solo hay que reiniciar nuestro servidor y el navegador debe de poder interpretar nuestro proyecto.

Poniendo una imagen en una página de Magento

Este es otro problema que tienen, bueno tenemos, los desarrolladores que tocamos Magento por primera vez, ¿como pongo una imagen en una de las páginas como por ejemplo el home?
La respuesta no es que sea muy difícil, de hecho el procedimiento es bastante sencillo, lo primero que tenemos que hacer es colocar nuestra imagenes dentro de la siguiente carpeta:

skin >> frontend >> interface que estemos usando >> plantilla que estemos usando >> images

Una vez que hemos hecho esto, tan solo tenemos que irnos a nuestro backend, escoger CMS y página (también sirve en bloques estáticos) y una vez que estamos allí escribir lo siguiente:

<img src="{{skin url='nombre de la imagen'}}"> 

De esta forma la imagen recibe como ubicación, la directiva que le indica a Magento donde se encuentra dicha imagen, introduciendo esta dirección url en el src.

Además de que esta imagen puede estar dentro de un div, tener su propia clase o id, y cualquier argumento de forma normal.