viernes, 22 de julio de 2011

Manejo de una página web multilanguage con Sesiones en CodeIgniter

Para manejar una página multilanguage en codeigniter es bastante sensillo si sabemos un poco de sesiones en este framework.
Este ejemplo es para aquellos que quieren tener su página web en diferentes idiomas y no quieren que el idioma se muestre en la URL, para lo cual son indispensables las sesiones.
Primero creamos un archivo en el Core, el cual va a extender de CI_controller y así ahorrarnos varias lineas de código, ya que en este archivo estaremos haciendo el cambio de idioma.

<?php if (!defined('BASEPATH'))   exit('No direct script access allowed');

class BaseController extends CI_Controller
{
    public $data = array();

    function __construct() {
        $this->data["headline"] = "HeadLine del BaseController";
        parent::__construct();
        // aca establesemos la sesion de idioma, "lang".
        // notese que en este caso nuestro idioma por defecto será el español, porque la primera vez la sesion no está establecida
        // por lo cual se ejecuta el else.
        if ($this->session->userdata('lang') == 'en') {
            $this->config->set_item('language', 'english'); //esto cambia el archivo de configuracion config[language] = "english";
            $this->lang->load('datos', 'english'); //cargamos los archivos que agregamos a /system/language/english
        } else {
            $this->config->set_item('language', 'spanish'); //esto cambia el archivo de configuracion config[language] = "spanish";
            $this->lang->load('datos', 'spanish'); //cargamos los archivos que agregamos a /system/language/spanish
        }
    }

    //la funcion current_page la utilizaremos para saber desde que página se hizo click para cambiar el idioma.
   //la sesion que utilizamos es "current_url" y debemos colocarla en la primera línea de cada función en nuestros controllers
    function current_page()
    {
            $this->session->set_userdata('current_url',  $this->uri->uri_string());
    }
}
?>

Creamos un controller en el cual tendremos las funciones de cambio de idioma, en este caso el nombre es Categoria.php

<?php if (!defined('BASEPATH'))   exit('No direct script access allowed');

class Categoria extends BaseController {

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

    public function espanol() {
        $this->session->set_userdata(array('language' => TRUE, 'lang' => 'es')); //establecemos la sesion lang en "es"
        $current_url = $this->session->userdata('current_url'); //la sesion establecida en BaseController
        //comprobamos que la sesion tenga la url desde donde se quiere cambiar al idioma español,
                if (isset($current_url) && $current_url != '') {
                    redirect($this->session->userdata('current_url')); //redireccionamos a la url desde donde se hizo el cambio de idioma
                }
                else
                    $this->index(); //cargamos la funcion index de este controller.
    }

    public function english() {
        $this->session->set_userdata(array('language' => TRUE, 'lang' => 'en')); //establecemos la sesion lang en "es"
        $current_url = $this->session->userdata('current_url');
                if (isset($current_url) && $current_url != '') {
                    redirect($this->session->userdata('current_url'));
                }
                else
                    $this->index();
    }

    public function index($someslug="") {
            $this->current_page(); //siempre colocamos esta función de BaseController en la primera línea de las funciones
            $this->data["title"] = "Inicio"; //titulo para la vista
            //hacemos unas querys o algo y luego cargamos la vista
            $this->data["main_content"] = "inicio/login";
            $this->load->view("template/layout", $this->data);
    }

Creamos una vista para login, en este caso es sólo parte del ejemplo, no le pusimos ningun tipo de utilidad.

<div>
<fieldset>
<legend><?php echo $this->lang->line('titulo_form_post'); ?></legend>

<?php echo form_open('categoria/index');?>
<div>
<label><?php echo $this->lang->line('Nombre_de_Usuario'); ?></label>
<input name="user" size="30" type="text" value="<?php echo set_value('user'); ?>" />
<div class="error"><?php echo form_error('user');?></div>

<label><?php echo $this->lang->line('Password'); ?></label>
<input name="password" size="30" type="password" value="<?php echo set_value('password'); ?>" />
<div class="error"><?php echo form_error('password');?></div>

<div><input class="input-submit" type="submit" value="Submit" /></div></fieldset>
</div>
<?php echo form_close();?>

</fieldset>
</div>

También tenemos el layout que es parte de nuestra forma de trabajar con plantillas, en esta vista le ponemos los links a las funciones de cambio de idioma, estos links deben de ser mostrados en todas las pantallas de nuestra web, es recomendable colocarlas en el header.

<?php
     $this->load->view('template/header');

     <div id="language">
        <?php
                echo anchor('categoria/espanol', 'Ver la Página en Español');
        ?>
        </br>
        <?php
                echo anchor('categoria/english', 'Display current page in English');
        ?>
     </div>

     $this->load->view($main_content);
     $this->load->view('template/footer');

?>

Bueno eso es todo lo que puedo mostrarles sobre una página multilanguage, espero que todo haya quedado claro, y si tienen alguna duda, o algun error en el código que publiqué, sientanse libres de preguntar.

lunes, 13 de junio de 2011

¿Manejo de varios lenguajes en una Página web utilizando CodeIgniter?

El framework CodeIgniter permite el uso de varias librerias que nos facilitan el trabajo, una de esas librerias son las de lenguaje(language); podemos utilizar librerias para poder manejar diferentes lenguajes desde la URL o URI, como prefieran llamar a la dirección web.

Con esta librería el lenguaje que se mostrará en la página se debe especificar en la URI, por ejemplo:
Aqui vamos a mostrar dichas librerias, para CodeIgniter 2.x
Si necesitas la versión para CodeIgniter 1.7.X visita la siguiente página.

martes, 24 de mayo de 2011

Messenger estará perfectamente integrado en Windows Phone, con mensajes de texto y mensajería instantánea juntos

Ayer por la noche El equipo de Windows informó que hay muchas mejoras para el Messenger, especialmente en el Windows Phone.
Aca les dejo unas caracteristicas que tendrá el nuevo Aplicativo.

Elija los servicios que desea - Más de 300 millones de personas utilizan Messenger para conectarse a otras personas todos los meses, la gran mayoría de los usuarios de Messenger son también miembros de otros servicios como Facebook y Yahoo. Debido a esto, se han integrado en este proyecto.
Acceso a ellos desde todos sus dispositivos - Messenger está disponible desde hace muchos años en una amplia gama de dispositivos, utilizando las aplicaciones creadas tanto por Microsoft y/o por Socios. Además de los programas de escritorio clásico Messenger para PC y Mac, Messenger está integrado en la web de Hotmail, SkyDrive, y varios sitios de tercera en todo el mundo. Además, las aplicaciones de Messenger están disponibles para la mayoría de los teléfonos móviles y operadores móviles en todo el mundo, incluyendo teléfono de Windows 7, el iPhone, Android, Blackberry OS, Symbian de Nokia, Samsung Bada, y muchos más.

Organigrama

Este es un ejemplo de Organigrama de una empresa Constructora.

lunes, 23 de mayo de 2011

¿Cómo instalar en Ubuntu?

Para muchas personas que no estan acostumbradas a utilizar Sistemas operativos Libres, en este caso Ubuntu Desktop 9.10; talvez cuando quieran instalar un programa busquen los muy conocidos .exe en S.O. Windows.
Para instalar programas en Ubuntu, podemos hacerlo de diferentes formas, por ejemplo:

1)Menú Aplicaciones - Centro de Software de Ubuntu: Esta es la manera mas sencilla de instalar software, ya que sólo escogemos una categoria, luego buscamos por nombre y con un click ya podemos tener instalado el paquete (recordemos que en linux, a los programas, software se les conoce como paquetes).

viernes, 20 de mayo de 2011

¿Quieres ser un Superheroe?

¿Quieres ser un SuperHeroe?... Bueno, todos sabemos que eso es imposible pero al menos podemos conformarnos con tener nuestro propio comic, y si no eres de las personas que escriben historietas  pero igual quieres tener un superheroe, porque no crear un prototipo y hasta tener una portada de Comic sobre tu Superheroe!.

Pues ahora, hacer esto es fácil, simplemente hay que ir a la pagina The Hero Factory y crear uno, elegir su vestuario, sus rasgos faciales (puedes hacerlo parecido a ti), y sus poderes; al final cuando ya tengas tu superheroe creado tendrás lista la portada de tu Comic y puedes después mostrarla al mundo a través de las redes sociales.

Acá un ejemplo del SuperHeore de DivierTEC.

La Evolución de los Celulares

Divertido de ver como los celulares han ido cambiando año a año desde el primer celular, el Motorola DynaTAC de 1985 hasta el iPhone de Apple en el 2007, para luego ver diseños futuristas de celulares.

Los celulares mas representativos en el video son los de Motorola, Nokia, Siemens, Sony Ericcson, Samsung, BlackBerry.

jueves, 19 de mayo de 2011

Facebook hace 200 años en México

Nuevas ideas aparecen en la red acerca de la más famosa  red social de "todos los tiempos" Facebook.
Por lo que podemos ver en la imagen, Facebook existia ya hace 200 años y reconocidos personajes mexicanos la usaban.

La ingeniosa idea fue hecha para celebrar el bicentenario mexicano, pero después de ver la imagen, muchos jovenes salieron a decir que esta deberia de ser la nueva forma de enseñar historia en los colegios y universidades, y para ser sinceros, no sería una mala idea; es más sabiendo que facebook es la red social que todos utilizan, por que no utilizarla para enseñar historia.

Lanzamiento del Condón "Viagra"

Hace ya más de una semana salió la muy curiosa noticia del lanzamiento de un condón que cumple la función de viagra, es decir mantiene la erección, a diferencia de la idea que muchos tenian sobre los condones, que reducen la ereccion, que quitan  o reducen el placer; sin duda ahora con este "nuevo" método anticonceptivo la gente que se reusaba a utilizar los condones tradicionales podrán sentirse más seguros en la intimidad.

Este curiosos pero muy útil producto fue creado en un laboratorio británico llamado Futura Medical bajo el nombre de CSD500, y el secreto es un gel que a diferencia del gel que utilizan otros condones incrementa el flujo sanguineo local del pene, lo cual hace que éste tenga mas firmeza, y las "malas lenguas" dicen que también aumenta el tamaño del pene, aunque esta hipotesis no haya sido provada.

miércoles, 18 de mayo de 2011

Cómo bajar videos o musica de youtube

En internet podemos encontrar muchas páginas que ofrecen descarga de software para poder descargar los videos o el audio desde youtube, pero por ahi encontré una pagina que permite hacer eso sin necesidad de descargar ningun programa, y lo mejor de todo es que tiene una interfaz amigable, es decir, no tiene publicidad por todos lados, no salen ventanas emergentes y no se activa la barra de javascript, etc, etc...

La página se llama clipconverter.cc y lo único que tienen que hacer es

viernes, 13 de mayo de 2011

Samsung y Acer revelan Chromebooks en Junio


Hace ya varios meses se escuchaba hablar de un sistema operativo basado en el kernel de linux y el web browser de Google, Chrome; pues Samsung y Acer harán la primera presentación comercial de este sistema operativo a partir del 15 de junio, google informa que tanto el Acer Chromebook como el Samsung Chromebook Series 5 tendrán Wi-Fi, un opcional 3G de Verizon con 100MB gratis en descargas por mes.

Los precios que se manejan por el momento para Samsung son de $429 sólo con Wi-Fi y $499 con 3G, mientras que Acer esmpezará con $349.


Las especificaciones para Samsung Chromebook son:
  • Procesador -- Intel Atom dual-core N570 @ 1.66GHz with Intel GMA3150
  • Display -- 12.1-inch (1280 x 800); 300 nit
  • Memoria -- 2GB DDR3 RAM

martes, 10 de mayo de 2011

Microsoft compra Skype por mas de 7.000 Millones de Dólares

No hay dudas de que Microsoft es una de las empresa más poderosas en el mundo y esta vez, más alla de rumores sobre si era Google, o era Facebook quienes comprarían Skype, finalmente Microsoft se la llevó por una suma no menor de 7.000 millones de dórales, la multimillonaria firma aún no sale a confirmar la noticia, pero muchos medios ya la afirman y la dan como concretada, probablemente en las próximas horas se dará la nota de prensa en la cual confirmen el monto exacto de la compra.

La compra de Skype por parte de Microsoft vendría a ser el más grande movimiento del software por extender su dominio; y sabiendo que skype tiene más de 600 millones de usuarios pareciera ser que es una gran "jugada" de Microsoft para volver a ser la empresa mas exitosa a nivel mundial.

domingo, 8 de mayo de 2011

Ahora Apple vale más que Google

Esto sí que es noticia, todos conocemos a estas dos Superempresas, sin embargo uno podría pensar que no hay empresa más grande que google; pues ahora según BrandZ, Apple es la mejor marca del mundo superando al mejor buscador de la world wide web con un valor estimado de más de 150000 millones de dolares.

Los últimos años esta lista la lideraba, y de lejos, Google. Pero los lanzamientos del iPad y del iPhone llevaron a Apple a un crecimiento de mas del 800% desde el 2006, éxitos que ahora lo llevan a ser la marca mas valiosa del mundo.

El top 5 lo lideran marcas muy conocidas:
  1. Apple
  2. Google
  3. IBM
  4. Microsoft
  5. AT&T

Increíble como estas empresas pueden tener tanto poder adquisitivo, y también es increíble ver como Microsoft, que era hace unos años la mas poderosa, ahora tiene que conformarse con el 4 lugar.

Futuro de DivierTEC

Ahora en este blog podrás encontrar todo sobre tecnología y divertirte con las curiosidades del mundo tecnológico.
Abordaremos temas como linux, windows servers, php, codeigniter, mysql, sql, c#, vs, exploradores de internet, tecnología movil, etc.
Muy pronto tambien podrás encontrarnos en un dominio propio en donde encontrarás videotutoriales, tutoriales, noticias y mucho más!