jueves, 7 de abril de 2016

Creación de shortcodes para plugin [WORDPRESS]

Buenas.

Hoy vamos a explicar de forma sencilla como crear un shortcode y como comenzar con el desarrollo de un plugin para wordpress.

Antes de nada, ¿Qué es un shortcode?

domingo, 6 de septiembre de 2015

Guía para utilizar SourceTree

Buenas.

Hace unos días aprendí a manejar una gran herramienta llamada SourceTree y venia a presentárosla.

SourceTree nos permite controlar nuestros repositorios. Es una herramienta de gran utilidad que nos permite tener nuestro código organizado según nuestros intereses. Y nos permite interactuar con código de otros socios (o con el nuestro) de forma “sencilla”, cómoda y estructurada.

Veamos un ejemplo.

En la imagen tenemos una rama principal llamada ‘desarrollo’ y 2 subramas (modificar y borrar).

En el primer punto rojo, lo que hemos hecho ha sido crear una nueva subrama llamada ‘modificar’. Tras la creación de esta subrama, hemos escrito nuestro código y lo hemos subido para que se guarde (commit).
Una vez terminado el código que tiene que ver con la funcionalidad de ‘modificar’, en el segundo punto rojo hemos unido la subrama ‘modificar’ a la rama ‘desarrollo’.
Esto implica que en la rama ‘desarrollo’ se nos guarde el código escrito en la subrama ‘modificar’.

Quedando la rama desarrollo y la subrama modificar así:
class SourceTree extends CI_Controller {
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
    
    }
    
}

Tras ello, hemos creado una nueva subrama (borrar). El crear una nueva subrama, implica que todo el código que tiene la rama se pase a la subrama creada. Por tanto, en la subrama ‘borrar’ tendríamos el código que se escribió en la rama ‘modificar’.
Una vez creada la subrama escribiríamos el código para implementar la funcionalidad de borrar. Y tras terminar, uniríamos esta subrama a la rama principal. Implicando así, que en la rama desarrollo ya tengamos el código de la funcionalidad de borrar y modificar.

Quedando la rama desarrollo y la subrama borrar así:
class SourceTree extends CI_Controller {
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
    
    }

    
    public function borrar() {
        
        //codigo que tiene que ver con el borrar
    
    }
    
}

Pero aquí no acaba la cosa…

Imaginemos que más adelante nos damos cuenta que hemos cometido un error en la funcionalidad de ‘modificar’. Pues con SourceTree sería bastante sencillo de corregir este error.
Simplemente tendríamos que movernos a la subrama ‘modificar’. Una vez nos hemos movido, en nuestro IDLE únicamente nos aparecerá el código que escribimos en su momento sobre esta funcionalidad.

Osea, nos apareceria unicamente este código:
class SourceTree extends CI_Controller {
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
    
    }
    
}

Editamos el código para corregir el error y subimos los cambios (commit).
Tras ello, debemos unir esta subrama a la rama principal otra vez. Dando lugar a que el código que había sobre la funcionalidad de ‘modificar’ en la rama desarrollo se modifique de forma automática por el código que hemos escrito recientemente.

La subrama modificar quedaria así:
class SourceTree extends CI_Controller {
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
        //error corregido
    
    }
    
}

La rama desarrollo quedaría así:
class SourceTree extends CI_Controller {  
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
        //error corregido
    
    }

    
    public function borrar() {
        
        //codigo que tiene que ver con el borrar
    
    }
    
}

Como resultado, en nuestra rama desarrollo tendremos el código de la funcionalidad borrar y el nuevo código implementado en la subrama modificar.

Otro punto importante. Imaginemos, que tenemos un error en la funcionalidad de ‘borrar’. Nos deberemos mover a la rama de borrar. Entonces nos daremos cuenta, de que el código que hay en la subrama borrar acerca de la funcionalidad ‘modificar’ es código viejo, es decir, está el código de ‘modificar’, pero sin solucionar el error que nos surgió anteriormente.
Pues bien, una vez hemos escrito el código para solucionar el error en la funcionalidad de ‘borrar’, debemos hacer un commit y luego unir esta subrama con la rama principal.

El resultado, será que tendremos en la rama desarrollo el código de modificar (con el error corregido) y el código de la subrama borrar (con el código corregido).

La rama desarrollo quedaría así:
class SourceTree extends CI_Controller {  
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
        //error corregido
    
    }

    
    public function borrar() {
        
        //codigo que tiene que ver con el borrar
        //error corregido
    
    }
    
}

La subrama borrar quedaría así:
class SourceTree extends CI_Controller {
    
    public function modificar() {
        
        //codigo que tiene que ver con el modificar
    
    }

    public function borrar() {
        
        //codigo que tiene que ver con el modificar
        //error corregido
    
    }
    
}
El gráfico de ramas quedaría así:


¿Cómo unir, crear ramas etc.?

-Commit: nos permite subir nuestro código a la rama en la que nos encontremos.
-Branch: nos permite crear una nueva rama.
-Merge: nos permite unir 2 ramas.
-Fecth: nos muestra los commits de nuestros compañeros.
-Pull: implementa los commit de nuestros compañeros de forma automática.
-Push: sube los cambios al repositorio.
-Stash: crea un paquete con todo nuestro código actual.


Y hasta aquí por hoy, un saludo.

lunes, 17 de agosto de 2015

Tareas programadas en CogeIgniter [WINDOWS]

Buenas.

Hoy vamos a hablar sobre cómo crear tareas programadas haciendo uso de codeIgniter.
Con este artículo aprenderemos a ejecutar de forma automática un método creado mediante codeIgniter cada X tiempo.

Lo primero que debemos hacer, es crear un controlador. Debemos tener en cuenta que dependiendo de lo que queramos hacer, debemos imponer unas medidas de acceso u otras.

El controlador quedaría similar a esto:
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cronjobs extends CI_Controller {
    
    function __construct() {
        
        parent::__construct();

    }
    
    public function index() {
        
        redirect( site_url() );
    
    }
    
}

Tras ello, creamos la función que se va a ejecutar cada X tiempo.
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Tareas extends CI_Controller {
    
    function __construct() {
        
        parent::__construct();

    }
    
    public function index() {
        
        redirect( site_url() );
    
    }

    public function tu_funcion() {
        
        //escribe tu funcion
    
    }

}
En este caso, yo lo que he hecho, ha sido crear una función (al final del articulo os la he puesto) que asigne de forma automática puntos a todos aquellos usuarios que hayan comprado la mensualidad llamada ‘puntos_automaticos’. Esta mensualidad hace que cada cierto tiempo se le asignen puntos a los usuarios sin necesidad de tener que conseguirlos viendo anuncios. Además, se acumula con otras ofertas.

Por ejemplo si un usuario ha comprado la bonificación de ‘puntos_automaticos’ y además tiene la bonificación de conseguir 16 puntos por anuncio, pues cada vez que se ejecute este método, se le asignaran 16 puntos en lugar de 1.

También comprueba que bonificación es mejor. Ya que en regaloconsolas se pueden obtener bonificaciones por 2 lados, por un lado realizando logros y por otro comprando las bonificaciones. Sin embargo, las bonificaciones compradas y las ganadas por logros no se acumulan. Este método, se encarga de ver que bonificación es mejor, si la de logros o la comprada. Una vez comparadas, ejecuta la mejor.

Una vez terminado nuestro método, debemos ir al programador de tareas > crear nueva tarea > acciones > nueva…
Y debemos configurarlo de la siguiente forma:
En el recuadro rojo, debemos introducir la ruta de nuestro navegador. Mientras que en el recuadro negro, debemos introducir la ruta de nuestro método.

Por ejemplo, la ruta del método que puse al principio seria:
http://127.0.0.1/regaloconsolas/index.php/tareas/tu_funcion

Finalmente, debemos seleccionar los periodos en los que se va a ejecutar este método. Para ello debéis ir a desencadenadores > nuevo… Y elegimos según nuestras necesidades.

Y eso es todo, un saludo.