Foros del Web » Programando para Internet » PHP »

No funcan los Requieres dentro de funcions,,, o no me sale...

Estas en el tema de No funcan los Requieres dentro de funcions,,, o no me sale... en el foro de PHP en Foros del Web. los requires o includes no funcionan dentro de functions???? Código PHP: function  FUNC_idiomaSelector ( $selectIdioma ) {     switch ( $selectIdioma ){     case  '1' :     require( "functions/lang/es/func.lang.theme.inc.php" ); ...
  #1 (permalink)  
Antiguo 03/11/2003, 17:53
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
No funcan los Requieres dentro de funcions,,, o no me sale...

los requires o includes no funcionan dentro de functions????

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;

    }

}


    
FUNC_idiomaSelector(1); 
me peta el code cuando la ejecuto, si quito el 1, para que el case no rularlo, no da error, pero si le añado 1 , FUNC_idiomaSelector(1).... booom
__________________
3w.valenciadjs.com
3w.laislatv.com
  #2 (permalink)  
Antiguo 03/11/2003, 18:59
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
Cita:
me peta el code cuando la ejecuto, si quito el 1, para que el case no rularlo, no da error, pero si le añado 1 , FUNC_idiomaSelector(1).... booom
no entendi nada de nada jajajaja

pero segun creo lo que te entendi
puede que sea que el archivo que pretendes cargar segun el servidor no lo encuntre aunque tu estes seguro que esta en la carpeta donde hace referencia
a mi me pasaba esto cuando la carpeta donde tenia el archivo tenia alguna letra en mayuscula

te recomiendo que llames a ese archivo donde mismo esta el codigo para saber si es problema de ruta

yo probe el codigo dejando el archivo en la ruta donde cree el script y no me arrojo ningun error

consejo pon el error que te arroja para ayudarte mejor

salu2
__________________
http://www.manuales.astalaweb.com/Mprogramación.htm

diferentes manuales sobre programacion para descargar
  #3 (permalink)  
Antiguo 03/11/2003, 19:39
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
ya, el problema que no lo he comentado esq cargo variables mediante noktemplate, y demomento se me resiste, juas, juas, juas, voy a ver si leo algo mas y veo algo para solucionarlo... aqui dejo lo que requiero

Código PHP:

//grafix tpl full
$html->asignar('langText1001',"Hemos recibido ");
$html->asignar('langText1002',"Estadisticas y Contadores v.1.0");
$html->asignar('langText1003'," Pulsaciones desde Octubre 2003");
$html->asignar('langText1004',"ver todos los referers");
$html->asignar('langText1005',"Navegadores");
$html->asignar('langText1006',"Sistemas Operativos");
$html->asignar('langText1007',"Resolucion Pantalla");
$html->asignar('langText1008',"Idioma Navegador");
$html->asignar('langText1009',"Estadísticas Varias");
$html->asignar('langText1010',"Usuarios Diferentes");
$html->asignar('langText1011',"Almas Online Ahora");
$html->asignar('langText1012',"Todas Pulsaciones");
$html->asignar('langText1013',"Tus Pulsaciones");
$html->asignar('langText1014',"Noticias Publicadas");
$html->asignar('langText1015',"Comentarios Enviados");
$html->asignar('langText1016',"Enlaces Menus Blokes");
$html->asignar('langText1017',"Download Seccion");
$html->asignar('langText1018',"Categorías en Enlaces");
$html->asignar('langText1019',"Blokes Extras ND");
$html->asignar('langText1020',"Versión Portal DdLive");
$html->asignar('langText1021',"Res.Pantalla ");
$html->asignar('langText1022',"Idioma ");
// 
eso no le gusta dentro de la funcion, tendre que mejorarla para que las variables salgan de ella y funcionen, el problema esq dentro de la funcion no incluyo el nok y no se entera q es cada linea...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #4 (permalink)  
Antiguo 04/11/2003, 02:14
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:18.