Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Algo falla en esta clase y nose porque..

Estas en el tema de Algo falla en esta clase y nose porque.. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola Wenas, Pues esto del POO mesta dando jakeka xD,estoy aciendo un tutorial y junto a el te adjuntan una carpeta kon un ejemplo praktiko ...
  #1 (permalink)  
Antiguo 22/08/2006, 15:48
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Algo falla en esta clase y nose porque..

Hola Wenas,

Pues esto del POO mesta dando jakeka xD,estoy aciendo un tutorial y junto a el te adjuntan una carpeta kon un ejemplo praktiko d euna web kon POO,todo funciona bien menos el menu.

En teoria el menu tiene k aparecer una imagen al lado del nombre de apartado,si estas en la pagina del apartado aparece side-logo.gif k es una imagen kon una flecha acia la derecha y el nombre de apartado aparece sin link,los demas apartados deven aparecer kon s-logo.gif k es una flecha acia arriba y kon el nombre linkeado a su pagina.

Yo no e tokado nada,tal y komo venian los archivos los e provado y no funcionan y se supone k deve funcionar..aqui os dejo la pagina de la clase..para acer k aparezka esta pagina en las otras esta kon include()..
Código PHP:
<?
class Pagina
{

  
// atributos de la clase Pagina
  
var $contenido;
  var 
$titulo "Multi Librería Online";
  var 
$palabrasClave "Librería Online, Aquí pondremos las palabras clave,
                   Podemos personalizarlas para cada página"
;
  var 
$botones = array( "Inicio"     => "inicio.php",
                        
"Contacto"  => "contacto.php",
                        
"Servicios" => "servicios.php",
                        
"Mapa Sitio" => "mapa.php"
                      
);
    
//constructor
    
function Pagina()
    {
    
    echo  
$GLOBALS["SCRIPT_NAME"] ;
    }                  

  
// operaciones de la clase Pagina

  
function SetContenidos($nuevosContenidos)
  {
    
$this->contenidos $nuevosContenidos;
  }

  function 
SetTitulo($nuevoTitulo)
  {
    
$this->titulo $nuevoTitulo;
  }

  function 
SetPalabrasClave($nuevasPalabrasClave)
  {
    
$this->palabrasClave $nuevasPalabrasClave;
  }

  function 
SetBotones($nuevosBotones)
  {
    
$this->botones $nuevosBotones;
  }

  function 
Mostrar()
  {
    echo 
"<html>\n<head>\n";
    
$this -> MostrarTitulo();
    
$this -> MostrarPalabrasClave();
    
$this -> MostrarEstilos();
    echo 
"</head>\n<body>\n";
    
$this -> MostrarCabecera();
    
$this -> MostrarMenu($this->botones);
    echo 
$this->contenidos;
    
$this -> MostrarFooter();
    echo 
"</body>\n</html>\n";
  }

  function 
MostrarTitulo()
  {
    echo 
"<titulo> $this->titulo </titulo>";
  }

  function 
MostrarPalabrasClave()
  {
    echo 
"<META name=\"palabrasClave\" contenidos=\"$this->palabrasClave\">";
  }

  function 
MostrarEstilos()
  {
?>
  <style>
  body {
        background-color: #000000;
}
    h1 {color:white; font-size:12pt; text-align:center;
        font-family:arial,sans-serif}
    .menu {color:#FFCD6A; font-size:10pt; text-align:center;
           font-family:arial,sans-serif; font-weight:bold}
    td {background:black}
    p {color:white; font-size:12pt; text-align:justify;
       font-family:arial,sans-serif}
    p.foot {color:white; font-size:9pt; text-align:center;
            font-family:arial,sans-serif; font-weight:bold}
    a:link,a:visited,a:active {color:white}
  </style>
<?
  
}

  function 
MostrarCabecera()
  {
?>
<table width="100%"  border="0" cellspacing="0" cellpadding="1">
  <tr>
    <th scope="col"><div align="center">
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="780" height="237">
          <param name="movie" value="0042.swf">
          <param name="quality" value="high">
          <embed src="0042.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="780" height="237"></embed>
      </object>
    </div></th>
  </tr>
</table>
<?
  
}

  function 
MostrarMenu($botones)
  {
    echo 
"<table width = \"100%\" bgcolor = white cellpadding = 4 cellspacing = 4>\n";
    echo 
"  <tr>\n";

    
//calcular tamaño botones
    
$width 100/count($botones);

    while (list(
$nombre$url) = each($botones))
    {
      
$this -> MostrarBoton($width$nombre$url, !$this->IsURLCurrentPage($url));
    }
    echo 
"  </tr>\n";
    echo 
"</table>\n";
  }

  function 
IsURLCurrentPage($url)
  {
    if(
strpos$GLOBALS["SCRIPT_NAME"], $url )==false)
    {
      return 
false;
    }
    else
    {
      return 
true;
    }
  }

  function 
MostrarBoton($width$nombre$url$activo true)
  {
    if (
$activo)
    {
     echo 
"<td width = \"$width%\">
            <a href = \"$url\">
            <img src = \"s-logo.gif\" alt = \"$nombre\" border = 0></a>
            <a href = \"$url\"><span class=menu>$nombre</span></a></td>"
;
    }
    else
    {
       echo 
"<td width = \"$width%\">
            <img src = \"side-logo.gif\"></img>
            <span class=menu>$nombre</span></td>"
;
    }
  }

  function 
MostrarFooter()
  {
?>
   <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<!-- ImageReady Slices (footer.psd) -->
<table id="Tabla_01" width="100%" height="51" border="0" cellpadding="0" cellspacing="0">
        <tr>
                <td>
                        <img src="Images/12.jpg" width="234" height="22" alt=""></td>
                <td>
                        <img src="Images/13.jpg" width="65" height="22" alt=""></td>
                <td>
                        <img src="Images/14.jpg" width="54" height="22" alt=""></td>
                <td>
                        <img src="Images/15.jpg" width="58" height="22" alt=""></td>
                <td>
                        <img src="Images/16.jpg" width="64" height="22" alt=""></td>
                <td>
                        <img src="Images/17.jpg" width="67" height="22" alt=""></td>
                <td>
                        <img src="Images/18.jpg" width="238" height="22" alt=""></td>
        </tr>
        <tr>
                <td colspan="7">
                        <img src="Images/19.jpg" width="100%" height="29" alt=""></td>
        </tr>
</table>

<!-- End ImageReady Slices -->
</body>
<?
  
}
}
?>
Alguien sabe k okurre??? utilizo php4 y tengo el register_globals en off,k yo sepa el php.ini se pone en la carpeta de windows y en apache/php.. Aver si alguien sabe pk me duele la kabeza de pensar k okurre aki..xD un saludo y gracias!
  #2 (permalink)  
Antiguo 22/08/2006, 21:09
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Si escribís en castellano puede ser que entienda lo que querés decir y tratar de darte una mano, pero así, es perder tiempo adivinando (no estás colaborando nada para que te puedan ayudar).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 23/08/2006, 09:36
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Yo kreia k me avia explikado bien,intentare aora explikarme mejor.

Esto calcula el tamaño del boton (celda),por si hay mas botones k añadamos..se agan mas pekeños los botones,luego un loop while k lista la array $botones,la cual es asociativa y kontiene nombre y url de boton,
Código PHP:
function MostrarMenu($botones)
  {
    echo 
"<table width = \"100%\" bgcolor = white cellpadding = 4 cellspacing = 4>\n";
    echo 
"  <tr>\n";

    
//calcular tamaño botones
    
$width 100/count($botones);

    while (list(
$nombre$url) = each($botones))
    {
      
$this -> MostrarBoton($width$nombre$url, !$this->IsURLCurrentPage($url));
    }
    echo 
"  </tr>\n";
    echo 
"</table>\n";
  } 

Esto sigiente devuelve en k pagina se enkuentra:
Código PHP:
function IsURLCurrentPage($url)
  {
    if(
strpos$GLOBALS["SCRIPT_NAME"], $url )==false)
    {
      return 
false;
    }
    else
    {
      return 
true;
    }
  } 
Lo que falla en si es esto,o eso kreo,lo que hace es si es true muestra la imegn s-logo.gif,si es false muestra la imagen side-logo.gif,ademas muestra el nombre y su url,tal y komo esta me muestra todos los botones kon la imagen s-logo.gif y no me muestra side-logo.gif al lado del nombre de la pagina donde estoy,pero si le pongo if (!$activo),me muestra side-logo.gif al lado de todos los nombres de boton y el kaso esk muestre solo un side-logo.gif,lo deveria mostrar en la pagina k te enkuentras,pero no lo hace:
Código PHP:
function MostrarBoton($width$nombre$url$activo true)
  {
    if (
$activo)
    {
     echo 
"<td width = \"$width%\">
            <a href = \"$url\">
            <img src = \"s-logo.gif\" alt = \"$nombre\" border = 0></a>
            <a href = \"$url\"><span class=menu>$nombre</span></a></td>"
;
    }
    else
    {
       echo 
"<td width = \"$width%\">
            <img src = \"side-logo.gif\"></img>
            <span class=menu>$nombre</span></td>"
;
    }
  } 

Decir k akabo de komenzar kon las klases y si no me expreso kon klaridad es pk aun no me aklaro muxo..si falta algo para k me podais ayudar preguntarme porfavor..un saludo y muchas gracias.

Última edición por limboings; 23/08/2006 a las 09:46
  #4 (permalink)  
Antiguo 23/08/2006, 11:47
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
limboings, enriqueplace se refiere a tu manera de escribir. No puedes usar las letras que corresponden a cada palabra? "k okurre?" "aora explikarme" "komenzar kon las klases"... esos son solo algunos ejemplos. El escribir mal dificultas la lectura a las otras personas, yo solo "aguante" leer la mitad del post. Yo no pido que escribas con tildes y todo, solo que escribas como debe ser, y si tienes un problema con tu teclado (como yo, los tildes no me funcionan, ´e ´a ´i) avisa antes para que estemos avisados.

Saludos.
  #5 (permalink)  
Antiguo 23/08/2006, 12:30
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Eso, eso, ... tal vez alguien se le ocurrió cambiar de lugar algunas teclas y nosotros estamos sufriendo los resultados. Fuera de broma, estoy de acuerdo con lo que dice Darío... leí hasta la primera parte, y cuando me empezaron a reventar las venas de los ojos, tuve que parar (se me nubló la vista).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #6 (permalink)  
Antiguo 23/08/2006, 16:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Aunque esta dificil decifrar tu estilo de escritura, tu error creo yo, es que, usas $GLOBALS['SCRIPT_NAME'], es mejor y directo, si usas $_SERVER['SCRIPT_NAME'], $_SERVER['REQUEST_URI'], o anexas :)
  #7 (permalink)  
Antiguo 23/08/2006, 17:03
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Cuando os diga lo que os voy a decir igual me matais pero bueno..esta tarde arto ya de probar cosas(antes de leer estos 3 ultimos posts),me decidido a desinstalar TODO y volver a instalar todo..con el resultado de que no tenia activa extension=php_gd2.dll,segun he leido para trabajar con imagenes,aun no lo he probado pero aora mismo lo probare,pero seguro que era eso.

Bueno,yo pensaba que deciais mi forma de expresarme jeje que a veces me lo dicen,lo cual eso es incorregible,pero si es la forma de escribir,es corregible,como ya habreis visto y leido..he modificado mi forma de escribir xD se nota?.
Decir tambien que me he reido con los 2 posts de mi forma de escribir,no por como os costaba leer,sino me reia de mi mismo xD.

Respecto a lo de la respuesta a la solucion,probare ahora que tengo activa extension=php_gd2.dll,si no funciona probare lo que me has dicho Gator.

PD: Espero que esta vez no hayais dejado los ojos en el intento.
  #8 (permalink)  
Antiguo 24/08/2006, 10:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
La extension php_gd2.dll sirve para MANIPULAR imagenes, el codigo que haz posteado arriba no tiene nada que ver con manipulacion de imagenes.

Creo deberias de intentar mi respuesta porque creo es problema de donde buscas tu URI.
  #9 (permalink)  
Antiguo 24/08/2006, 14:41
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
mmm pues lo he probado y me funciona ahora..sin poner lo que me dijiste..

Eso es logico?
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 10:22.