Archive for julio, 2009

julio 15, 2009 0

Generación de un feed RSS con TemplatePower

By in Librerías, PHP

Creo que no hace falta decir que la librería TemplatePower me gusta bastante, a pesar de algunas carencias importantes que tiene. Hoy vamos a ver como realizar un feed RSS mediante esta librería.

Lo primero que necesitamos es la plantilla con el feed:

feed.tpl:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>{title}</title>
	<link>{link}</link>
	<description>{description}</description>
<!-- START BLOCK : item -->
    <item>
      <title>{title}</title>
      <link>{link}</link>
      <description>{description}</description>
    </item>
<!-- END BLOCK : item -->
</channel>
</rss>

Este sería un feed muy sencillo, pero como ejemplo nos sirve perfectamente. Luego tendríamos el código PHP que nos generaría el feed usando TemplatePower:

feed.php:

<?php
include 'class.TemplatePower.inc.php';

// Indicamos que el contenido es un XML
header('Content-Type: text/xml');

// Creamos el objeto para generar la plantilla
$tpl = new TemplatePower('feed.tpl');
$tpl->prepare();

// Es una función ficticia que nos devolvería un objeto con los datos del canal
$canal = obtenerDatosCanal();

// Asignamos los datos del canal
$tpl->assign('title', $canal->title);
$tpl->assign('link', $canal->link);
$tpl->assign('description', $canal->description);

// Es una función ficticia que nos devuelve un array de objetos con los datos
// de los items.
$items = obtenerItems();

// Recorremos los items para ir generandolos
foreach ($items as $item)
{
	// Creamos un nuevo bloque y le asignamos los datos
	$tpl->newBlock('item');
	$tpl->assign('title', $item->title);
	$tpl->assign('link', $item->link);
	$tpl->assign('description', $item->description);
}

$tpl->printToScreen();
?>

Y con esto quedaría generado nuestro feed. El formato RSS es bastante más complejo y tiene más etiquetas de las expuestas en este artículo, esto es solo un pequeño ejemplo a modo de prueba conceptual. Podemos ver la especificación del formato en la siguiente página: RSS 2.0 Specification.

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

Tags: , , ,

julio 8, 2009 0

Envio de correo personalizado con PHP Mailer y Template Power

By in Librerías, PHP

Cuando enviamos un correo electrónico desde una aplicación en PHP podemos hacer uso de Template Power para generar el correo y de PHP Mailer para enviarlo. Vamos a verlo con un ejemplo:

correo.tpl:

<p>Sr./Sra.: {nombre}:</p>
<p>Cuerpo del correo.</p>

envio.php:

<?php
include 'class.phpmailer.php';
include 'class.TemplatePower.inc.php';

$tpl = new TemplatePower('correo.tpl');
$tpl->prepare();

$tpl->assign('nombre', $nombre);
//Creamos la instancia de la clase PHPMAiler
$mail = new phpmailer();

//El método que usaremos es por SMTP
$mail->Mailer = "smtp";

// Los datos necesarios para enviar mediante SMTP
$mail->Host = "smtp.nuestrohost.com";
$mail->SMTPAuth = true;
$mail->Username = "cuenta@nuestrohost.com";
$mail->Password = "password";

// Asignamos el From y el FromName para que el destinatario sepa quien
// envía el correo
$mail->From = "cuenta@nuestrohost.com";
$mail->FromName = "Manuel Carrascosa de la Blanca";

//Añadimos la dirección del destinatario
$mail->AddAddress("direccion@hostdestino.com");

//Asignamos el subject, el cuerpo del mensaje y el correo alternativo
$mail->Subject = "Ejemplo de PHPMailer";
$mail->Body = $tpl->getOutputContent();

//Si al enviar el correo devuelve true es que todo ha ido bien.
if($mail->Send())
{
	//Sacamos un mensaje de que todo ha ido correctamente.
	echo "Mensaje enviado correctamente.";
}
else
{
	//Sacamos un mensaje con el error.
	echo "Ocurrió un error al enviar el correo electrónico.";
	echo "<br/><strong>Información:</strong><br/>".$mail->ErrorInfo;
}
?>

Podemos ver que básicamente lo que se hace es tener por un lado la plantilla. Luego con el método getOutputContent de la clase TemplatePower obtenemos el resultado de la plantilla y lo asignamos a la propiedad Body de nuestra instancia de la clase phpmailer. Luego simplemente enviamos el correo.

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

Tags: , , ,

julio 5, 2009 0

Introducción a ezSql

By in Librerías, PHP

A la hora de acceder a bases de datos en PHP podemos hacer uso de alguna librería que nos añada una capa de abastracción. De este modo nos resulta más sencillo y homogéneo acceder a estas, además el código gana en claridad.

Una de estas librerías es ezSql. Tiene soporte para distintos gestores de bases de datos y es realmente sencilla de usar. Para usar la librería basta con incluir dos archivos, uno que contiene la clase base y otro que contiene la clase específica para el gestor de bases de datos que usaremos. Después tendremos que crear una instancia de la clase ezSQL_xxx, donde xxx indica el gestor a usar. Para MySQL bastaría con las siguientes lineas:

<?php
include "ez_sql_core.php";
include "ez_sql_mysql.php";

$db = new ezSQL_mysql($dbuser, $dbpassword, $dbname, $dbpassword);

Los parámetros que se le pasan al constructor son los siguientes:

Parámetro Descripción
$dbuser Usuario con el que nos conectaremos a la base de datos.
$dbpassword Contraseña para conectarse a la base de datos.
$dbname Base de datos a la que nos conectaremos.
$dbhost Host al que nos conectaremos.

Una vez realizada la conexión haremos uso de los distintos métodos que proveé la clase para realizar las consultas. Podemos ver esos métodos en la documentación de la librería.

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

Tags: , ,

julio 3, 2009 0

Nuestra propia función dolar ($)

By in JavaScript

Una función muy útil existente en muchos frameworks de JavaScript es la función dolar ($). Puede ser que en un proyecto, por facilidad de uso, necesitemos de esta función pero no del resto de características que incluye un framework JavaScript. Lo que podemos hacer es implementarla nosotros mismos. Veamos como sería esta función:

function $() {
    // Array que usaremos en caso de que queramos más de un elemento
    var elementos = new Array();

    // Recorremos los argumentos de la función
    for (var idx = 0; idx < arguments.length; idx++)
    {
        //Obtenemos el argumento en la posición idx
        var elemento = arguments[idx];

        // Si el argumento es una cadeao obtenemos dicho elemento
        if (typeof element == 'string')
            elemento = document.getElementById(elemento);

        // Si solo se ha pasado un argumento devolvemos este
        if (arguments.length == 1)
            return elemento;
        // Añadimos el elemento obtenido en el array de elementos
        elementos.push(elemento);
    }

    // Devolvemos el array con los elementos
    return elementos;
}

Como se puede ver nada complicado, y que nos puede resultar muy útil.

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

Tags: ,

julio 1, 2009 0

Algunos plugins bastante útiles para WordPress

By in WordPress

Una de las cosas que más me gustan de WordPress es la cantidad de funcionalidades extras que se le pueden añadir mediante plugins. Es por esto que hoy voy a dedicarle una entrada a algunos plugins que me parecen realmente útiles para este gestor de contenidos. Ahí va mi lista:

  • Akismet. Un excelente plugin para evitar los comentarios de SPAM. Viene de serie con WordPress, solo hay que activarlo y configurarlo.
  • WordPress Database Backup. Nos permite realizar copias de seguridad bajo demanda o programadas de la base de datos. También nos permite enviar estas copias de seguridad por email, muy útil en caso de que ocurra algún desastre en el servidor.
  • All In One SEO Pack. Un plugin que nos ayuda a hacer más atractivos nuestros contenidos a los buscadores, facilitando la indexación de estos.
  • Smart 404. A este plugin le dediqué una entrada en exclusiva hace unos días. Hace más útiles las páginas de Error 404 a nuestros usuarios.
  • Google XML Sitemap Generator. Genera un sitemap para las herramientas para webmasters de Google.
  • WordPress Related Posts. Permite que al final de cada entrada aparezca una lista de posibles entradas relacionadas.

Todos estos plugins están para descargarselos en el repositorio de plugins de WordPress.

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

Tags: ,