Foros del Web » Programando para Internet » PHP »

Como simplificar un codigo ?

Estas en el tema de Como simplificar un codigo ? en el foro de PHP en Foros del Web. Encontre este codigo que la funcion es que si la noticia pertenece a la categoria Argentina aparesca una bandera referente a esa categoria: Código: <?php ...
  #1 (permalink)  
Antiguo 09/11/2011, 02:53
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Pregunta Como simplificar un codigo ?

Encontre este codigo que la funcion es que si la noticia pertenece a la categoria Argentina aparesca una bandera referente a esa categoria:

Código:
<?php if(is_category('Argentina')) { ?>
<img src="http://rutadelaimagen.com/banderaargentina.png" tag="Argentina" border="0">
<?php }?>
Quiero hacer lo mismo con 20 paises, osea 20 categorias, asi por ej. si la noticia pertenece a la categoria 'brasil' apresca la bandera de brasil y no quiero repetir 20 veces esas 3 lineas.

Hay alguna manera de de incluir las demas categorias en este codigo ? con un array o no se, yo no entiendo mucho de php
  #2 (permalink)  
Antiguo 09/11/2011, 03:46
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Como simplificar un codigo ?

Puedes crear un array y luego con un foreach generar el código html. Por ejemplo así:
Código PHP:
Ver original
  1. $paises = array ('españa' => 'www.rutadelaimagen/espanha.jpg', 'eeuu' => 'www.rutadelaimagen/eeuu.jpg');
  2. foreach ($paises as $pais => $imagen){
  3. echo 'if(is_category('.($pais).')) {'. '<br />';
  4. echo '<img src="http://'.$imagen. '}'. '" tag="'. $pais. '" border="0"> }'. '<br />';
  5. }

Última edición por Arkaitz; 09/11/2011 a las 05:40
  #3 (permalink)  
Antiguo 10/11/2011, 03:03
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Respuesta: Como simplificar un codigo ?

con el codigo que me pasaste aparece esto donde iria la imagen:

if(is_category(españa)) {
}
if(is_category(eeuu)) {
}

Probe con este codigo que toque yo pero directamente no aparece nada
Código PHP:
Ver original
  1. <?php
  2. $paises = array ('francia' => 'fr.gif', 'estados-unidos' => 'eu.gif');
  3. foreach ($paises as $pais => $imagen);
  4. ?>
  5.  
  6. <?php if (is_category('.$pais.')) { echo 'asdasd <img src="http://direccion.com/flags/'.$imagen. '" width="18" height="12" alt="" class="iconpais">'; } ?>

Última edición por demeNcys; 10/11/2011 a las 03:56
  #4 (permalink)  
Antiguo 10/11/2011, 15:17
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Pregunta Problema con codigo PHP

Necesito un codigo para que si la entrada pertenece a cierta categoria aparesca una imagen en wordpress.

Me pasaron este codigo :

Código PHP:
Ver original
  1. <?php if (in_category( 'EEUU' )) { ?>
  2. <img src="ruta/bandera-EEUU.jpg" width="22" height="22" />
  3. <?php } elseif (in_category('Honduras')) { ?>
  4. <img src="ruta/bandera-EEUU.jpg" width="22" height="22" />
  5. <?php } elseif .... ?>


-- Pedi simplificarlo paran no tener que escribir 40 lineas en cada loop de entrada (ya que son mas de 40 categorías.


me pasaron este codigo :

Código PHP:
Ver original
  1. $paises = array ('españa' => 'www.rutadelaimagen/espanha.jpg', 'eeuu' => 'www.rutadelaimagen/eeuu.jpg');
  2. foreach ($paises as $pais => $imagen){
  3. echo 'if(is_category('.($pais).')) {'. '<br />';
  4. echo '<img src="http://'.$imagen. '}'. '" tag="'. $pais. '" border="0"> }'. '<br />';
  5. }

pero aparece esto:

"if(is_category(españa)) {
}
if(is_category(eeuu)) {
}"


-- Intente modificarlo con mis propias manos escribiendo esto :

Código PHP:
Ver original
  1. <?php
  2. $paises = array ('francia' => 'fr.gif', 'paris' => 'eu.gif');
  3. foreach ($paises as $pais => $imagen);
  4. ?>
  5.  
  6. <?php if (in_category( '$pais' )) {
  7. echo '<img src="http://ruta.com.ar/images/flags/'.$imagen. '" width="22" height="22" class="iconpais" />';
  8.      } else {
  9. echo 'no anda';
  10. } ?>

pero no funciona. Aparece 'no anda'

Alguna solución? Por ahí los códigos que escribí antes están mal escritos y por eso no funcionan pero yo no entiendo mucho de php.

pd: me fije que no sea un problema de estar mal escritas las categorias de wordpress o algo de eso y esta todo perfecto, osea el problema es en el codigo.
  #5 (permalink)  
Antiguo 10/11/2011, 15:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como simplificar un codigo ?

Tal como te lo ponen solo es cuestión que pongas el in_category adentro del foreach:
Código PHP:
Ver original
  1. $paises = array(...);
  2. foreach ($paises as $pais => $imagen) {
  3.         if (in_category($pais)) {
  4.                   echo $imagen;
  5.         }
  6. }

Saludos.
  #6 (permalink)  
Antiguo 10/11/2011, 18:06
Avatar de demeNcys  
Fecha de Ingreso: junio-2009
Ubicación: Buenos Aires
Mensajes: 147
Antigüedad: 15 años, 5 meses
Puntos: 9
Respuesta: Como simplificar un codigo ?

Muchas gracias !!!
  #7 (permalink)  
Antiguo 10/11/2011, 23:52
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Como simplificar un codigo ?

de hecho, no creo que haga falta el foreach, si tienes el array de esta forma:
$paises = array ('españa' => 'www.rutadelaimagen/espanha.jpg', ........

puedes directamente hacer:
Código PHP:
Ver original
  1. if(isset($paises[$pais]))
  2.     echo "<img src=\"$paises[$pais]\">";
  3. else
  4.      echo "<img src=\"sinbandera.jpg\">";
  #8 (permalink)  
Antiguo 11/11/2011, 19:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como simplificar un codigo ?

Lo que pasa es que creo el problema viene que debe de usar in_category...

Etiquetas: simplificar
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 17:00.