30 de abril de 2009

PHP: Cómo organizar todas los datos $_POST, $_GET y Cookies de un plumazo

Cuando desarrollas webs con PHP muchas veces te encuentras con que en una página necesitas utilizar a la vez valores recibidos vía formulario ($_POST o $_GET) o vía url ($_GET) o incluso vía cookies.

Si tienes tiempo y quieres hacer las cosas bien organizadas lo suyo es que leas valor a valor y una vez validados los cargues en sus correspondientes variables.

Pero si tienes mucha prisa hay una instrucción de PHP (a partir de la versión 4.10) que te permite leer todos estos valores de una tacada y dejarlos más o menos organizados.

¿Cual es esa instrucción? Pues es import_request_variables. Os pongo a continuación un ejemplo que importa todas las variables $_GET, $_POST y de cookies:

<?php

$_POST["var0"]="Hola mundo";

import_request_variables("gp", "variable_");

echo $variable_var0;

?>


En este caso imprimirá en pantalla "Hola Mundo".

El formato de esta instrucción es el siguiente:

import_request_variables($tipos,$prefijo);

Los $tipos pueden ser:
  • p: $_POST
  • g: $_GET
  • c: Cookies
Son combinables como hemos visto en el ejemplo, pero podemos usar sólo uno de ellos si queremos.

El parámetro $prefijo es opcional, si no lo usamos las variables se crearán sin prefijo.

En mi opinión es una instrucción que si tienes mucha prisa puede ser útil, pero yo soy de los que prefiere gestionar variable a variable :)

Wii: Vídeo espectacular de Resident Evil: The darkside chronicles

Parece mentira que hayan conseguido ese nivel de gráficos en una Wii, tiene incluso hasta filtro HDR.

El juego tiene una mecánica de shooter sobre railes, lo que supongo ha ayudado, pero visualmente es una pasada :)

29 de abril de 2009

El tema estrella del día, la semana y el mes en España

Pantallazo de la nube de tags de Meneame.net a las 10:25 hora española:

Lanzado oficialmente mi blog de Facebook

Se llama Faceblog y su url es Faceblog.es.

Los que me seguíis por este blog ya habíais oído hablar de él :), al resto os digo que es un blog que va de Facebook en general y de desarrollo de aplicaciones en Facebook en particular.

28 de abril de 2009

Zen Cart: Cómo gestionar el stock de un producto

Uno de los puntos que más confusión genera con la gestión de una tienda online desarrollada con Zen Cart es la gestión de stocks -no sé todavía muy bien por qué-.

Voy a explicarte como gestionar este stock en 4 párrafos.

En primer lugar tenemos que ir a catálogos>>categorías/productos.

A continuación elegimos la categoría haciendo click sobre su nombre y después el producto haciendo click sobre su correspondiente nombre. Comenzaremos entonces a editar el producto.

Estos son los campos que debemos tener en cuenta:
  • Estado del Documento: En stock / Sin stock. Aquí permitimos o no la venta del producto dependiendo del stock disponible.
  • Fecha de Disponibilidad: Aquí marcamos la fecha a partir de la cual el producto estará disponible. Este campo es opcional.
  • Cantidad de productos: Aquí tenemos que tener más de 0 productos para que se considere que hay stock activo. Conforme se realicen ventas esta cantidad irá disminuyendo.

Tu primer comercial son tus webs

Así que pelea cada una de ellas al límite. Te vas a topar con decenas de clientes que no conocen el medio y que van a hacer todo lo posible por autosabotearse, pero tú debes tenerlo claro, por encima del presupuesto de una web está el trabajo bien hecho.

Da igual que una web sea más bonita o más fea, debe ser profesional, debe ser útil, debe ser fruto de la planificación de un conocedor del medio y no de los vaivenes del cliente. Los clientes conocen muy bien su negocio, pero tú, como profesional de la web, conoces este medio mejor que ellos. Hay que ayudarlos a sacar el máximo partido a la web, aunque sea con mucha mano izquierda.

Es costumbre poner a pie de página una pequeña firma con el consabido "Powered by" o "Desarrollado por". Qué sepas que con cada trabajo que marcas con tu sello estás dando un paso atrás o un paso adelante para consolidarte o extinguirte en el mercado.

27 de abril de 2009

Uncharted Drake 2: Primer vídeo del modo multijugador



Con que sea la mitad de bueno que la primera parte ya sería la caña, y encima ¡¡¡ahora con modo multijugador y modo cooperativo!!!

Videojuegos: Una pequeña muestra de la evolución de las tarjetas gráficas

Como ejemplo, Monkey Island:
  • Hércules:

  • CGA:
  • EGA:

  • VGA 16 colores:
  • VGA 256 colores:

Para que luego digan que los tiempos del MS-DOS no fueron apasionantes :)

24 de abril de 2009

PHP: Cómo saber a que tipo pertenece una variable

Pues en PHP 4 y PHP 5 lo tenemos muy fácil, con la instrucción gettype($variable);

Aquí va un ejemplo:

<?php
$var = "Hola";
echo(gettype($variable));
// Se escribirá en pantalla string
?>

La instrucción puede dar los siguientes resultados:
  • boolean
  • integer
  • double (también se da este resultado cuando es float)
  • array
  • object
  • resource
  • NULL
  • unknown type (cuando no sabe de que tipo es).
Cómo veis es una instrucción muy útil para hacer algún debug en pleno desarrollo, pero en la versión de producción evitadla todo lo que podáis ya que es muy lenta (y carga bastante al servidor). En esos casos es mejor usar las instrucciones del tipo (is_integer, is_float, is_bool, etc) de las que ya os hablaré otro día :)

¿Para cuando el fin del papel en las asignaturas de Universidad?

Mi mujer estudia en la Universidad de Alicante, esta Universidad tiene un campus virtual que está muy bien. ¡¡¡Pues a pesar de ello en muchas asignaturas tiene que seguir entregando los trabajos en papel!!!

Menudo derroche de tinta, de papel, de árboles y de todo.

A ver cuando se dan cuenta algunos que el papel solo que hay usarlo cuando es imprescindible, y no por sistema.

Ahora seguro que me sale alguno con alguna esotérica estadística del consumo energético de los servidores de la universidad o algo parecido :)

22 de abril de 2009

Google anuncia la O3D API

Los chicos de Google creen que la navegación 2D de los sitios web no es suficiente y han decidido apostar por la 3ª dimensión desarrollando una API ejecutada sobre una capa javascript.



El vídeo promete mucho, habrá que ver si tiene una buena curva de aprendizaje y si se extiende como la pólvora por Internet. De entrada necesita de la instalación de un plugin que tiene versiones para Windows y para Mac, pero todavía no para Linux.

Yo por mi parte pienso seguir apostando por Papervision3D, pero no voy a resistirme a trastear un poquito con esta nueva API a ver que jugo puedo sacarle.

Los que queráis más información disponéis de la página oficial de la API O3D y del blog oficial de la API O3D.

21 de abril de 2009

Videojuegos: Mass Effect 2, primer teaser trailer

La primera parte es un juego increíble. ¿Mantendrá su segunda entrega el nivel?

PHP: Cómo mostrar errores PHP gracias al .htaccess

Muchos servidores de hosting compartido tienen -y con razón- capados los errores de PHP, es decir, que cuando hay un error de ejecución de PHP no muestran ningún tipo de información en la pantalla para que ningún hacker utilice esa información para reventarte el sitio web.

Normalmente lo hacen editando el php.ini del servidor Apache por lo que las típicas instrucciones de PHP para permitir esa muestra de errores "error_reporting(E_ALL);ini_set('display_errors', '1');" o crear un php.ini local para la carpeta no sirven de nada.

En estos casos hay una manera de mostrar los ansiados errores utilizando el fichero .htaccess. Tan sólo tenemos que editarlo y añadirle estas dos líneas:

php_flag display_errors 1
php_value error_reporting 7

Y volilà, ya mostramos los errores en pantalla. Eso sí, una vez los hayáis corregirdos comentar las líneas con # en el fichero .htaccess y actualizarlo para evitar dar más información de la deseada.

20 de abril de 2009

ZX Spectrum: Un Sim jugando al Spectrum

Frikadas: Mirror's Edge en versión real

Este friki ha decidido demostrarnos que las andanzas de la protagonista de Mirror's Edge pueden ser emuladas por cualquiera, bueno, la verdad es que por lo menos tiene sentido común y no se va jugando el tipo saltando de edificio en edificio.

19 de abril de 2009

Facebook: Resumen semanal de Faceblog

Esta semana en Faceblog, mi blog de Facebook he publicado los siguientes posts:
A los que estéis interesados en Facebook que os aproveche :).

PS3: Uncharted: Drake's Fortune

Tengo este juego desde que mi mujer me regaló la PS3 y hasta la semana pasada no lo había jugado, mi mujer se lo ha había hecho ya un par de veces y me insistía en que lo jugara una y otra vez... y que razón tenía, Uncharted:Drake's Fortune (UDF a partir de ahora) es sencillamente un juego redondo, casi perfecto.

El argumento del juego gira alrededor de un par de cazatesoros y una periodista que siguen la pista de un legendario tesoro encontrado por Francis Drake, el famoso corsario inglés. El guión y los diálogos de la historia están muy bien desarrollados, al nivel de una buena película, mucho mejor que los típicos bodrios a los que estamos acostumbrados.

La mecánica del juego es una mezcla de Tomb Raider y de Gears of War, es decir, deberemos ir avanzando por una serie de escenarios unas veces en plan acrobático, otras veces resolviendo enigmas y en la mayoría de las ocasiones a tiro limpio, pero eso sí, de una manera nada truculenta, sin vísceras de por medio.

Gráficamente el juego es espectacular, tanto en las junglas del exterior como en los escenarios interiores en cuevas y en derruídas construcciones coloniales españolas. Las animaciones de los personajes son excelentes y el doblaje en castellano es perfecto.

La banda sonora es excepcional y el sonido del juego en 5.1 muy bueno.

Como único punto negativo están los ocasionales atascos del personaje en determinadas partes del escenario que te dejan paralizado dentro de elementos como un árbol o una piedra.

En conclusión, un juego imprescindible, un "must have" sin duda. Por juegos así la PS3 merece la pena.

Valoración: 9/10

16 de abril de 2009

Wordpress: Parámetros de ordenación de una query_post

En Wordpress con la función query_posts podemos realizar una query sobre la base de datos de Wordpress utilizando su API para obtener los datos de los posts de una manera segura y fácil.

Uno de los parámetros de query_posts es orderby que sirve para ordenar el listado de resultados de esa query, suele ir acompañado del parámetro order que sirve para determinar si el orden de los resultados es descendente de mayor a menor (DESC) o ascendente de menor a mayor (ASC).

Voy a resumir en un listado las posibilidades que nos ofrece orderby:
  • orderby=date (por la fecha de publicación)
  • orderby=title (por título del post)
  • orderby=author (por el autor del post)
  • orderby=modified (por la fecha de modificación)
  • orderby=menu_order (por el campo de ordenación de los posts)
  • orderby=parent (por el post padre)
  • orderby=ID (por el campo ID)
  • orderby=rand (de manera aleatoria)
  • orderby=meta_value (por los meta_key, debéis usar también meta_key=some)

15 de abril de 2009

PHP: FTP

Mucha gente ha oído hablar del servicio Curl de PHP sobre Apache, pero lo que muchos no saben es que desde PHP también tenemos disponible un servicio PHP (siempre y cuando el administrador del sistema no lo haya desactivado).

En caso de tenerlo activado su uso es bastante sencillo y muy útil, ya que podemos olvidarnos de las limitaciones de subida de ficheros por parte de los formularios. Eso sí, dependiendo del servidor nos podemos encontrar con un problema de timeout.

Bueno, os pongo aquí un pequeño ejemplo:

<?
$ftp_server = "nombre del servidor de FTP";

$ftp_user_name = "nombre del usuario";
$ftp_user_pass = "clave del usuario";
$destination_file = "nombre del fichero subido";
$source_file = "nombre del fichero origen";


// crear objeto de conextión
$conn_id = ftp_connect($ftp_server);

// identificación con usuario y clave
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Comprobar conexión
if ((!$conn_id) || (!$login_result)) {
echo "¡La conexión FTP ha fallado!";
echo "Intento de conexión al servidor $ftp_server para el usuario $ftp_user_name";
exit;
} else {
echo "Conectado con $ftp_server, con el usuario $ftp_user_name";
}

// subir fichero
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// comprobar resultado de la subida
if (!$upload) {
echo "La subida de ficheros por FTP ha fallado";
} else {
echo "El fichero $source_file ha sido subido al servidor $ftp_server con el nombre $destination_file";
}

// cerrar la conexión FTP
ftp_close($conn_id);
?>

Evolución del Unreal Engine


¿Espectactular, eh? Me pregunto cómo será el nº4.

Vía Gossipgamer.com

14 de abril de 2009

Videojuegos: Exclusivas a base de cheques

Leo hoy en Meristation que John Koller de Sony critica duramente a Microsoft por hacerse con exclusivas para su consola a golpe de cheque. Pone especial énfasis en el episodio exclusivo para XBOX de Gran Theft Auto IV.

Se sabe que Microsoft desembolsó 50 millones de $ a Rockstar a cambio de 2 episodios extra exclusivos. El objetivo era publicitario, que el usuario adquiriese el GTA IV para XBOX 360 o lo que era más importante aún, que comprase una XBOX 360 con el pack GTA IV en vez de la PS3 ya que GTA fue en vende consolas (un must have) para la PS2.

El caso es que extraoficialmente se sabe que ese episodio ha vendido más de 1 millón de copias a 10 € (o 10 dólares según el país) cada una. O sea, 10 millones de $ por lo bajo en ingresos brutos. Y eso que aún no ha salido el segundo capítulo.

Está claro que una vez se paguen impuestos y se descuente la parte de Rockstar Microsoft no va a ganar 10 millones de dólares netos, pero seguro que se acerca a la inversión incial que hicieron, y eso que era una inversión en publicidad pura y dura.

En conclusión, que diga lo que diga Sony la jugada les ha salido redonda. A ver si Sony se decide de una vez bajar a la arena a dar la guerra cuerpo a cuerpo con Microsoft. Killzone 2 y Little Big Planet no han golpeado tan fuerte como se esperaba, esperemos que Kratos cumpla bien su trabajo :)

13 de abril de 2009

La regla Capcom

Una de las reglas básicas que todo diseñador de juegos debe seguir (y que yo no sigo :( ) es la regla Capcom. No, no la busquéis en Google que esa regla no existe con ese nombre, la acabo de bautizar yo :)

¿En que consiste la regla Capcom?
Consiste en que en un juego de lucha uno contra uno el jugador siempre debe pegarle una buena tunda a los dos primeros enemigos por muy mal jugador que sea.

¿Cuando se usó por primera vez esta regla?
En Street Fighter II. Fue una de las razones por las cuales miles de personas nos animamos a engancharnos a un juego que no nos tiraba a la calle a las primeras de cambio.

¿Cómo aplicar esta regla a mis juegos?
Pues dejando que el jugador se sienta cómodo -no estresado- en los primeros compases del juego, poniéndole las cosas super fáciles (o sea, nada de enemigos o enemigos tontos, por ejemplo).

A partir de hoy, 13 de Abril de 2009, me comprometo a intentar aplicarla a todos los minijuegos que diseñe.

¿Y por qué me ha venido a la cabeza este tipo de regla? Pues porque estoy puliendo -y creo que mucho- mi juego Moon Star Hunter para Facebook. Por cierto, cualquier recomendación o crítica hecha con cariño sobre el juego será muy apreciada :)

12 de abril de 2009

PS3: Epidemia de averías con luz naranja en mi entorno familiar

Pues eso, que dos parientes de mi mujer se han quedado con la PS3 rota con una asquerosa luz naranja del lector.

En ambos casos el problema está en que el lector de Blu Ray ha dicho basta y ya no lee juegos. No la han pirateado, ni la han abierto, ni na de na. Espero que no le pase a la mía.

En algunos sitios llaman a esta luz "la luz amarilla de la muerte" en comparación con el anillo de la muerte de la XBOX 360. Y yo que pensaba que estas cosas solo pasaban con la consola de Microsoft (que por cierto tiene un servicio técnico y de postventa de 10, de quitarse el sombrero).

La rumorología ya se está extendiendo como la pólvora y muchos lo relacionan con la última actualización del Firmware de la consola, así que crucemos los deditos.

Os pongo abajo el vídeo que vidaextra.com colgó en su web sobre el tema.

Facebook: Resumen semanal de mi blog de Facebook

Hola, cómo os mencioné en un post anterior además de este blog he creado también un blog de Facebook. Por ahora no le he puesto nombre, a ver si se me ocurre uno pronto.

Os resumo a continuación los posts que he publicado por si alguno es de vuestro interés:

11 de abril de 2009

Una peli de Dragon Ball de aficionados

Este es el tipo de película de Dragon Ball que hubiesen querido los fans, y no la que han hecho.



Vía isaacj.

10 de abril de 2009

XBOX 360: Call of Duty, World at War

Bueno, pues me toca contaros de que va el modo monojugador de la última entrega de la saga de Activision. Ha sido publicado para XBOX 360, PS3 y Windows, yo he jugado a la versión de XBOX 360.

El juego tiene varios modos de juego, modo historia monousuario, modo historia cooperativo y multijugador. Sólo he podido probar hasta ahora el modo historia monousuario, así que es la parte del juego de la que os voy a hablar.

El argumento gira en torno a la Segunda Guerra mundial en dos escenarios distintos, la guerra ruso-alemana y la guerra americano-japonesa en el pacífico. Se irán alternando ambos escenarios -sin conexión alguna- a lo largo del juego.

El motor gráfico es una evolución del motor utilizado para Call of Duty 4 y es sencillamente espectacular. El sonido es muy bueno y la música -especialmente en la campaña rusa es excepcional-.

La mecánica del juego es la de todos los Call of Duty, ir avanzando en pelotón de objetivo en objetivo eliminando todo lo que se te cruce por delante. Ocasionalmente podremos manejar tanques o artillería aérea. El problema está en que el diseño de niveles es muy inferior al visto en la entrega anterior y no consigue la jugabilidad perfecta de CoD IV.

En conclusión, un juego notable, pero que supone una baja de escalón en la saga.

Valoración: 7.5/10

9 de abril de 2009

Primer teaser trailer de Assasin's Creed 2



Parece ser que no es un fake, pero quien sabe :)

8 de abril de 2009

CSS: Validar los css de una web

El CSS, al igual que otros lenguajes de la web, sigue una serie de estándares marcados por el W3C.

Para comprobar si vuestra página web cumple con esos estándares existe una web oficial que valida los estilos.

Enlace de la web validadora de estilos del W3C.

Si superáis la validación os darán como premio dos bonitos logos :), si no la superáis os darán un listado de los errores encontrados para que los podáis ir corrigiendo.

¿Es importante pasar estos tests? Pues es recomendable, aunque no imprescindible. Si los pasáis os aseguráis de que son compatibles con cualquier navegador por minoritario que sea (bueno, salvando algunas versiones del Internet Explorer que hacen lo que les da la gana). Además, por qué no negarlo, queda muy profesional :)

7 de abril de 2009

Wordpress: Creando menús dinámicos para tus páginas

Pues es muy sencillo, con el maravilloso tag wp_List_pages() mostramos una lista de los títulos de todas las páginas que hemos creado con el gestor de Wordpress, cada título aparece con su correspondiente enlace.

¿Qué modificadores nos ofrece Wordpress para mostrar esa lista? Aquí va un pequeño resumen:
  • sort_column: ordena las páginas según título ('post_title'), el orden establecido en el gestor de wordpress ('menu_order'), por fecha de creación ('post_date'), por fecha de modificación ('post_modified'), por ID ('ID'), por autor ('post_author') y por el nombre del permalink ('post_name').
  • sort_order: ascendente ('asc') o descendente ('desc').
  • exclude: listado de IDs separados por comas de las páginas que no queremos mostrar.
  • exclude_tree: listado de IDs separados por comas de las páginas padre que no queremos mostrar, esta exclusión afecta también a las páginas hijas.
  • include: lo contrario de exclude, el listado de IDs de páginas que quieres mostrar.
  • depth: profundidad de los submenús que quieres mostrar. 0 muestras las páginas con sus subpáginas, 1 muestra sólo las páginas padre, 2 o superior muestra el número de subniveles marcado. -1 no diferencia padres de hijos.
  • child_of: muestra sólo los hijos de la página padre identificada por su ID.
  • show_date: muestra la fecha de la página.
  • date_format: formato de la fecha mostrada, basada en la sintaxis de PHP.
  • title_li: el título del listado.
  • echo: 1 para devolver el listado con formato HTML y 0 para ser utilizado en una variable de PHP.
  • hierarchical: muestra las páginas destacando la jerarquía.
  • meta_key: sólo muestra las páginas con un determinado valor, se usa en conjunto con meta_value.
  • meta_value: se utiliza en conjunto con meta_key, si coinciden con los valores introducidos en el CMS se muestra la opción de la página.
  • link_before: Texto delante del enlace.
  • link_after: Texto posterior al enlace.
Espero que os sirva de ayuda.

PHP: Como saber si existe o no una variable

En muchas ocasiones necesitamos ejecutar bloques de código condicionados a que una variable haya sido definida o no.

Por lo general (y por prisas) se suele usar el típico ==0 o el típico =="", pero la manera correcta de saber si una variable existe o no es con la función isset.

¿Cómo funciona? Pues de la siguiente manera:

isset($variable);

Devolverá true si está definida y false si no ha sido definida.

Os pongo un ejemplo:

if(isset($variable)){
echo("variable definida");
}else{
echo("variable no definida");
}

¿Se pueden comprobar varias variables de una vez? Sí, de la siguiente manera:

isset($variable1,$variable2,$variable3);

Con que una de las variables no haya sido definida nos devolverá false.

Tened en cuenta que PHP no es muy estricto con las declaraciones de las variables, de tal manera que no hace falta declararlas previamente, con darles valor en cualquier momento el ejecutor de PHP las declara (p.ej. con $var=12 estaría ya declarada la variable $var como int).

Si una variable vale 0 o "" pero existe isset dará como respuesta true.

6 de abril de 2009

PHP: Cómo escribir texto vertical en una imagen

Puede pareceros extravagante, pero una vez necesité escribir texto verticalmente en una imagen. Y bueno, lo más curioso es que... ¡¡¡Existe una función de PHP que te permite hacerlo!!!

¿Cómo se hace? Pues así:

imagestringup($imagen,$fuente,$x,$y,$cadena,$color);
  • $imagen: Nombre de la variable que contiene la imagen generada por alguna función de creación de imágenes cómo imagecreatetruecolor().
  • $fuente: Del 1 al 5 para elegir las variaciones de la fuente.
  • $x: coordenada x de la esquina superior izquierda.
  • $y: coordenada y de la esquina superior izquierda.
  • $cadena: el texto que quieres escribir.
  • $color: color del texto, creado previamente con la función imagecolorallocate().
En fin, son de estas funciones que se usan una vez en la vida, pero viene bien saber de ellas :)

Frikadas: Unreal Tournament en el mundo de Sonic

¡¡Sencillamente alucinante los mods que crean algunos jugadores!!

Unreal Tournament Meets Sonic the Hedgehog Video

5 de abril de 2009

Frikadas: Frikismo extremo con Golden Axe



¡¡¡Frikis al poder!!!

ZX Spectrum: 10 de mis pantallas de carga favoritas

Antes las cosas no eran como ahora, para jugar a un juego de ZX Spectrum tenías que cargarlo desde la unidad de casette. El proceso te llevaba varios minutos dependiendo del tipo de carga. Para amenizar la espera muchos juegos cargaban primero una pantallita de carga para ir abriendo boca.

Se han creado verdaderas maravillas para nuestro querido Spectrum, os muestro aquí 10 de mis pantallas de carga favoritas.

R-Type

Robocop

Rainbow Islands

Obliterator

Heed over Heels

Game Over

Flying Shark

Cobra

Batman, the caped crusader

Back to School

XBOX 360, PS3: Virtua Tennis 2009



Estoy deseando ver vídeos in game, pero seguro que va a ser la caña :)

4 de abril de 2009

Pensando en reorganizar mi blog

Nunca he tenido muy claro para que quería mi blog, así que siempre he terminado hablando aquí de todo un poco. ¿Qué durante un mes me tocaba pelearme con algo de Zen Cart? Pues todo el mes hablando de Zen Cart. ¿Qué ahora mismo me estoy peleando con Facebook? Pues todo el mes hablando de Facebook.

Pero he decidido que voy a organizar un poquito las cosas y a especializar un poquito el blog.

De entrada todos los temas de desarrollo de aplicaciones en Facebook los voy a tratar en un blog que he creado de Facebook y los temas de desarrollo de Joomla! los voy a tratar en esta web.

De vez en cuando iré publicando aquí resúmenes con enlaces a mis blogs de Facebook y de Joomla!

En cuanto al resto de cosas el blog seguirá como hasta ahora (por el momento) :)

2 de abril de 2009

Facebook FBML: Mostrar fotos

Pues es muy sencillo:

<fb:photo pid="111111"></fb:photo>

El identificador de la foto es pid, para obtenerlo podemos utilizar FQL o bien cuando subimos la foto con la API y el método photos.upload lo obtenemos del XML que nos responde el sistema.

¿Qué queremos modificar el tamaño con el que se muestra? Pues utilizamos size de la siguiente manera:

<fb:photo pid="111111" size="normal"></fb:photo>

Tenemos 4 tamaños disponibles:
  • normal: es el tamaño por defecto, son 604px de ancho.
  • thumb: es el tamaño más pequeño, son 75px de ancho.
  • small: es el tamaño pequeño, son 130px de ancho.
  • album: son 180 px de ancho.
Naturalmente sólo podremos mostrar en nuestra aplicación fotos de los usuarios que se hayan agregado a ella o fotos públicas.