Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: mokoMonster en 21 Diciembre 2011, 22:51 pm



Título: Duda con POO y soporte de idiomas
Publicado por: mokoMonster en 21 Diciembre 2011, 22:51 pm
Hola!

Pues les explico..

Al entrar a la pagina el usuario selecciona el idioma en el que desea ver la pagina, segun esta seleccion se establece la sesion $_SESSION['LANG_SELECTED'], y dependiendo del el contenido de lang_selected se incluye el archivo que contiene las variables con sus definiciones en el idioma seleccionado, por ejemplo:

if($_SESSION['LANG_SELECTED'] = 'es'){
include_once('langes.php');
}elseif($_SESSION['LANG_SELECTED'] = 'en'){
include_once('langen.php');
}...

y asi sucesivamente, ahora, por supuesto que en cada uno de estos archivos tengo los mensajes de error que me pueden arrojar ciertas acciones como una mala insercion de datos, para esto (suponiendo que tenemos español seleccionado) tenemos la variable $error01 = 'Esto es el error 01';..

Hasta aqui todo esta bien, el problema esta al usar la variable desde dentro de una clase, por ejemplo:

class opinion{
var $opinion;
public function doOpinion($var1){
$this->opinion = $var1;
$sql = 'INSERT INTO opinion (opinion) values ("'.$this->opinion.'")';
$query = mysql_query($sql);
if(!$query){
echo $error01;
}else{
echo $exitoso;
}
}

El problema es que ni $error01 ni $exitoso tienen valor dentro de la clase, si pongo las mismas variables fuera de la clase las imprime sin problema.
Haciendo pruebas note que puedo incluir los mensajes cuando instancia la clase:

$noOpinion = new Opinion;
$noOpinion = doOpinion('opinion',$error01,$exitoso);

y dentro de la clase cambiar
doOpinion($var1) por doOpinion($var1,$var2,$var3)

El problema es que cuando tengo clases muy extensas esto representa una perdida de tiempo y debe de haber una forma de hacerlo que sea mas facil.

OJO: Previamente en el header tengo un script que llama primero al script que establece el idioma, y en seguida otro script que incluye todas las clases.

Espero me puedan dar una idea y de antemano muchas gracias.

Saludos.