Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/11/2003, 02:14
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Veamos, si ese es el codigo a "requerir", veo que usas la variable $html. Y esa variable no esta definida dentro de la funcion. Ten en cuenta que el require() equivale a copiar el codigo donde pones el require(). Y el ambito (http://www.php.net/manual/en/languag...bles.scope.php) de las variables es el mismo. asi que la solucion seria pasar esa variable como parametro:
Código PHP:
function FUNC_idiomaSelector($selectIdioma$html) { 
Y al llamar pasarle el valor. Lo que no se ahora es que como es un objeto, en lugar de pasar una copia, tendrias que pasar una referencia (http://www.php.net/manual/en/language.references.php). Para pasar por referencia (http://www.php.net/manual/en/languag...ences.pass.php) :
Código PHP:
function FUNC_idiomaSelector($selectIdioma, &$html) { 
Aun asi creo que seria mejor orientar de otra forma el "multilinguismo". En lugar de almacenar en el require() las instrucciones que crean la template, yo alamcenaria un array asociativo, cuyas claves serian los nombres de las variables del template, y los valores los textos en el idioma correspondiente:
Código PHP:
$idioma['langText1001']="Hemos recibido ";
$idioma['langText1002']="Estadisticas y Contadores v.1.0";
$idioma['langText1003']=" Pulsaciones desde Octubre 2003";
// y asi con el resto 
Luego la funcion te quedaria:
Código PHP:
function FUNC_idiomaSelector($selectIdioma) {

    switch (
$selectIdioma){

    case 
'1':
    require(
"functions/lang/es/func.lang.theme.inc.php");
    break;

    case 
'2':

    break;

    case 
'3':

    break;

    case 
'4':

    break;

    case 
'5':

    break;

    }

return 
$idioma;

}

$idioma=FUNC_idiomaSelector(1);

// y puedes crear la template con

$html->asignar('langText1001',$idioma['langText1001']);
$html->asignar('langText1002',$idioma['langText1002']);
$html->asignar('langText1003',$idioma['langText1003']); 
Asi si cambias la template, solo debes cambiar las llamadas a $html->asignar, que solo esta en un fichero.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.