junio 5, 2009 0

Plantillas sencillas con TemplatePower. Parte II.

By in Librerías, PHP

En el artículo anterior vimos como asignar valor a las variables que definimos en nuestra plantilla. Hoy vamos a ver como crear bloques en la plantilla. Los bloques son elementos que se pueden repetir y que pueden ser muy útiles para la creación de tablas o de listas. Para ello vamos a verlo con un pequeño ejemplo:

ejemploBloques1.tpl:

<html>
<head>
<title>Ejemplo de bloques</title>
</head>
<body>
<h1>Ejemplo con bloques</h1>
<ul>
  <!-- START BLOCK : bloque -->
  <li>Elemento {orden}.</li>
  <!-- END BLOCK : bloque -->
</ul>
</body>
</html>

ejemploBloques1.php

<?php

include('class.TemplatePower.inc.php');

$plantilla = new TemplatePower('ejemploBloques1.tpl');

$plantilla->prepare();

for($i = 1; $i <= 10; $i++)
{
	$plantilla->newBlock('bloque');
	$plantilla->assign('orden',$i);
}

$plantilla->printToScreen();
?>

En esta parte tenemos un bucle que cuenta de 1 a 10. Dentro del bucle con el método newBlock creamos un nuevo bloque. A este método solo tenemos que pasarle el nombre del bloque. Luego para asignar variables al bloque lo hacemos con el método assign.

En el próximo artículo veremos como ir cambiando de bloque con el método gotoBlock.

Código del ejemplo para descargar:

Template Power. Primer ejemplo con bloques.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

junio 4, 2009 0

Creando un plugin para WordPress desde cero. Parte I.

By in PHP

Este es el comienzo de una serie indeterminada de artículos sobre como escribir un plugin para WordPress desde cero. Está basado en parte en la documentación que hay en WordPress sobre creación de plugins.

Empezando, que queremos hacer

Lo primero que tenemos que pensar es que va a hacer nuestro plugin. En este caso vamos a hacer un plugin que sustituya la descripción del blog en la cabecera por otra distinta. Algo sencillo pero que nos puede servir como introducción.

Una vez que sabemos lo que queremos (porque no estamos locos …)  es el momento de empezar a hincarle el diente al maravilloso mundo del desarrollo de plugins para WordPress.

Nombres y archivos

Ahora es el momento de elegir el nombre de nuestro plugin. Es importante que este sea único, para no confundirlo con otro. Para esto podemos comprobrar el repositorio de plugins de WordPress. Nosotros vamos a llamar a nuestro plugin “CambiaCabecera”. Ahora viene el momento de empezar a crear el archivo con el código de nuestro plugin. Podemos también crearlo en una carpeta con uno o más archivos con el código del plugin.

Si optamos por el método del directorio podremos incluir otros archivos que necesitemos, como pueden ser CSS, JavaScript, imágenes o el típico readme.txt.

De momento nos decantamos por el primer método, un unico archivo llamado “cambiacabecera.php”. ¿Y que contiene este archivo?

Cabecera del archivo

El comienzo de nuestro archivo será el siguiente:

<?php
/*
Plugin Name: Cambia Cabecera
Plugin URI: http:/uri.del.plugim/
Description: Plugin para cambiar la cabecera por una frase
Version: 0.0
Author: mjcarrascosa
Author URI: http://mjcarrascosa.com
*/
?>

Esta parte del comienzo contiene información sobre el plugin. La unica que es estrictamente necesaria es Plugin Name, que nos dice el nombre del plugin. Podéis incluir a continuación la licencia del plugin.

Programando el plugin

A continuación vamos con la parte gorda de este artículo. Vamos a crearnos una función que llamaremos CambiarCabecera_cambia que será la encargada de hacer el cambio. Esta función recibirá dos parámetros llamados value e info. Después de la función añadiremos una llamada a una función de la API de WordPress. Esta función es add_filter, que nos permite añadir un filtro (esto se explicará con más detenimiento en próximos artículos). El código de nuestro plugin quedaría de la siguiente forma:

<?php
/*
Plugin Name: Cambia Cabecera
Plugin URI: http:/uri.del.plugim/
Description: Plugin para cambiar la cabecera por una frase
Version: 0.0
Author: mjcarrascosa
Author URI: http://mjcarrascosa.com
*/

function CambiarCabecera_cambia($value, $info) {
   if($info == 'description')
      return 'Esta frase debe aparece en la cabecera como descripción.';
   else
      return $value;
}

add_filter('bloginfo', 'CambiarCabecera_cambia', 10, 2);
?>

Y ya tenemos nuestro primer plugin. La función add_filter nos permite añadir un filtro, para ello le tenemos que pasar el filtro que queremos usar, en nuestro caso ‘bloginfo’, y la función a la que se llamará al aplicar dicho filtro, CambiarCabecera_cambia es a la que tenemos que llamar nosotros. Le pasamos luego dos números, el primero es la prioridad y el segundo el número de parametros que recibe nuestra función que aplica el filtro (CambiarCabecera_cambia).

El filtro bloginfo se aplica cada vez que requerimos información del blog mediante la función bloginfo. Lo que hacemos en nuestra función CambiarCabecera_cambia es comprobar si la información solicitada ($info) es la descripción del blog (‘description’). Si es la descripción del blog devolvemos la nueva cadena y si no lo es devolvemos el valor que hubiera devuelto la llamada a bloginfo ($value).

En el proximo artículo veremos como añadirle una página de opciones a nuestro plugin.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , , , ,

junio 3, 2009 0

Plantillas sencillas con TemplatePower. Parte I.

By in Librerías, PHP

TemplatePower es un motor de plantillas para PHP que nos permite separa de una forma fácil el contenido de la presentación. Para empezar podemos ver un ejemplo bastante sencillo en el que tendremos dos archivos: ejemplo1.tpl, que es el archivo con la plantilla, y ejemplo1.php, que es el manejador de la plantilla.

ejemplo1.tpl:

<html>
<head>
<title>{titulo}</title>
</head>
<body>
<h1>!Bienvenido {nombre}!</h1>
</body>
</html>

ejemplo1.php:

<?php

include('class.TemplatePower.inc.php');

$plantilla = new TemplatePower('ejemplo1.tpl');

$plantilla->prepare();

$plantilla->assign('titulo', 'Primer ejemplo con TemplatePower.');
$plantilla->assign('nombre', 'Manuel');

$plantilla->printToScreen();
?>

Como se puede ver las variables se colocan en la plantilla encerradas entre los caracteres ‘{‘ y ‘}’. Luego en el script que hace uso de nuestra plantilla incluimos el archivo ‘class.TemplatePower.inc.php’. A continuación creamos una instancia de la clase TemplatePower, indicándole al constructor el archivo de plantilla que queremos usar. Preparamos la clase llamando al método prepare y con el método assign le asignamos el valor a cada variable. Para finalizar invocamos al método printToScreen para que nos muestre el resultado.

Aquí está el código del primer ejemplo visto en este artículo:

Template Power. Primer ejemplo.

(En el archivo no se incluye la clase TemplatePower. Para obtenerla hay que ir a la sección “download” de la página de TemplatePower y descargarse y la librería.)

En la próxima entrega mostraremos como crear bloques. Un bloque es un trozo de la plantilla que puede repetirse, muy útil para la generación de tablas o de listados.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

junio 2, 2009 0

Reiniciando el blog

By in General

Hoy ha llegado el momento de hacer un borrón y cuenta nueva. Hacía mucho tiempo que no escribía en el blog antiguo, tampoco me gustaba lo que había escrito hasta el momento. Después de pensarlo un poco y de barajar varias posibilidades, como cambiar de gestor o incluso hacerme uno propio, me he vuelto a decantar por WordPress, es el que más me gusta y el que mejor conozco.

Esta vez le daré una temática completamente diferente al blog, decantandome principalmente por el desarrollo web, aunque es posible que se aborden otros temas (siguiendo la máxima de “el blog es mio y me lo …”).

Un saludo y bienvenidos a mjcarrascosa.com.

Artículos relacionados:

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: ,