Google Analytics para GlotPress Plugin

En GlotPress también se pueden crear plugins, aunque aquí no hay panel de administración como en WordPress para activarlos y desactivarlos… con lo cual, una vez lo pones ya está activo!

En este caso he creado un plugin para añadir Google Analytics a GlotPress. Simplemente deberíais crear un fichero nuevo en la carpeta de ./plugins que está en la raíz de GlotPress con el siguiente código:

<?php

class Google_Analytics extends GP_Plugin {
    var $ga_id;

    function __construct() {
        parent::__construct();

        $this->add_action( 'gp_footer' );
        $this->ga_id= 'YOUR_GA_TRACKING_ID';
    }

    function gp_footer() {
        $footer = <<<FOOTER
<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', '$this->ga_id']);
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
</script>
FOOTER;
        echo $footer;
    }
}

GP::$plugins->google_analytics = new Google_Analytics;

Para acabar, solo tenéis que sustituir YOUR_GA_TRACKING_ID por vuestro tracking id!

Cómo crear un usuario en GlotPress

GlotPress es un herramienta web open-source de traducción desarrollada por WordPress.

Por defecto no incorpora ninguna gestión de usuarios. Solo se crea un usuario durante la instalación y es el administrador. Si tienes un blog con WordPress, no debería ser un problema ya que puedes usar los mismos usuarios del blog simplemente definiendo en el fichero gp-config.php de que tablas quieres que coja los datos:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

Hay que tener en cuenta que las tablas de GlotPress y WordPress tienen que estar en la misma base de datos. Si no quieres instalar WordPress para añadir nuevos usuarios, puedes usar el siguiente script:

<?php
    require_once dirname( dirname( __FILE__ ) ) . '/gp-load.php';

    class GP_Script_Add_User extends GP_CLI {

        var $short_options = 'u:e:p:';

        var $usage = "-u <username> -e <e-mail> [-p <password>]";

        function run() {
            if ( !isset( $this->options['u'] ) || !isset( $this->options['e'] ) ) {
                $this->usage();
            }

            $user_by_login = GP::$user->by_login( $this->options['u'] );
            if ( $user_by_login ) {
                $this->to_stderr( sprintf("User '%s' already exists.", $this->options['u']) );
                exit( 1 );
            }

            $user_by_email = GP::$user->by_email( $this->options['e'] );
            if ( $user_by_email ) {
                $this->to_stderr( sprintf("Email '%s' already exists.", $this->options['e']) );
                exit( 2 );
            }

            $args = array();
            $args['user_login'] = $this->options['u'] ;
            $args['user_nicename'] = $this->options['u'] ;
            $args['display_name'] = $this->options['u'] ;
            $args['user_email'] = $this->options['e'] ;
            if( isset( $this->options['p']) ) {
                $args['user_pass'] = $this->options['p'] ;
            }

            $user = GP::$user->create( $args ) ;
            if( !$user ) {
                $this->to_stderr( sprintf("User '%s' hasn't been added.", $this->options['u']) );
                exit( 3 );
            }

            $this->to_stderr( "New user has been added:" );
            $this->to_stderr( sprintf(" - user: %s", $user->user_login) );
            $this->to_stderr( sprintf(" - e-mail: %s", $user->user_email) );
            $this->to_stderr( sprintf(" - pass: %s", $user->plain_pass) );
        }
    }

    $gp_script_add_user = new GP_Script_Add_User;
    $gp_script_add_user->run();
?>

Este fichero va en la carpeta de scripts de GlotPress. En mi caso lo he llamado add-user.php:

php scripts/add-user.php -u <username> -e <e-mail> [-p <password>]

El parámetro password es opcional, en caso de no ponerlo generará uno aleatorio:

$> php scripts/add-user.php -u glotpress -e glotpress@juanramon.me
New user has been added:
- user: glotpress
- e-mail: glotpress@juanramon.me
- pass: 1Owg6XO3x@xp