¿Enlazar un archivo.php en una misma página?

Iniciado por Clavo Oxidado, 5 Mayo 2010, 22:38 PM

0 Miembros y 1 Visitante están viendo este tema.

Clavo Oxidado

Hola a todos, quería saber como podría enlazar un "archivo.php" en una misma página.

Para detallar más información os pongo una parte del código.





//ESTO ES UN ARCHIVO EXTERNO CON EL NOMBRE 'funciones_pagina.php'


<?php
   function cabecera($tipo) {
      $titulo = 'PAGINA PRUEBA';
      switch ($tipo)
      {   
         case 'pagina_dos'  : $titulo.=' - Catalogo';
                    break;

   function cuerpo($tipo) {
      $body = '<body>';               
      switch ($tipo)
      {   
         case 'pagina_dos'  : $cont_cuerpo.=pagina_dos();
                 break;
      }
      return $body.$cont_cuerpo.error_muestra().'</body>';
      }
   
   function pagina_dos(){
        $contenido=bloque_banner().
         bloque_botonera().
         bloque_portada().
         bloque_pie();
       return $contenido;
   }
?>



//ESTO ES UN ARCHIVO EXTERNO CON EL NOMBRE 'funciones_pagina_bloque.php'


<?php
   function bloque_botonera(){
      
      $contenido='
      <div id="botonera">
      <h5></h5>
      <ul class=botonera_item>
         <li id="bienvenidos">
               <a class="botonera_item selected" href="index.php?tipo=pagina_dos">Bienvenidos</a>

      ;
      return $contenido;

   function bloque_pagina_dos(){
      $contenido="<div id='pagina_dos'>
            <h4>CATALOGO PRODUCTOS</h4>
               <div id='catalogo'>
                  BUENO, BONITO Y BARATO
               </div>
            </div>";
      ';
      return $contenido;   

?>



Bueno esto sería una parte del código, algo básico, bien, mas o menos con esa parte del código os explico también como tengo estructurado los bloques de la página:



Bueno es un boceto provisional que la idea es que cada enlace visitado al bloque 'menú' cargue el contenido en el bloque 'portada'. El contenido que tiene que cargar es un archivo.php externo.

¿Alguna solución?

Gracias y un Saludo
"Dame 10 Hackers y en media hora dominaré el mundo."


Clavo Oxidado

#2
OK, ya lo había solucionado con el include, gracias 4ng3r.

Ahora tengo un pequeño problema, como puedo aplicar un div al include. Lo he probado de varias formas pero no me aparece el contenido, os dejo una parte del código como lo tengo puesto:

   $contenido=function bloque_pagina_tres(){
      include("catalogo.php");                        
      return $contenido;   
   }

Como lo tengo me sale sin ningún problema, el problema está donde y como aplicar el div.

¿Alguna Solución?

Gracias y Un Saludo
"Dame 10 Hackers y en media hora dominaré el mundo."

MinusFour

No entiendo tu pregunta... que tiene que ver el div con ese código que pegaste?

Diabliyo

Cita de: Polanski en  7 Mayo 2010, 01:26 AM
OK, ya lo había solucionado con el include, gracias 4ng3r.

Ahora tengo un pequeño problema, como puedo aplicar un div al include. Lo he probado de varias formas pero no me aparece el contenido, os dejo una parte del código como lo tengo puesto:

   $contenido=function bloque_pagina_tres(){
      include("catalogo.php");                        
      return $contenido;   
   }

Como lo tengo me sale sin ningún problema, el problema está donde y como aplicar el div.

¿Alguna Solución?

Gracias y Un Saludo


Creo que tu pregunta va por el tipo de noticias ya que una noticia puede ser: texto solamente, texto con imagenes, imagenes (catalogo), descargas (lista), etc... (las que imagines).

Bueno, para resolver, debes brindar la posibilidad de que cuando se cree una noticia, que el usuario pueda seleccionar el tipo y forma de contenido, despues cuando se consulte la BDD de Noticias y verifiques la Celda (que hayas asignado) para determinar el tipo de noticia, es como se supone que aplicarias la capa.

Saludos

Clavo Oxidado

Cita de: MinusFour en  7 Mayo 2010, 02:42 AM
No entiendo tu pregunta... que tiene que ver el div con ese código que pegaste?

MinusFour, la idea de aplicar un div al include, es para poder aplicar los estilo a los datos que devuelve una BBDD a un determinado bloque de la página.

Cita de: Diabliyo en  7 Mayo 2010, 05:12 AM

Creo que tu pregunta va por el tipo de noticias ya que una noticia puede ser: texto solamente, texto con imagenes, imagenes (catalogo), descargas (lista), etc... (las que imagines).

Bueno, para resolver, debes brindar la posibilidad de que cuando se cree una noticia, que el usuario pueda seleccionar el tipo y forma de contenido, despues cuando se consulte la BDD de Noticias y verifiques la Celda (que hayas asignado) para determinar el tipo de noticia, es como se supone que aplicarias la capa.

Saludos

Nosé como hacerlo según como lo planteas, yo lo único que tengo en el include es un 'Catálogo de Productos', sin ningún tipo de compra/venta de comercialización, control de acceso para registrar nuevos usuarios ni nada por el estilo, solo devuelve un dato al bloque, aunque como dije me falta donde y como aplicarle un div al include para determinar los estilo y poder posicionar los datos que devuelve la BBDD.

Gracias y Un Saludo
"Dame 10 Hackers y en media hora dominaré el mundo."

‭‭‭‭BadStupidMonkey.

#6
Cita de: Polanski en  7 Mayo 2010, 01:26 AM
OK, ya lo había solucionado con el include, gracias 4ng3r.

Ahora tengo un pequeño problema, como puedo aplicar un div al include.
   $contenido=function bloque_pagina_tres(){
      include("catalogo.php");                        
      return $contenido;   
   }


Algo asi ?

Código (php) [Seleccionar]

$contenido=function bloque_pagina_tres(){
 print '<div class="blablabla">'.include("catalogo.php").'</div>';
 return $contenido;
}


si sigue sin aparecerte.. es un problema de html o css... revisalo.

EDIT:

Ahora que miro bien ese codigo tiene almenos 2 errores.

Código (php) [Seleccionar]
<?php
function bloque_pagina_tres(){
     
$contenido '<div class="blablabla">';
 $contenido .= include("test.txt");     
 $contenido .= '</div>';
      return 
$contenido;
}
 print 
bloque_pagina_tres();
 
?>


Ese deberia de funcionar.. lo adaptas y listo..
lo mas facil pa meter el include entre divs.. es poner el div donde llamas a la funcion bloque_pagina_tres().

PD: usa [ code=php ] codigo [ /code ]
sin los espacios.

Saludos

Clavo Oxidado

Hola ‭‭‭‭BadStupidMonkey lo he probado como lo posteaste y no me sale, he tenido que modificar algunas cosillas, aver he tenido que quitar la etiqueta "<php?  ?>" porque me salía un error en la sintaxis me salía en blanco la página sin mostrar ningún contenido,  también he quitado el print "bloque_pagina_tres();" porque me mostraba el contenido dos veces, he quitado la variable "$contenido" del include porque me mostraba un "1" y en el div he cambiado el "class" por el "id", ya que en los estilos estoy utilizando un id para "portada". He probado a ver si me aplicaba los estilo con un archivo de texto como mencionaste antes y lo puse de está forma.

Código (php) [Seleccionar]

function bloque_pagina_tres(){
     $contenido="<div id='portada'>";
include("test.txt");     
$contenido.="</div>";
      return $contenido;
}


En el archivo de test.txt contiene: HOLA

Bien como dije antes no me aplica los estilo para el include, solamente me lo inserta en la parte superior.

Y para descartar si es algún error de html y css lo he probado sin utilizar ningún include de la siguiente manera:

EJEMPLO

Código (php) [Seleccionar]

function bloque_pagina_tres(){
     $contenido="<div id='portada'>
<h4>HOLA</H4>
</div>";
      return $contenido;
}


De está manera si que me aplica los estilo al texto sin ningún problema.

Nosé si estoy haciendo algo mal, o el div no traga los include.

¿Alguna solución para solventar este problema?

Un Saludo
"Dame 10 Hackers y en media hora dominaré el mundo."

‭‭‭‭BadStupidMonkey.

El include te lo muestra arriba porque en realidad no lo devuelves con la variable contenido sino que directamente escribes sobre el. Osease

si yo tengo

Código (php) [Seleccionar]
function mama_me_pega(){
$contenido = "y papa tambien";
  echo  "jajaja";
  return $contenido;
}


el primero en ser mostrado sera el echo "jajaja"; y luego ya la variable contenido esto se debe a que return va al final.

No se la verdad porque crear una funcion para incluir una pagina. Yo lo aria algo asi.

Código (php) [Seleccionar]

// tu codigo

// donde vas a meter el bloque pagina tres

print "<div id='portada'>";
include("test.txt");
print "</div>";

// resto del codigo.



Saludos

Clavo Oxidado

La razón de crear una función o varios, es por tener un criterio a la hora de programar, ya que en la página que estoy haciendo tienen varias funciones para cada bloque de la página.

La función "function bloque_pagina_tres()" se trata para que muestre el contenido de un enlace de un menú, me explico, Teniendo la siguiente función:

Código (php) [Seleccionar]

function bloque_botonera(){
$contenido='<li id="catalogos_de_productos">
<a class="botonera_item selected" href="index.php?tipo=pagina_tres">Catalogos de Productos</a>
           </li>


Lo que tengo es un menú con un enlace, que cuando haces click en el, se dirige a la "function bloque_pagina_tres()" y muestre su contenido

Yo ya no se que hacerle más para aplicarle el div al include....:(

"Dame 10 Hackers y en media hora dominaré el mundo."