Laboratorio: postear en WordPress mediante GTalk o Jabber

Hace tiempo hablaba de una librería para trabajar con Jabber desde PHP y me preguntaban si se podía usar para realizar un cliente y realizar acciones con él. Pues he usado esta librería para crearme un cliente de jabber que espere mensajes y los publique en WordPress, para lo cual también he necesitado la librería phpxmlrpc.

Yo el ejemplo lo he hecho con DreamHost y la posibilidad que ofrece de crear un servidor Jabber, claro que también se puede hacer mediante GTalk.

Lo primero es tener dos cuentas: una para el cliente y otra para ti. Cuando ya las tengamos, deberemos autorizar la una a la otra para que puedan enviarse mensajes. Esto es la parte más chapuza ya que hay que hacerlo con clientes tipo Gtalk o Pidgin.

Tan solo nos queda instalar el script en nuestro servidor o en nuestro ordenador (aunque casi mejor en un servidor) y configurarlo. Se copia en el servidor y se edita el fichero orejas.php y modificar los siguientes valores:

  • $blog_usuario: nombre del usuario del blog
  • $blog_contraseña: contraseña del usuario del blog
  • $blog_url: url del blog de WordPress
  • $blog_xmlrpc_path: path al script xmlrpc de WordPress
  • $blog_puerto: puerto del blog (lo más seguro es que no haya que modificarlo)
  • $post_tags: etiquetas por defecto del post que se va a crear
  • $post_separador: separador para diferenciar en el mensaje entre título, contenido y etiquetas
  • $post_titulo_defecto: título por defecto del post
  • $jabber_host: servidor de Jabber, para GTalk creo que es gtalk.google.com
  • $jabber_usuario: usuario de jabber
  • $jabber_contraseña: contraseña del usuario de jabber
  • $jabber_puerto: puerto del servidor de jabber (lo más seguro es que no haya que modificarlo)

Para postear en WP habrá que mandar un mensaje al cliente con el siguiente formato:

titulo##contenido##etiqueta1,etiqueta2,...,etiquetan

Contenido admite HTML y retornos de carro que serán convertidos en párrafos. Si no se quiere indicar título o etiquetas, pues se puede escribir el contenido solamente. El separador ## es modificable. Cuidado si vais a escribir retornos de carro, porque si pulsas sólo INTRO te enviará el mensaje.

Una vez enviado el mensaje, el script posteará en WP y devolverá la URL del nuevo post.

Supongo que se pueden hacer más cosas y mejor, pero para lo que yo lo necesito me basta y me sobra.

Descarga: orejas

Social Web: clon de Digg, Meneame o Reddit en PHP y MySQL

Social Web CMS es un sistema de noticias social al estilo de Digg o Menéame que está desarrollado en PHP y MySQL y que nos permite crear nuestro clon de forma sencilla.
Permite la inserción de artículos por parte de los usuarios, votar los artículos, realizar comentarios, valorar los comentarios, buscar contenidos, obtener feeds para secciones, categorías y usuarios, disponer de perfiles, mensajes privados … Además dispone de una administración que permite gestionar el anti-spam, bloquear URLs, importar RSS, …
Social Web CMS

Crear PDFs con PHP y Haru

Un gran tutorial que explica cómo crear documentos PDF con Haru, una librería realizada en C que nos permite generar PDFs con texto, líneas e imagenes, añadir enlaces y anotaciones, comprimir documentos, usar TTFs, PDFs encriptados, y muchas cosas más.
El tutorial empieza mostrándonos cómo instalar Haru en nuestro PHP, y luego sigue con una serie de ejemplo sencillos hasta decirnos como añadir shapes o proteger el documento.
Dynamically Generating PDF Files with PHP and Haru

PHP Web Stat: estadísticas de tu web en tiempo real

PHP Web Stat es una aplicación web que puedes instalar en tu servidor para poder visualizar las estadísticas de tus páginas en tiempo real.
No necesita conexión a una base de datos, dispone de una consola de administración sencilla, tiene protección por contraseña, se instala fácilmente y está disponible en varios idiomas.
phpwebstat.png
Y entre las funcionalidades que ofrece nos encontramos con informes sobre las visitas totales, diarias, del día de ayer, por meses, medias, impresiones, por sistema operativo, navegador, resolucion, URLs visitadas, motores de búsqueda o países.
PHP Web Stat
Vía / SmashingApps

Crear esquinas redondeadas con antialias con PHP

Rounded PHP es una librería para PHP que nos devuelve imágenes de recuadros con esquinas redondeadas con antialias perfecto.
roundedphp.png
Nos permite indicar si queremos un rectángulo completo o solo una parte, además del tamaño del recuadro, el radio, el ancho del borde, el color de fondo, contenido y borde, y la transparencia de cada color.
Rounded PHP

Snippets útiles para PHP

Interesante grupo de snippets para PHP:

  • Validador de email: la clase php-email-address-validation facilita enormemente esta comprobación.
  • Generador de contraseñas: buen código que genera contraseñas aleatorias con posibilidad de indicarle grado de complejidad.
  • Obtener la IP: porque no siempre vale con REMOTE_ADDR.
  • Forzar la descarga de un fichero
    header("Content-type: application/octet-stream");
    // displays progress bar when downloading (credits to Felix ;-))
    header("Content-Length: " . filesize('myImage.jpg'));
    // file name of download file
    header('Content-Disposition: attachment; filename="myImage.jpg"');
    // reads the file on the server
    readfile('myImage.jpg');
  • Codificar la salida: a diferentes formatos (html, javascript, …) usando esta librería
  • Envío de emails: mediante la librería PHPMailer o Swift Mailer
  • Subir ficheros: de forma sencilla con esta clase

10 code snippets for PHP developers

Php5Tube: acceso a datos de Youtube

Php5Tube es una clase open source que permite acceder de forma sencilla a la API de Youtube, procesando la respuesta XML y devolviendo un array de datos fáciles de leer que convierte el desarrollo en algo intuitivo.

Un ejemplo de uso sería el siguiente:

//get or create youtube username
if( isset($_GET['user']) ){$youtube_user = $_GET['user'];}
else {$youtube_user = 'rickrolled';}
//create phptube object and get videos
include_once("Php5tube.php");
$php5tube = new Php5tube('Video','User','Comment');
$videos = $php5tube->getUserVideos($youtube_user);

Php5Tube