Mejoras y añadidos en el MeioUpload Behavior

Hace unas semanas hablé del MeioUpload Behavior y ahora me gustaría comentar la aparición de una mejora a este behavior realizada por José González y de otra con unos añadidos extra de mano de flipflops.

Etiquetas: ,

Conectarse a una Base de Datos externa desde WordPress

Hace mucho que no toco las tripas de WordPress, pero recientemente me he visto en la necesidad de instalar uno y hacer que dentro se obtengan información de una Base de Datos externa. Mirando la documentación que a primera vista parece completa, pero que luego te das cuenta que le haría falta una reestructuración, pensé que tendría que hacer la conexión “a pelo” con su mysql_connect y demás.

Por suerte existe Nicolás Fantino y a más de existir, sabe de WordPress. Y me dio la solución usando la propia clase de conexión a DDBB de WordPress.

Seguidamente cómo conectarse y ejecutar una consulta:

define('DDBB_USER', 'root');
define('DDBB_PASSWORD', '');
define('DDBB_NAME', 'newoysho');
define('DDBB_HOST', 'localhost');

$gestordb = new wpdb(DDBB_USER, DDBB_PASSWORD, DDBB_NAME, DDBB_HOST);
$gestordb->get_results('SELECT * ....'');

Dos cosas. La primera, podemos utilizar todos los otros métodos que nos proporciona la clase wpdb y segunda, ojo al definir constantes para usarlas en la conexión, no se os ocurra usar de nombre DB_USER, DB_PASSWORD, DB_NAME ni DB_HOST, son las que usa el propio WordPress.

Etiquetas:

Usar XML con PHP

Desde la versión 5 de PHP el uso de XML se ha vuelto más sencillo y si venimos de PHP4 y el uso de librerías de terceros para el uso de XML, no nos irá nada mal la serie de artículos sobre el uso de XML desde PHP5 que tiene IBM:

Etiquetas:

Generar cadenas con carácteres aleatorios con PHP

Justamente el otro día pensé que necesitaba hacer una función que generara cadenas con un tamaño específico de carácteres aleatorios y mira tu por dónde, leyendo un artículo me he encontrado con una hecha:

function __randomString($minlength = 20, $maxlength = 20, $useupper = true, $usespecial = false, $usenumbers = true){
        $charset = "abcdefghijklmnopqrstuvwxyz";
        if ($useupper) $charset .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if ($usenumbers) $charset .= "0123456789";
        if ($usespecial) $charset .= "~@#$%^*()_+-={}|][";
        if ($minlength > $maxlength) $length = mt_rand ($maxlength, $minlength);
        else $length = mt_rand ($minlength, $maxlength);
        $key = '';
        for ($i=0; $i<$length; $i++){
            $key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
        }
        return $key;
    }

Me gusta bastante, excepto la parte que determina el tamaño de la cadena devuelta. De un primer vistazo no se entiende (claro que yo soy un poco tonto).

De paso también nos invita a dar una vuelta por la función mt_rand.

Etiquetas: ,

Creando un Wiki con CakePHP

Seguimos con la recopilación de documentación que aporte ayuda a la hora de ver qué y cómo se puede desarrollar con CakePHP.

Esta vez  con la serie de artículos realizados desde IBM para la creación de un wiki con CakePHP:

  1. Introduction & Scaffolding
  2. Developing the basic wiki code
  3. Users and Permissions
  4. Task management
  5. The open blog

Etiquetas:

Recursos de documentación sobre CakePHP

En un artículo anterior, comenté la reciente “publicación” de un libro sobre trucos para CakePHP.

Ahora me gustaría ampliar esa información con un listado de recursos de documentación sobre este Framework de desarrollo en PHP:

Libros

Enlaces

Etiquetas: ,

Libro gratuito de consejos avanzados sobre CakePHP

A la cada vez mayor oferta (hasta no hace mucho era todo lo contrario) de documentación sobre CakePHP, ahora le podemos sumar el libro (pdf) gratuito que ha elaborado Matt Curry de pseudocoder.com, llamado Super Awesome Advanced CakePHP Tips.

Etiquetas:

Transformar br a saltos de carro

Todos conocemos la función de PHP nl2br que transforma retornos de carro en el elemento br de HTML, recientemente a br de XHTML. Pero nos puede ser útil el proceso inverso, cosa que conseguiremos mediante expresiones regulares, tal como he visto en uno de los comentarios dentro de la documentación de PHP:

function br2nl($string){
    return preg_replace('/\/i', "\n", $string);
}

Etiquetas:

Ejecutar callbacks del modelo en función de acciones del controlador

Una de las cosas que me he encontrado al desarrollar con CakePHP es el poder ejectuar cierto código en las callbacks (afterSave, beforeSave, afterFind, etc.) del modelo en función de la acción realizada desde el controlador. Ciertamente no había pensado en la solución que plantea teknoid al respecto:

Generar una variable y un método en nuestro app_model:

var $controllerAction = null;

function setControllerAction( $action = null ) {
    if($action) {
        $this->controllerAction = $action;
    }
}

Que después podemos utilizar en las callbacks de nuestros modelos:

function afterFind($results, $primary = false) {
    if($this->controllerAction == 'test') {
        // run some code such as $this->_reformatTestData($results);
    }
}

Y desde los controladores para expecificar qué acción está realizando la llamada a la callback:

$this->User->setControllerAction('test');
$this->User->find('all');

Etiquetas: , ,

Tutoriales de desarrollo en PHP

Muy buen recurso la web Developer Tutorials y en este caso la sección dedicada a PHP (disponen de otra para JavaScript), donde se pueden encontrar una larga lista de tutoriales más o menos interesantes pero que seguro que son útiles en su momento.

Un lástima que no disponga de RSS específico por sección.