Libreria para autenticación y roles en CodeIgniter

marzo 4, 2013 § Deja un comentario

What is flexi auth?

flexi auth is a free open source user authentication/login library for use with the CodeIgniter 2.0+ framework.

http://haseydesign.com/flexi-auth/

Anuncios

Configuración Dual de Monitor en XFCE4+Debian Squeeze

abril 22, 2012 § Deja un comentario

Abre la consola

Ejecuta

xrandr

para ver las resoluciones que aceptan tus monitores, así como confirmar que ambos son detectados por el sistema.

man xrandr

te permitirá examinar todas las diferente opciones y posibilidades de este comando. Por ejemplo, el siguiente comando sitúa un monitor debajo del otro y fija las resoluciones que se indican para cada identificador de la pantalla (en mayúsculas).

xrandr --output LVDS1 --mode 1280x800 --output VGA1 --mode 1680x1050 --above LVDS1

Fuente: linuxquestions.org

Internacionalización con PHP/Smarty

septiembre 17, 2008 § Deja un comentario

Visión General

Este documento describe una solución para permitir desarrollar aplicaciones multilenguaje con soporte para Smarty.

Dicha solución se basa en la clase IntSmarty, que se trata de una extensión del motor de plantillas Smarty. Toda la información que aquí se comenta ha sido extraída del artículo Internalize your website with IntSmarty and Smarty.

Se supone conocimientos previos de Smarty, HTML y PHP, así como que se dispone de una configuración de Smarty que funciona correctamente de modo que la clase IntSmarty pueda incluirse sin problemas en la aplicación.

Paquete con el ejemplo en funcionamiento:

Funcionamiento

Preparación de los archivos de traducción

La idea es identificar en la plantilla entre las marcas {l} {/l} las cadenas que se desean traducir. Ayudándonos del script grep_lang.php,

<?php
/* grep_lang.php
Generate localization for IntSmarty
*/
$file = 'templates/' . $_GET['file']; // Modificar la ruta donde se encuentra la plantilla si es necesario
$fp = fopen($file, 'r');
$content = fread($fp, filesize($file));
$regex = '!{l}(.*?){/l}!s';
preg_match_all($regex, $content, $matches);
foreach($matches[1] as $m) {
echo '$__LANG[\'' . md5($m) . '\'] = \'' . $m . '\';<br>';
}
?>

se parsea este documento cuyo resultado servirá de base para la creación de los respectivos archivos de idioma. La plantilla se debe pasar al script grep_lang.php con el parametro file=. Como resultado se muestra en pantalla lista de todas las cadenas de la plantilla entre las marcas {l} y {/l} en el idioma que esté la plantilla, pudiendose editar posteriormente para crear el fichero de traducción correspondiente.

Un ejemplo de un archivo de idioma generado mediante la ayuda de este script podría ser el siguiente, que debe ser guardado en el PATH correspondiente al directorio donde se almacenaran los diferentes archivos de traducciones. Este PATH puede ser definido por el usuario, como veremos a continuación.

Uso de IntSmarty

El archivo base PHP deberá incluir la clase IntSmarty y especificar el PATH donde se guardaran los archivos de traducción.

Para especificar el PATH donde se guardaran los archivos de idioma, extendemos la clase IntSmarty donde se indicará el PATH de los archivos de idiomas así como la estructura de archivos necesaria para el sistema de plantillas Smarty.


Class Translate extends IntSmarty {
var $lang_path = 'lang/'; //include trailing slash
function Translate($lang = null) {
$this->Smarty();
$this->template_dir = 'templates/';
$this->compile_dir = 'templates_c/';
$this->config_dir = 'configs/';
$this->cache_dir = 'cache/';
parent::IntSmarty($lang);
}
}

Una vez hecho ésto sólo hay que instanciar la clase Translate, que como puede verse en el código no es más que una extensión de su clase base IntSmarty, pasando como argumento el idioma en el que se desea mostrar la página y llamar a la función display de Smarty con su correspondiente plantilla como argumento.

$IntSmarty = new Translate($lang);
$IntSmarty->display(‘int_smarty.html’);

Hay que considerar que los ficheros PHP de idioma deberán llamarse {$lang}.php. Así, por ejemplo si para identificar el idioma Catalán utilizamos el valor ‘cat’, el fichero de idioma correspondiente deberá llamarse cat.php y encontrarse en el PATH de idiomas que se definido.

int_smarty.html es el nombre de la plantilla que se encuentra bajo el directorio templates/ y que contiene las marcas de traducción {l} {/l} que se ha comentado al principio del documento.

Internationalization Smarty

{l}Choose your language{/l}: ES ||EN || CAT


{l}Hello{/l} {$name}

{l}Welcome to my tutorial{/l}

{l}Tutorial for Internationalization your PHP with IntSmarty{/l}

Por hacer (TO-DO)

Para montar un sistema multilenguaje fácil de mantener, sería conveniente desarrollar una pequeña aplicación que con la ayuda del script grep_lang.php muestre todas las frases a traducir y permita especificar el idioma que se desea crear y lo guarde con el nombre correspondiente en el directorio de idiomas especificado.

Welcome

septiembre 17, 2008 Comentarios desactivados en Welcome

Hola,

Bienvenid@ a este nuevo espacio en el que aún no sé muy bien que tipo de contenido voy a ir añadiendo. Seguramente el tiempo y las necesidades me den una orientación.

Por el momento he creado una página llamada Cajón Desastre en la que voy a ir poniendo diferentes TIPs técnicos, problemas puntuales que me encuentro y que en principio no me pareció trivial la solución. Si veo que va creciendo me plantearé estructurarlo de otra forma, aunque también es verdad que espero que las siguientes entradas tengan un sentido en sí mismas y no tengan por lo tanto cabida en este Cajón Desastre.