CodeIgniter, el framework de PHP y uno de los que personalmente más me gustan, ha sacado una nueva versión, lo que no tengo muy claro es cual, porque ellos indican en la noticia que es la 1.5.2, cuando ya hace tiempo salió la 1.5.4, por lo cual, viendo el código se puede ver que es la 1.6.0
// CI Version
define('CI_VERSION', '1.6.0');
Tampoco le hagáis mucho caso (por ahora) a lo que diga el changelog, ya que muestra el de la version 1.5.2, en el changelog del SVN se pueden ver los cambios realizados a esta última versión:
La posibilidad de cargar varias vistas, añadiendo el contenido de estas al buffer.
Añadida la clase DBForge a las herramientas de la base de datos.
Modificaciones en Active Record, como por ejemplo vaciar tablas, contar resultados, seleccionar máximos o mínimos.
Posibilidad de decidir si se guarda o no el histórico de SQLs ejecutadas, antes sí se guardaban siempre, lo cual podía acabar con la memoria si se realizaban procesos con muchas quueries (por ejemplo importaciones).
Poder autocargar modelos y lenguajes de traducción.
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.
El otro día nos preguntaban que funcionalidades se le podía añadir a la entrada Laboratorio: Recorta imágenes dinámicamente con PHP y HTML. Y aunque son muchas, depende de la imaginación que tengamos, a mí se me ha ocurrido escribir el título del blog en la cabecera usando un filtro blur para resaltar el texto, algo que he visto en varios lugares.
En 456 Berea Street nos muestran una forma muy interesante para poder mostrar tu página con diferentes hojas de estilo. Tiene el inconveniente de que solo admite dos estilos entre los que elegir.
El funcionamiento es sencillo, disponemos de dos directorios, cada cual con las hojas de estilo que nos interesa. Habrá un enlace a una página que cuando accedemos a ella nos cambiará de directorio, guardará el valor en una cookie y nos devolverá a la página a la página desde la que hemos hecho la llamada o a la raÃz si no existÃa esa página. Y luego en cada página deberemos obtener el valor del directorio de las cookies y usarlo para recuperar la hoja de estilo correspondiente.
El script que se encarga de cambiar de directorio es el siguiente: