Foros del Web » Creando para Internet » Diseño web »

Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo esto...

Estas en el tema de Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo esto... en el foro de Diseño web en Foros del Web. Estimados co-foristas. Hace unas semanas planteé como aficionado la duda de cómo hacer que si tengo un sitio web con por ejemplo 100 páginas html ...
  #1 (permalink)  
Antiguo 29/01/2009, 08:53
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Pregunta Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo esto...

Estimados co-foristas.

Hace unas semanas planteé como aficionado la duda de cómo hacer que si tengo un sitio web con por ejemplo 100 páginas html y quiero cambiar un dato de por ejemplo la cabecera (un número de teléfono, por ejemplo, o una dirección que haya ahí) no tenga que ir una por una cambiando dicha cabecera.

Antes hacía esto con Frames, de modo que solo cambiaba el html del frame cabecera; pero leyendo y aprendiendo descubro que ya casi no se usan... Así que me puse con CSS (Cuadernos Técnicos), pero ahí no encuentro manera de hacer eso: Una cabecera que si modifico se cambie en todos los docs. html que la lleven. Eso sí, he aprendido CSS y estoy contento.

Me dijisteis que con PHP-MySQL y me compro los manuales de Cuadernos Técnicos, miro aquí y allá y me hago una idea de lo que es, hasta me he comprado el cuaderno técnico de Joomla para usar un gestor de contenidos...

Pero lo dicho: Yo soy solo un aficionado de cierta edad, con el cerebro cansado y sin capacidad de asimilar fácilmente nuevos conocimientos (ya os llegará). Se me hace muy pesado y complicado aprender eso rápidamente; y necesito urgentemente para una web que le estoy ayudando a hacer a una amiga saber si hay manera de hacer eso tan sencillo sin necesidad de bases de datos y esas cosas. ¿Se puede hacer con CSS? ¿Con html? ¿O me recomendáis usar las frames de toda la vida?

Os agradeceré mucho tanto vuestra paciencia y tolerancia con mis dudas, como la ayuda que me podáis brindar.
  #2 (permalink)  
Antiguo 29/01/2009, 09:16
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 9 años
Puntos: 19
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Hay una forma facil de hacerlo con php y sin mysql (para no atormentar mucho el cerebro)
Ese tipo de diseño se llama modular, te voy a hacer un paralelo con viejo sistema de frames para que veas que es casi casi lo mismo.

En frames tenias un index.html con encabezados y llamabas a todos los frames, vamos a hacer lo mismo con PHP

Paso 1: todos los encabezados, guardalos en un archivo top_page.php
Paso 2: El titulo de la pagina con su menu lo metes en un archivo header.php
Paso 3: El footer de la página lo metes en un archivo footer.php

¿Y ahora como lo meto eso en mis mil paginas?
supongamos tienes homepage.php, le pones las siguientes lineas
Código PHP:
<?php include("top_page.php"); ?>
<?php 
include("header.php.php"); ?>
Aqui va toooodo el texto que antes tenia en el frame del contenido
<?php include("footer.php"); ?>
Lo mismo para todas las páginas de esa forma cada vez que modificas header.php se alterará para tooooodas las cochocientasmil páginas
  #3 (permalink)  
Antiguo 29/01/2009, 09:25
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

vaya, vaya, muy útil, gracias
  #4 (permalink)  
Antiguo 29/01/2009, 09:28
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

mi icono de facebook
  #5 (permalink)  
Antiguo 29/01/2009, 09:40
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Mil gracias por tu respuesta Xlogus...

Como anécdota te diré que me acaban de enviar un e-mail para ponerme en contacto para hacer un curso para desempleados (me acabo de quedar en paro) de php-mysql (así que dentro de unos meses te enseñaré yo

Mira... la verdad es que tendréis que disculpar mi ignorancia, pero cuando me dices que "meta" todos los encabezados (entiendo que el logo, título de la página y eso que normalmente sería antes por ejemplo cabecera.html) en un archivo llamado top_page.php ¿Cómo hago eso? ¿Sencillamente cambio la extensión del archivo html a php? ¿Cómo se hace eso?

Entiendo que lo que hacemos es "llamar" a esos archivos que son el encabezado y piés comunes a un index.html que ahora según tú se llamará homepage.php ¿no?

¿Me podrías ayudar un poco más detalladamente si es que por supuesto tienes tiempo y ganas? Conozco bien html y CSS.

Gracias
  #6 (permalink)  
Antiguo 29/01/2009, 10:22
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 9 años
Puntos: 19
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Hola
La verdad si, cambiale el nombre a tu viejo frame que era header, igual al que era footer.
Los includes lo que hacen es un Frankesnstein pegan pedazos codigo en una sola página.
Si quieres algo mas detallado y un ejemplo del código puedes revisar un pequeño tutorial que tengo:
http://www.miguelmanchego.com/2009/d...p-chau-frames/
  #7 (permalink)  
Antiguo 29/01/2009, 10:33
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Gracias mil Xlogus.

Entiendo lo de Frankenstein.

A ver si lo entiendo con este ejemplo que te doy:

Supongamos que quiero hacer una web con una cabecera (cabeza.html) un cuerpo donde irán texto y demás (cuerpo.html) y un pie con (por ejemplo mi teléfono y dirección (pie.html).

Antes con frames yo tendría un index.html que lamaría a esas páginas.

Ahora entiendo que tendré un index.php con un código algo así como esto ¿no?:

<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title>Mi web</title>
</head>
<body>
<?php include("cabeza.html"); ?>
<?php include("cuerpo.html"); ?>
<?php include("pie.html"); ?>

</body>
</html>

Donde lo que está en rojo serían los trozos que no variarán y yo iría variando por ejemplo solo cuerpo.html... o algo así... no sé, creo que me estoy equivocando igual porque entiendo que no sé como llamaría a los diferentes textos que vaya metiendo. Me voy a tu web a mirar.
  #8 (permalink)  
Antiguo 29/01/2009, 10:37
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Oye: El tutorial de tu web está muy bien, snecillísimo.

Los archivos que voy creando los subo a mi servidor tal cual, ¿todos a la misma carpeta HTML?

Gracias por la ayuda.
  #9 (permalink)  
Antiguo 29/01/2009, 10:43
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 9 años
Puntos: 19
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Bajate el ejemplo al final del tutorial ahi esta todo en orden y en sus respectivas carpetas, el error en el codigo que haz posteado lo vas a notar si le pones "ver codigo fuente" estas duplicando codigo innecesariamente ya que el top_page.php meto todos esos encabezados y en footer los cierro.

Yo normalmente uso un esquema mas complejo para usar CMS y friendly URL pero para empezar el tutorial que te pasé es suficiente
  #10 (permalink)  
Antiguo 29/01/2009, 10:57
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Sonrisa Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Cita:
Iniciado por XLogus Ver Mensaje
Bajate el ejemplo al final del tutorial ahi esta todo en orden y en sus respectivas carpetas...
Gracias Xlogus, no sabes como te lo agradezco. Me he quedado en paro hace un par de meses y estoy aprovechando para aprender más cosas (mi profesión nada tiene que ver con esto, pero es que me encanta). Tengo varias webs hechas hace años con html (alguna con varios centenares de visitas diarias -son de historia-) y como un pobretón me he puesto a comprarme manuales de PC Cuadernos (que están bastante bien), pero se me cae el mundo encima cuando me meto en ellos con el tema PHP-MySQL.

A esta amiga le quiero hacer una web que sé que le podría hacer en un plis plas con html puro y frames con CSS y que quedaría de lujo, pero le he dicho que mientras estudio y aprendo quiero hacerle a ella una web a la última, ya que hay que meter mucha información.

Mira: Solo bajarme los archivos de ejemplo, subirlo a un servidor de prueba y verlos ahí me ha dado un gusto tremendo.

Voy a estudiar los códigos y eso a ver qué tal. Espero no te moleste si abuso más de tu ayuda más adelante.

Me queda la duda de cómo ir creando más contenidos en el cuerpo y dónde meterlo porque tú metes todo en el index php. Entiendo que sería crear unas páginas tal que esa pero con otros textos fotos o lo que sea y en vez de index.php llamarlas index1.php, index2.php etc...

Gracias, sinceramente, de verdad.

www.josean.org
  #11 (permalink)  
Antiguo 29/01/2009, 11:36
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 9 años
Puntos: 19
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Hola
Para este primer caso, seria mejor usar nombres mas descriptivos, la primera index.php, servicios.php, contacto.php, etc.

Lo que yo hago es meter el contenido en una base de datos mysql e invocarlo todo desde index.php?page=mipagina eso luego es util a la hora del friendlyurl, la otra opción es agrega al código un script que invoque el contenido de las paginas dinamicamente, algo como:
Código PHP:
<?
if (!isset($_GET['page'])) {
    include(
"pages/homepage.php");
} else {
    include(
"pages/".$_GET['page'].".php");
}
?>
  #12 (permalink)  
Antiguo 30/01/2009, 05:57
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
De acuerdo Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Te agradezco enormemente tu ayuda... la web está marchando con tu tutorial (el de tu blog). Cuando la tenga doy el link.

Gracias otra vez.
  #13 (permalink)  
Antiguo 08/02/2009, 16:46
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Vuelvo a preguntar: Sustituto de Frames debe ser más sencillo que todo est

Hola,

Hace un par de semanas me ayudasteis a montar con lo anteriormente expuesto una web que en vez de usando frames he realizado (estoy en ello) con esos trozos de código que juntos constituyen una web y que se ensamblan por medio de php del tipo:

cabeza.php
navegacion.php
menus_izda.php
index.php ahí he puesto al código que son los textos una <div id="inicio">
pie.php

Y el index.php tiene las opciones include que montan los otros trozos, cada uno con su parte de código. Y así otras páginas que fuese montando en la parte del centro montarían código de la cabeza, navegación, menus_izda y pie dando el efecto que antes obtenía con frames.

La cosa es que la parte de navegación la he hecho con pestañas a base de tablas ul y elementos li y cuando quiero hacer con una web normal sin php que la pestaña de la parte actual se mantenga con el efecto como de activada usaba:

#navegacion a:hover,
#inicio #pestaña01 a, (donde "inicio" era el id del body de la página inicio.html)
#otraparte# pestaña02 a (sin coma donde otraparte era el id de la pag. otraparte.html)
etc...

(NO SÉ SI ME EXPLICO BIEN)

La cosa es que ahora no sé como se haría ese efecto cuando en mi caso ya no tengo muchos "bodys" uno por página html, sino uno solo, que está en cabeza.php y por ello no sé que dos selectores debo usar para que el efecto rollover se me muestre en cada pestaña (son 4 pestañas).

Vaya, no sé si se entiende algo... ¡snif!

El código css en esa parte es:

#navegacion a:hover,
#somos #navi01 a,
#estamos #navi02 a
#localizarnos #navi03 a
#preguntenos #navi04 a
{
text-decoration: none;
color: black;
background-color: white;
padding-bottom: 5px;
border-bottom: none;
}

Donde #somos es el selector del id del index.php y navi01 el de la pestaña que va a la presentación (somos tal grupo y eso). La coma se la he puesto solo a ese que es el que quiero que tenga activado en la pestaña el efecto rollover mientras la página que se presente sea la principal a la que he llegado con esa pestaña.

A ver si alguien me puede ayudar.

Gracias de antemano.
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:42.