Tu web de manuales y programas gratis!
Manuales Gratis | Programas Gratis
SORTEO Regístrate Identificate Buscador Novedades
Poner manualmente Fechas en Castellano en PHP Nuke
Manuales | CMS (Gestión de Contenidos) | PHP Nuke
Diseño y programación alextomas.com

¡ATENCIÓN! ¡Hemos iniciado un sorteo!! Sólo para usuarios registrados!!! [Acceder al sorteo]
0
Voto positivo por el recurso Voto negativo por el recurso
Visitar recurso
Enviaselo a un amigo/a !! Comentarios ¿No funciona?

El PhpNuke usa una función del php (setlocale) para "traducir" las fechas al idioma que queramos, la cuestión esta en que esa función depende del sistema operativo del servidor, y de sí lo tiene instalado o no.

Entonces el phpnuke nos deja configurar esa variable desde las preferencias del panel de control ../admin.php?op=Configure debajo del Idioma, Formato de Tiempo Local. Así pues normalmente si usamos un servidor linux con definirlo a 'es_ES' si tiene instalado ese locale pues asunto arreglado. Ya que la función del PHP detecta la configuración elegida en la variable y la adecua así a la petición realizada.

El PhpNuke usa una función del php (setlocale) para "traducir" las fechas al idioma que queramos, la cuestión esta en que esa función depende del sistema operativo del servidor, y de sí lo tiene instalado o no.

Entonces el phpnuke nos deja configurar esa variable desde las preferencias del panel de control ../admin.php?op=Configure debajo del Idioma, Formato de Tiempo Local. Así pues normalmente si usamos un servidor linux con definirlo a 'es_ES' si tiene instalado ese locale pues asunto arreglado. Ya que la función del PHP detecta la configuración elegida en la variable y la adecua así a la petición realizada.

Si es un servidor bajo Windows probaríamos con 'Esp' en vez de 'es_ES'

El problema es que algunos servidores no lo tienen instalado, entonces el apaño seria definir cada mes y da de la semana en una matriz.

Consiste en editar el archivo mainfile.php buscar y sustituir la función formatTimestamp por esta otra:

function formatTimestamp($time){
global $datetime, $locale;
setlocale (LC_TIME, "$locale");
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
$ano=$datetime[1]+0;
$mes=$datetime[2]+0;
$dia=$datetime[3]+0;
$hora=$datetime[4]+0;
$min=$datetime[5]+0;
$longitud=strlen($min);
if ($longitud == 1) $min="0".$min;
$segs=$datetime[6]+0;
$longitud=strlen($segs);
if ($longitud == 1) $segs="0".$segs;
$quedia= strftime ("%w", mktime($hora,$min,$segs,$mes,$dia,$ano));
switch($quedia) {
case 0:
$quedia="Domingo";
break;
case 1:
$quedia="Lunes";
break;
case 2:
$quedia="Martes";
break;
case 3:
$quedia="Miércoles";
break;
case 4:
$quedia="Jueves";
break;
case 5:
$quedia="Viernes";
break;
case 6:
$quedia="Sábado";
break;
}
switch($mes) {
case 1:
$mes="Enero";
break;
case 2:
$mes="Febrero";
break;
case 3:
$mes="Marzo";
break;
case 4:
$mes="Abril";
break;
case 5:
$mes="Mayo";
break;
case 6:
$mes="Junio";
break;
case 7:
$mes="Julio";
break;
case 8:
$mes="Agosto";
break;
case 9:
$mes="Septiembre";
break;
case 10:
$mes="Octubre";
break;
case 11:
$mes="Noviembre";
break;
case 12:
$mes="Diciembre";
break;
}
$datetime = "$quedia, $dia de $mes del $ano ($hora:$min:$segs)";
return($datetime);
}


Acabado esto y usando una de estas tres maneras (segun sea nuestro caso) aun pueden quedar fechas en ingles sin traducir, por ejemplo en el encabezado de pagina (culpa del theme que usamos, prueba a editarlo) en administración (al crear,editar o aprobar una noticia) y en los modulos de descargas, enlaces y otros en los que haya que cambiar alguna llamada.




Diferencias horarias en con el servidor

Si tu página está alojada en un servidor extranjero, te puede ocasionar una diferencia horaria considerable, para ello nos fijaremos en la línea del código anterior marcada en rojo

$hora=$datetime[4]+0;

Y la sustituiremos por este otro:

$hora=$datetime[4]+X;
if ( $hora < 0 ) $hora = $hora + 24;
if ( $hora > 24) $hora = $hora - 24;
if ( $hora == 24) $hora = 0;

Donde X puede ser un valor positivo o negativo +2 ó -2 (por ejemplo) dependiendo de la diferencia de horas que haya con tu servidor web.









Administradores con servidor virtuales o de acceso permitido


Para aquellos que dispongais de servidores propios en los que podais acceder a todas las opciones del mismo, debeis configurar buestra hora GTM correctamente, con la del meridiano que os corresponda, y con realizar el 1º cambio de código no tendreis que introducir el del "desfase" horario.

Lo de instalar la función SetLocale en nuestro servidor no estoy seguro como debe de ser, ya que las nuevas versiones del PHP deberian de traerlo de "serie" y parece no funcionar muy bien.

¡Hay módulos que siguen con la fecha en inglés! ¿Qué hago?

Bien, si os ocurre esto, no os preocupeis, el error mas común es que en las llamadas a este módulo, que os provoca problemas, esté la llamada $locale en un global {...

Lo único que teneis que hacer es sustituir esa variable por la varible $datetime asi ya hará referencia a nuestra modificación y no habrá mayor problema.
Autor: desarrollonuke.org
Publicado el: 23 de Septiembre del 2006
 

Solo pueden comentar usuarios registrados. ¡Regístrate Gratis! ó bien... Accede con tu cuenta
COMENTARIOS (0)
No existe ningún comentario.
¿Quieres ser el primero en comentar?
Solo pueden comentar usuarios registrados. ¡Regístrate Gratis! ó bien... Accede con tu cuenta


manualesdeayuda.com   SiteMap   Contacto   Enlaces [2006-2008] Diseño y Programación: alextomas.com
WWW amigas: Trucos | Manuales Gratis | Juegos Flash | Minijuegos de carros | Second Life Scripts | Triatlón | Fondos de pantalla