Foros del Web » Programando para Internet » PHP »

Insertar "define" en codigo PHP

Estas en el tema de Insertar "define" en codigo PHP en el foro de PHP en Foros del Web. Hola, no sé si el título es el más apropiado, pero me explico mejor aquí. Tenía una web en HTML/CSS y alguna página en php, ...
  #1 (permalink)  
Antiguo 12/11/2008, 15:04
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Insertar "define" en codigo PHP

Hola, no sé si el título es el más apropiado, pero me explico mejor aquí.
Tenía una web en HTML/CSS y alguna página en php, como la de contactar para el "módulo" de contacto.

Pero luego me encargaron que la web estuviese en gallego y castellano, con lo cual se me ocurrió crear dos archivos php, uno galego.php y otro castellano.php en donde guardé todos los textos de la web de la siguiente forma(sólo un ejemplo):
Código PHP:
# Index
DEFINE("_index_titulo_h3_1","Especialistas en Carpintería de Aluminio y PVC.");
DEFINE("_index_titulo_h3_2","Calidad");
# prodPVC                                       #
DEFINE("_prodPVC_titulo","PVC || Aluminios Dumbría  -  Carpintería de Aluminio y PVC");
DEFINE("_prodPVC_titulo_h3_1","PVC"); 
Y los archivos html los cambié a PHP y en el sitio donde tiene que ir cada "define" lo puse así:
Código PHP:
<div class="content">
     <h3><?php echo _index_titulo_h3_1?></h3>
     <p>&nbsp;</p>
     <p><?php echo _index_p1?></p>
     <p><?php echo _index_p2?></p>
     <h3><?php echo _index_titulo_h3_2?></h3>
  <p>&nbsp; </p>
  <p><?php echo _index_p3?></p>
  <p>&nbsp;</p>
  <p></p>
     <p>&nbsp;</p>
   </div>
No sé si es la forma "más correcta" o "más eficiente" de hacer eso que me encargaron, pero fue lo primero que se me ocurrió y como funciona...jejeje.

Pero tengo un problema, y es en el que solicito vuestra ayuda.
En la página de contactar.php que os enlacé arriba, no soy capaz de hacer que me ponga el texto leído de los archivos galego.php y castellano.php
Es decir, me inserta el texto en toda la página excepto en lo que es el formulario de contacto, donde no soy capaz.
Ahora mismo ahí está sin leer del archivo, hasta que lo modifique y sea capaz de que funcione correctamente.
El formulario de contacto está en PHP y es ahí donde no soy capaz de insertar el texto que está en los archivos de idioma.
Os dejo aquí trozos de código del formulario decontacto.
Quiero poner por ejemplo en Nombre y Apellidos, que me lea el DEFINE _contactar_NomApe
y para el botón envíar que me lea del DEFINE _contactar_BtnEnv
Código PHP:
<?php
            
echo <form action="?" method="post">
     <
TABLE border=0>
      <
TR>
       <
TD>Nombre y Apellidos:</TD>
       <
TD><input type="text" name="nombre" size="50" maxlength="80">
         <
span class="Estilo2">*</span></TD>
      </
TR>
      <
TR>
       <
TD>Empresa:</TD>
       <
TD><Input size=30 name=empresa></TD>
      </
TR>
      <
TR>
       <
TD>Email</TD>
       <
TD><input type="text" name="email" size="50" maxlength="60">
         <
span class="Estilo2">*</span></TD>
      </
TR>
      <
TR>
       <
TD>Tel&eacute;fono/s:</TD>
       <
TD><input type="text" name="tlf" size="50" maxlength="80">
         <
span class="Estilo2">*</span></TD>
      </
TR>
      <
TR>
     <
INPUT type=submit value=" Enviar mensaje " name="enviar"  
         
?>
Si me podeis hechar una mano, os lo agradezco muchísimo.
Un Saludo y gracias!
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas

Última edición por Baldur; 13/11/2008 a las 18:14
  #2 (permalink)  
Antiguo 12/11/2008, 15:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 102
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Insertar "define" en codigo PHP

mm usa echo con comillas simple, ya que tienes todas con doble y llama los define '._contact_NomApw.'
  #3 (permalink)  
Antiguo 12/11/2008, 16:54
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Insertar "define" en codigo PHP

los echos están sin comillas, no tienen comillas dobles....
A mi lo único que no me funciona es cuando pongo por ejemplo, ya que en vez de cargar lo del DEFINE pone directamente en el botón _contactar_btnEnv...
<INPUT type=submit value=_contactar_btnEnvname="enviar"
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
  #4 (permalink)  
Antiguo 12/11/2008, 20:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Insertar "define" en codigo PHP

Mmmm
Código php:
Ver original
  1. <input type="submit" value="<?php echo _contactar_btnEnv; ?>" name="enviar" />

Saludos.
  #5 (permalink)  
Antiguo 12/11/2008, 20:37
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Insertar "define" en codigo PHP

Porque en lugar de utilizar "defines" mejor no utilizas 2 archivos igual a como lo estas haciendo.. pero utilizando arreglos.. por ej:

lang_es.php
Código PHP:
<?php
$idioma
['lang']['titulo'] = "Pagina Titulo";
$idioma['lang']['encabezado'] = "Encabezado 1";
$idioma['lang']['etiqueta'] = "Etiqueta 1";
?>
lang_ga.php
Código PHP:
<?php
$idioma
['lang']['titulo'] = "Paxina Titulo";
$idioma['lang']['encabezado'] = "Encabezado 1";
$idioma['lang']['etiqueta'] = "Etiqueta 1";
?>
y la forma de uso es similar a llamar una variable..

Código HTML:
<h2><?php echo $idioma['lang']['encabezado'] ?></h2>
<form name="" method="" action="">
    <label for="txtalgo"><?php echo $idioma['lang']['etiqueta'] ?></label>
    <input type="text" name="txtalgo" value="" />
</form> 
Y por omision siempre haces "include" uno de los archivos de lenguaje como default.. pero el usuario al cambiar mediante un combo o enlace al otro idioma refrescar la pagina y quizas con algun conficional cargar el lenguaje que se selecciono..

en mi humilde opinion.. muchos sitios hacen eso.. es mas facil..

Última edición por erlingfiallos; 12/11/2008 a las 20:47
  #6 (permalink)  
Antiguo 12/11/2008, 20:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar "define" en codigo PHP

estoy completamente de acuerdo con erlingfiallos

es una manera mas limpia y elegante que usar constantes... de veras!

suerte...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/11/2008, 04:24
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Insertar "define" en codigo PHP

Cita:
Iniciado por GatorV Ver Mensaje
Mmmm
Código php:
Ver original
  1. <input type="submit" value="<?php echo _contactar_btnEnv; ?>" name="enviar" />

Saludos.
Eso no se puede hacer. Como voy a hacer eso si el input ya está dentro de un <?php ?>
Y lo de usar variables.....bufff, volver a rehacer todo?? si lo tuviese que hacer a propósito si, pero es que ya está hecho y me da la risa reescribir todo el código...
Si puedo tener solución tal y como está, pues mucho mejor.

La identificación del idioma me la programé asÍ:
Código PHP:
<?php
session_start
(); 
if (isset(
$_GET['leng']))
{
    
$idioma $_GET["leng"]; 

    if(
$idioma=="gal")
    {
        
$_SESSION['leng'] = "gal";
    }
    else
    {
        
$_SESSION['leng'] = "es";
    }        
}
else
{
    if (isset(
$_SESSION['leng'])) 
    {
        
$idioma=$_SESSION['leng'];    
    }    
    else
    {
        
$_SESSION['leng'] = "es";
        
$idioma=$_SESSION['leng'];    
    }
}
if(
$idioma=="gal"){
    include(
'idiomas/galego.php');
}else{
    include(
'idiomas/castellano.php');
}
?>
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
  #8 (permalink)  
Antiguo 13/11/2008, 07:55
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Insertar "define" en codigo PHP

vaya.. vaya..

Ya has perdido algo de tiempo intentando hacer que el sitio funcione con los defines.. que es la forma menos adecuada de manipular varios idiomas..

La solucion de utilizar arreglos es exactamente igual a como lo haces ahora.. pero digamos que la ventaja es que sera mucho mas facil utilizarl las variables..

Yo veo que es lo mismo.. que utilices una variable definida a que utilices una variable de arreglo.. no hay diferencia.. pero ya que has perdido tiempo tratando de hacerlo con defines.. mejor ya hubieras probado haciendolo como te recomendamos..
  #9 (permalink)  
Antiguo 13/11/2008, 08:18
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Insertar "define" en codigo PHP

todavía no probé nada, eso lo respondí en clase cuando lo leí.
Lo probé antes de abrir este post.
Lo que pasa es que no tengo tiempo para volver a reescribir todo de esa forma.
Posiblemente cuando tenga que hacer otra vez una web así, pues lo haga como dices.
Esta forma se me ocurrió al mirar como estaban hechos unos compontentes de Joomla.

Saludos!
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
  #10 (permalink)  
Antiguo 13/11/2008, 09:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Insertar "define" en codigo PHP

Pues si esta dentro de un echo es lo mismo:
Código php:
Ver original
  1. echo "<input type=\"submit\" value=\"" . _contactar_btnEnv . "\" name=\"enviar\" />";

Saludos.
  #11 (permalink)  
Antiguo 13/11/2008, 18:14
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: Insertar "define" en codigo PHP

Ya está solucionado.
Muchas gracias por vuestra ayuda y un Saludo!
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
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 11:20.