Posts Tagged ‘codeigniter’

Conectar multiples bases de datos en CodeIgniter

2

En el archivo database.php

tenemos la siguiente información por defecto

$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "xxxxx";
$db['default']['username'] = "xxxxx";
$db['default']['password'] = "xxxxx";
$db['default']['database'] = "xxxxx";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

Para añadir otra conexión de bases de datos tendremos que añadir al principio de este código la nueva conexión y quedaría algo así

/* Base de datos XXXX */
$active_group = "my_db";
$active_record = TRUE;
$db['my_db']['hostname'] = "xxxxx";
$db['my_db']['username'] = "xxxxx";
$db['my_db']['password'] = "xxxxx";
$db['my_db']['database'] = "xxxxx";
$db['my_db']['dbdriver'] = "mysql";
$db['my_db']['dbprefix'] = "";
$db['my_db']['pconnect'] = TRUE;
$db['my_db']['db_debug'] = TRUE;
$db['my_db']['cache_on'] = FALSE;
$db['my_db']['cachedir'] = "";
$db['my_db']['char_set'] = "utf8";
$db['my_db']['dbcollat'] = "utf8_general_ci";
/* Default database */
$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "xxxxx";
$db['default']['username'] = "xxxxx";
$db['default']['password'] = "xxxxx";
$db['default']['database'] = "xxxxx";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

 

Una vez guardado este archivo, tendremos que cargar la base de datos que no es por defecto en el controlador de la siguiente forma:

$this->db_my_db = $this->load->database('my_db', TRUE);

 

Y en el modelo de la siguiente forma

$insert = $this->db_my_db->insert('xxx', $xxx);

Internacionalización i18n en CodeIgniter

6

Qué es lo que vamos a obtener en este tutorial?

Vamos a poder solventar tener  tu aplicación web o simplemente web en diferentes idiomas, con el siguiente formato.

  • dominio.com/es/
  • dominio.com/en/
  • dominio.com/cz/

Usaremos la clase Language de CodeIgniter y las librería ci_i18n_library de Maestric

Una vez que te descargues la librería ci_i18n_library, tienes que poner los archivos MY_Language.php y MY_Config.php en system/application/libraries

Configuración

Tienes que usar pretty URL, sin index.php. Si usas Apache, lo normal es que uses mod_rewrite en .htaccess

Aquí dejo un archivo .htaccess modificado para la ocasión

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} (index\.php|webroot/|images/|css/|js/|robots\.txt|favicon\.ico)
RewriteRule ^(images|css|files|js)/(.*)$ webroot/$1/$2 [L]
RewriteRule ^(favicon\.ico)$ webroot/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

En el archivo config.php tenemos que modificar:

$config['base_url'] que debe corresponder a tu configuración

$config['index_page'] = ”

 

En config/routes.php añadimos

// URI like '/en/test' -> use controller 'test'
$route['^es/(.+)$'] = "$1";
$route['^en/(.+)$'] = "$1";

// '/en' and '/es' URIs -> use default controller
$route['^es$'] = $route['default_controller'];
$route['^en$'] = $route['default_controller'];

 

Cómo usarlo?

Archivos de idioma

system/application/language/english/test_lang.php

<?php 
$lang['test_hello'] = "hello";

system/application/language/spanish/test_lang.php

<?php 
$lang['test_hello'] = "hola";

 

Controlador

system/application/controllers/test.php

<?php
class Test extends Controller {

	function index()
	{
		// Esto se podría poner en autoload
		$this->load->helper('language');
		$this->load->helper('url');

		// archivo de idioma
		$this->lang->load('test');

		$this->load->view('test');
	}
}

 

Vista

system/application/views/test.php

<p><?php echo lang('test_hello') ?></p>

 

Notas

Para obtener el idioma actual

$this->lang->lang();

 

Para cambiar de idioma

anchor($this->lang->switch_uri('en'),'English');

Página por defecto en CodeIgniter

0

Para asignar una página por defecto en tu instalación de CodeIgniter, es tan sencillo como ir a la carpeta config que se encuentra dentro de application y editar el archivo routes.php

En la línea 41 (si el archivo no ha sido modificado previamente) encontraréis $route['default_controller'] , donde tendréis que poner el controlador que queréis para que salga por defecto en vuestro dominio $route['default_controller'] = “controlador”

Este tutorial a sido muy básico, pero por algo se empieza.


Volviendo

0

Bueno, después de mucho tiempo, en los próximos días intentaré ir haciendo pequeños tutoriales de CodeIgniter.

Para los que no saben de lo que hablo, mejor no seguid leyendo, pero bueno, os comento algo. Es un framework de php, bastante ligero y potente, ahí queda eso.


CodeIgniter y SimplePie

0

Si quieres crear un readear RSS en CodeIgniter, SimplePie te lo pone bien fácil.

Aquí te explico un poco lo que tienes que hacer.

  1. Descargarte SimplePie
  2. Cambiar la extensión del archivo simplepie.inc a simplepie.php
  3. Mover el archivo simplepie.php a nuestro servidor en la ruta /application/libraries
  4. Cargar la librería en nuestro controlador
    $this->load->library('Simplepie');
  5. Añadir el siguiente código en nuestro controlador
    $this->simplepie->set_feed_url('http://www.tizonsoft.net/feed/');
    $this->simplepie->set_cache_location(APPPATH.'cache/rss');
    $this->simplepie->init();
    $this->simplepie->handle_content_type();
    $data['rss_feed'] = $this->simplepie->get_items();
  6. Añadir el siguiente código en nuestra vista
    <?php 
        foreach($rss_feed as $item) {
           echo '<a href="'.$item->get_link().'" target="_blank">'.$item->get_title().'</a>';
        } 
    ?>
  7. Listo para tener un reader funcionando con CodeIgniter y SimplePie

Post navigation