31Dic 2009 3 Comments */?>

Como hacer una web multilenguaje

Categorías: Tutoriales - Tags:

Para detectar el idioma del navegador y hacer una web multilenguaje existen diversos métodos. Yo particularmente suelo usar el siguiente:

Primero creo el archivo lang-functions.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
    /*
 
    =============================================================================
 
     Funcion: detectar_idioma_navegador() 
 
    -----------------------------------------------------------------------------
 
     Proposito: Esta funcion detecta el idioma por defecto seleccionado en el navegador del visitante.
 
     Si no se detecta un lenguaje valido, se asigna el selecionado por defecto.
 
 
 
    =============================================================================
 
    */
 
    function detectar_idioma_navegador() {
 
    global $conf;
 
 
 
    $languages = preg_replace('/(;q=\d+.\d+)/i', '', getenv('HTTP_ACCEPT_LANGUAGE'));
 
 
 
    $bol_language_detected = false;
 
 
 
    // Comprobamos si el navegador usa alguno de los idiomas que hemos predefinido.
 
    foreach ($conf['lang_enabled'] as $tmp_arr_language) {
 
    if (preg_match('/' . $tmp_arr_language . '/i', $languages)) {
 
    $tmp_str_language_detected = $tmp_arr_language;
 
    $bol_language_detected = true;
 
    break;
 
    }
 
    }
 
    // Si el navegador usa uno de los idiomas seleccionados, se devuelve el path del fichero de idioma
 
    // En caso contrario, se devuelve el path del idioma original
 
    if ($bol_language_detected) {
 
    return $tmp_str_language_detected;
 
    } else {
 
    return $conf['lang_default'];
 
    }
 
    }

Una vez creado el archivo lo incluyo de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
include("languages/lang-functions.php");
 
 
		$conf['lang_default'] = 'es'; // idioma por defecto
 
		$conf['lang_enabled'] = array('es','en');
 
		$conf['lang'] = detectar_idioma_navegador();
 
		if(isset($_GET['lang'])) $conf['lang']=$_GET['lang'];// Podemos crear un link como por ej una bandera para permitir cambiar el idioma al usario
 
		require_once("languages/".$conf['lang'].".php");

Por último nos queda crear los archivos de idiomas de la siguiente forma:

es.php

1
2
3
4
<? // Spanish language file 
   setlocale(LC_ALL,'es_ES');
define("_MENSAJE", "HOLA SOY UN MENSAJE EN ESPAÑOL");
?>

en.php

1
2
3
4
<? // English language file 
   setlocale(LC_ALL,'es_ES');
define("_MENSAJE", "Hi im a English message");
?>

En la web escribiriamos echo (_MENSAJE); y según el idioma del navegador aparecerá de una forma u otra.

Espero que haya servido de ayuda

22Dic 2009 0 Comments */?>

Actualización de ShipTimer

Categorías: Noticias - Tags:

SHIPTIMER recibe su primera actualización tras los consejos de nuestros clientes. El changelog de mejoras y correciones es el siguiente:

+ 10-12-09 Añadido número marea a los trabajos .
+ 10-12-09 Opción de abrir varios trabajos desde busquedas.
+ 10-12-09 Se agrega función para borrar trabajos.
+ 10-12-09 El limite de los trabajos ahora es 3000 caracteres y muestra cantidad de caracteres escritos.
+ 11-12-09 Se agrega campo CUIT a los talleres.
+ 20-12-09 Rediseño de materiales, ahora se divide en ordenes de compra y facturas de compra.
+ 22-12-09 Nuevo campo para “observaciones” dentro de las especificaciones técnicas de los barcos.
+ 22-12-09 Ahora se puede cambiar el estado de un trabajo al crearlo.
+ 22-12-09 Ahora se puede asignar ordenes de compra y facturas existentes a trabajos.

Para conocer más acerca del software más completo para la gestion de una flota pesquera visitar la web de Timersys.

14Dic 2009 5 Comments */?>

Como limitar los caracteres de un textarea

Categorías: Tutoriales - Tags:

A diferencia de los <input type=”text”> , los campos <textarea> no tienen el atributo de maxlength. Digamos que dado un campo de texto como el siguiente:

1
<textarea id="descripcion" onkeyup="contar(this);" cols="50" rows="8" name="descripcion"> </textarea><span id="letras">3000/3000 caracteres</span>

Si queremos contar y mostrar los caracteres escritos en un span, tan solo necesitamos esta pequeña función.

1
2
3
4
5
6
7
8
9
10
11
12
13
function contar(input) {
//Comprobamos que no pase de 3000 caracteres y si pasa, que borre los sobrantes
if (input.value.length >= 3000) {
input.value = input.value.substring(0,3000);
}
//alamacenamos el resto
var resto = 3000 - input.value.length;
 
//imprimimos los caracteres restantes en el span
var final=document.getElementById('letras');
final.innerHTML=resto+"/3000 caracteres";
 
}

Como pueden ver, es muy facil y tan solo bastaron unas lineas de javascript. Saludosss

13Nov 2009 1 Comment */?>

Timersys estrena Web!!!!

Categorías: Noticias

Si , lo se desapareci de la tierra. La razon es que estuve inmerso en un proyecto.

QueResaca.com

Es una web de Humor para colgar anécdotas o historias de borracheras o similares. No requiere registro alguno para subir tu anécdota y además se pueden incluir fotos y videos. Tiene ranking de borrachos y se puede votar las mejores y peores historias. Espero que les guste, pasen y vean

30Sep 2009 10 Comments */?>

Selects anidados con AJAX y JQuery

Categorías: JQuery, Tutoriales - Tags:

Los selects anidados o dependent cascading selects como dicen los ingleses , son usados hoy en día en la mayoria de formularios cuando nos registramos en una web. El ejemplo más comun es a la hora de elegir nuestro pais de procedencia , donde seguidamente carga en otro select las provincias de dicho pais. El otro día precísamente publique un listado completo de paises + provincias.

Hacer esto con JQuery es más que sencillo. Tan solo necesitaremos 3 archivos:

index.php Donde tendremos un formulario simple con sus correspondientes selects.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript" src="cargarProvincias.js"></script>   
<script type="text/javascript" src="../jquery.js"></script> 
<? 
   include_once ('db.php');
   $conn= get_db_conn();
 
$paises=mysql_query("SELECT * from paises",$conn);
   ?>
<form id="form" action="" method="post" class="niceform">
<dl><dt>  	  <label><span class="rojo">*</span> Pais :</label></dt>
          	  <dd>	 <select name="pais" id="pais"  onchange="cargarProvincias();" />
                                 <option value="null">Selecciona un pais</option>
           	 <? 	          while($row=mysql_fetch_assoc($paises)){
					print '<option value="'.$row['id'].'" >'.$row['pais'].'</option>';
											}?>
				</select>
                 </dd>
</dl>                                                  
 
<dl><dt>      <label><span class="rojo">*</span> Provincia :</label></dt>
           		<dd>	 <select name="provincia" id="provincia"  />
                                <option value="null">Selecciona un pais</option>
           			</select></dd>
</dl>
</form>

Un archivo encargado de buscar las provincias según el pais indicado. Primero se conectará a la base de datos, y luego devolverá los resultados.

ajax_provincias.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<? 
   include_once ('db.php');
   $conn= get_db_conn();
   ?>
<? 
$conn=get_db_conn();
$pais= cleanQuery($_GET['pais']);
$provincias=mysql_query("SELECT * FROM estados WHERE relacion = '$pais'",$conn);
?><?
while( $row= mysql_fetch_assoc($provincias)){
		echo '<option value="'.$row['id'].'">'.$row['estado'].'</option>';
}
?>

Y por último el código JQuery que hará la magia de pasar el Pais seleccionado al archivo ajax_provincias.php mediante AJAX y luego cargará los valores devueltos dentro del segundo SELECT

cargarProvincias.js

1
2
3
4
5
6
7
8
9
10
11
12
13
function cargarProvincias(){
	$('#provincia').html('<option selected>Cargando</option>');
 
 	var idPais= $('#pais').val();
 
	var toLoad= 'cargar_provincias.php?pais='+ idPais ;
	$.post(toLoad,function (responseText){
 
	$('#provincia').html(responseText);
 
							});
 
}

Para terminar , le pueden echar una ojeada al DEMO ONLINE
Y descargar el código del ejemplo.

25Sep 2009 5 Comments */?>

Listado completo de paises y provincias

Categorías: Recursos - Tags:

Se que últimamente los tengo abandonados pero no me da el tiempo para tantas cosas, intentaré escribir un par de artículos este fin de semana.

Ahora los que les traigo es una lista de paises con sus respectivas provincias / estados en español. Se trata de un archivo SQL listo para ingresar en la base de datos con un total de 239 paises y 4291 provincias.

Esto viene genial para cuando necesitamos hacer por ejemplo un select dependiente (lo explico en el próximo artículo) en un formulario para que una ves elegimos el pais nos muestre sus respectivas provincias. Espero que les sirva de ayuda. Un saludo y hasta pronto.

Descargar Paises.sql

13Sep 2009 5 Comments */?>

SHIPTimer – Gestion de flota pesquera o barcos en general

Categorías: Noticias - Tags:

Hoy les traigo un review del programa SHIPtimer . Programa online realizado por Timersys.

SHIPtimer nace como el complemento ideal para las empresas pesqueras y armadores de barcos.

Con dicho software de gestión podrá controlar toda su flota y los trabajos que se realizan en ella.

Como Jefe de la empresa podrá controlar que los trabajos se hagan y el estado de los mismos desde cualquier lugar que se encuentre.

Para el Jefe Técnico de la flota es la herramienta ideal para mantener organizado todo, y poder guardar un historial completo. Podrá detectar tendencias en los problemas y así evitarlos o por ejemplo controlar los gastos según la cantidad de materiales que se soliciten.

Entre las principales características se encuentran:

  • Ficha técnica completa de los barcos (Motores, tanques, números de serie, etc)
  • Múltiples usuarios (podrá crear todos los usuarios que necesite)
  • Software online (Al ser online podrá acceder desde cualquier sitio)
  • Listado completo de trabajos con múltiples opciones de ordenación
  • Task Manager (Podrá agregar tareas con avisos que le recordarán cuando realizarlas)
  • Categorías y estados personalizables (Ej. de categorías: Electricidad, carpintería, etc;  Ej de estados: Nuevo, En progreso, Esperando repuestos)
  • Control de talleres que realizan los trabajos
  • Control de materiales a comprar y comprados por trabajo, o barco
  • Búsquedas complejas (podrá encontrar cualquier trabajo realizado gracias a los múltiples métodos de búsqueda)
  • Informes personalizados (Podrá imprimir informes de acuerdo al criterio deseado)
  • Envio de emails (Podrá enviar actualizaciones de sus trabajos via email a múltiples usuarios de una forma más que sencilla)

Si desea puede ver el video tutorial que le explica las principales características del programa.

O visitar el DEMO Online y jugar un poco. ( Usuario : demo Password: demo)