Foros del Web » Programando para Internet » PHP »

Duda con funciones

Estas en el tema de Duda con funciones en el foro de PHP en Foros del Web. Hola tengo el siguiente script para hacer mi web modular: Código PHP:  $modulo = !isset( $modulo ) ?  0  :  $modulo ;   $modulo = $_GET [ ...
  #1 (permalink)  
Antiguo 06/11/2003, 21:09
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Duda con funciones

Hola tengo el siguiente script para hacer mi web modular:
Código PHP:
 $modulo= !isset($modulo) ? $modulo;
 
$modulo=$_GET['modulo'];
 switch (
$modulo) {
   case 
homepage:
       include(
"");
       break;
  case 
historia:
       include(
"historia.php");
       break;
  case 
objetivos:
       include(
"objetivos.php");
       break;
  case 
servicios:
       include(
"services.php");
       break;
  case 
eventos:
       include(
"eventos.php");
       break;
  case 
noticias:
       include(
"noticias.php");
       break;
  case 
ftpweb:
       include(
"ftpweb.php");
       break;
  case 
chat:
       include(
"chat.php");
       break;
  case 
webmail:
       include(
"webmail.php");
       break;
  case 
foro:
       include(
"foro.php");
       break;
  case 
guestbook:
       include(
"librovisitas/index.php");
       break;
  case 
directoriojovenclub:
       include(
"dirjovenclub.php");
       break;
  case 
directoriositiosdecuba:
       include(
"dirsitioscuba.php");
       break;
  case 
directorioelectronico:
       include(
"direlectronico.php");
       break;
  case 
acercadeautores:
       include(
"aboutaut.php");
       break;
  case 
acercadegranma:
       include(
"aboutgrm.php");
       break;
  case 
makehomepage:
       echo 
"<script language=\"JavaScript\"> 
       class=\"chlnk\" onclick=\"this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.granma.inf.cu/cultura/jclub/index.php');\"
 </script> "

       break;   
  case 
addfavorites:
       echo 
"<script language=\"JavaScript\"> 
                    javascript:window.external.AddFavorite        ('http://www.jovenclub.cu/grm/index.php','TinoGRM');
     </script> "
;    
       break;
  default:
       include(
"blank.php");
 }
     
       
   
$categoria= !isset($categoria) ? $categoria;
   
$categoria=$_GET['categoria'];
      switch (
$categoria) {
        case 
agencias:
          include(
"agencias.php");
          break;
        case 
ciencias:
          include(
"ciencias.php");
          break;
        case 
economianegocios:
          include(
"economianegocios.php");
          break;
        case 
cultura:
          include(
"cultura.php");
          break;
        case 
deportes:
          include(
"deportes.php");
          break;
        case 
eventos:
          include(
"eventosdir.php");
          break;
        case 
educacion:
          include(
"educacion.php");
          break;
        case 
comercioelectronico:
          include(
"comercioelectronico.php");
          break;   
        case 
gobierno:
          include(
"gobierno.php");
          break;
        case 
humanidades:
          include(
"humanidades.php");
          break;
        case 
informatica:
          include(
"informatica.php");
          break;
        case 
radiotv:
          include(
"radiotv.php");
          break;
        case 
internet:
          include(
"internet.php");
          break;
        case 
historia:
          include(
"historiadir.php");
          break;
        case 
turismo:
          include(
"turismo.php");
          break;
       case 
salud:
          include(
"salud.php");
          break;  
      case 
prensaplanadigital:
          include(
"prensaplanadigital.php");
          break;   
      default:
         include(
"blank.php");
 } 
Yo llamo mis paginas de la forma index.php?modulo=servicios y me sale correcto todo y si lo hago de esta otra forma index.php?categoria=radiotv tambien ahora lo que quiero es hacer que para poder llamar las categorias tenga que ser de esta manera index.php?modulo=directoriodesitios&categoria=radi otv pues las categorias van dentro del modulo de directorio de sitios.

Me hago enteneder?
Pense en hacer una funcion y pasarle como parametros el modulo y la categoria pero cuando digo esto
Código PHP:
 function open_page($modulo,$categoria){
  if (isset(
$modulo) && ($modulo=="directoriositios")){
   
aqui debe ir el codigo pero no se como mandar a abrir la pagina a la cual corresponde la cateforia que mando a abrir
}

Para explicarme un poco mejor para abir la categorra Radio y TV primero debia estar activado modulo y este deberia ser igual a directoriositios para entonces luego poder abir la categoria.

Otra cosita cuando llamo a index.php?modulo=makehomepage no me hace lo que le mando ¿por que?

Salu2
__________________
Ing. Reynier Pérez Mira

Última edición por Reynier; 06/11/2003 a las 21:12
  #2 (permalink)  
Antiguo 06/11/2003, 22:06
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Cita:
Otra cosita cuando llamo a index.php?modulo=makehomepage no me hace lo que le mando ¿por que?
Yo creo que sí hace lo que le mandas... lo que le estás mandando es a escribir ese código JavaScript, pero no a ejecutarlo. Además con onClick lo que haces es esperar que se haga click en el elemento(que por cierto, no existe).. para ejecutar el código... prueba a quitarle el onClick. Algo así:

"<script language=\"JavaScript\">
this.style.behavior='url(#default#homepage)';
this.setHomePage('http://www.granma.inf.cu/cultura/jclub/index.php');
</script>";

Saludos
  #3 (permalink)  
Antiguo 06/11/2003, 23:21
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Sip pero

No se de que evento OnClick me hablas pues no hay ninguno por ahi. Yo solo quiero hacer eso parte del modulo
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 07/11/2003, 07:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
OJO! .. con los case .. Si llamas a "cadenas" .. usa comillas, sino pueden ser interpretadas como contantes:

case "salud":

El código que deberias usar en tu función "open_page()" sería el de tu switch ($categoria) { tal cual lo tienes ya hecho .. Pero, con los "case" de las categorias que pertenezcan a esa categoria ..

Consejo:
Estructura tus modulos con sus categorias en un array (bidimensional) tipo:

$paginas['modulo1']['categoria1']="nose.php";
$paginas['modulo1']['categoria2']="bla/otra.php";

$paginas['modulo2']['categoriaN']="otra.php";

etc...

Así podrás hacer un include() sinple sin usar el montón de switch() pero, tomando y verificando que exista la categoría y tu módulo en el array $paginas ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 07/11/2003, 08:47
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Seria mas o menos asi

Cluster me imagino que lo que me quieras decir es que debo hacer el switch del tipo
Código PHP:
 switch ($modulo,$categoria){
   case 
"directoriositios","ciencias";
   include(
"ciencias.php");
   break;

o no.

Si no es asi me podrias explicar un poco mejor.
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 07/11/2003, 10:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No, .. Si lo quieres hacer con swith() .. Debes de "anidar" tus switch() case ...

Código PHP:
$categoria= !isset($categoria) ? $categoria;
   
$categoria=$_GET['categoria'];
      switch (
$categoria) {
        case 
agencias:           
            
// para el caso de una sola sub-categoria ...
           
if (isset($modulo) && ($modulo=="directoriositios")){
               include (
"directoriositios.php");
          } else {
              include(
"agencias.php");
          }
          break;
        case 
ciencias:

          
// para el caso de más categorias ... Esto es un switch() anidado
          
switch($modulo) {
               case 
"modulo1":
                 include (
"modulo1");
               break;
               case 
"modulo2":
                 include (
"modulo2");
               break;   
               default:
                  include(
"ciencias.php");

          break;
        case 
economianegocios:
          include(
"economianegocios.php");
          break; 
Si te lo quieres montar en una función .. OK, pero la técina es la misma .. Anidadmiento de switch() ..tantos como categorias -> sub-categoria -> rete-sub-categorias .. etc qu tengas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 07/11/2003 a las 10:42
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 21:25.