Foros del Web » Creando para Internet » HTML »

URGE: sustituir frames con capas? o include?

Estas en el tema de URGE: sustituir frames con capas? o include? en el foro de HTML en Foros del Web. tengo un problema y bastante urgencia: tengo que maquetar una web (ya diseñada), que tiene 5 menus, y cada uno de ellos tiene 10 (+/-) ...
  #1 (permalink)  
Antiguo 03/09/2005, 13:46
 
Fecha de Ingreso: octubre-2004
Mensajes: 48
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación URGE: sustituir frames con capas? o include?

tengo un problema y bastante urgencia: tengo que maquetar una web (ya diseñada), que tiene 5 menus, y cada uno de ellos tiene 10 (+/-) submenus. Asi que habia pensado en hacerla con iFrames, pero los malditos scrolls no me los quito de encima con nada, asi que he estado buscando y buscando en el foro, todo lo que habia sobre frames e iframes (marcos) y capas.

(de este mes no pasa que aprenda php!!!)


Me ha parecido leer que se puede sustituir los marcos por capas, pero la pregunta es: se puede cargar una html entera dentro de una capa?, (linkada desde otra al igual que lo hacemos con los frames)

O tambien he leido varias propuestas de hacerlo con includes... como se hace esto? es necesario que el archivo padre sea php? alguien me puede explicar lo del include? Tengo muuuuuuchisima urgencia, pues si no lo encuentro me machaco las 60 paginas en html puro y duro (lo malo será cuando haya que hacer algun cambio, que lo habrá)

Última edición por OrgasmUs; 05/09/2005 a las 04:06
  #2 (permalink)  
Antiguo 04/09/2005, 18:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 48
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación

Bien, he descubierto un magnífico tutorial gracias a este foro en: Creando webs modulares

Y lo he ido implementando en el sitio que estoy maquetando (sin entender a veces parte del código) y me da como resultado más o menos lo que yo quiero, pero el layout_simple.php me deja unos espacios entre los modulos, que me afean el diseño, (tal como fue concebido por el diseñador)...

lo tengo colgado provisionalmente en: http://facciondg.com/card&systems/115/index.php

Si pinchais en la primera opción del menu horizontal, observareis que queda una linea azul oscuro por debajo de este, y una franja abajo del "bloque de contenido" de unos 10 px de alto, sin cubrir...

Os pongo el codigo del "layout_simple.php" para que se vea más claro:
Código:
<html>
<head>
<title>Card & Systems S.L.</title>
<link href="estilos-cardandsystems.css" rel="stylesheet" type="text/css">
</head>

<body background="./includes/Images/fondo2.jpg">
<center>
<?php include('./includes/cabecera.html'); ?>
<?
        if (file_exists( $path_modulo )) include( $path_modulo );
	else die('Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
<?php include('./includes/pie.html'); ?>

</center>
</body>
</html>
*(ya he quitado la tabla en la que estaban metidos los includes, y ni asi....)

¿Como podria solucionar esto? SI alguien necesita que ponga cualquier otra parte de codigo para ayudarme que lo diga... toy desesperaoooooo

Última edición por OrgasmUs; 05/09/2005 a las 02:24
  #3 (permalink)  
Antiguo 10/09/2005, 04:46
 
Fecha de Ingreso: octubre-2004
Mensajes: 48
Antigüedad: 13 años, 1 mes
Puntos: 0
up... S.O.S.... nadie sabe como ayudarme?? Toy desesperaoooooooooo
  #4 (permalink)  
Antiguo 10/09/2005, 05:06
Avatar de Durgeoble  
Fecha de Ingreso: marzo-2003
Mensajes: 462
Antigüedad: 14 años, 9 meses
Puntos: 2
Mensaje

a ver, lo que quieres es poner el menu en TODAS las paginas para no escribirlo cada vez ¿correcto?

Mi recomendación vete a la libreria mas cercana donden tengan libros sobre PHP o bien sigue alguno de los cursos basicos de PHP de la red, en apenas 30 minutos deberias de saber lo suficiente de PHP para hacer lo que quieres en 30 minutos mas (aprox 2 min por pagina y tirando por lo alto), a partir de ahi puedes seguir editando con mas tranquilidad el resto del site y aprendiendo php en profundidad.
Aqui te dejo algun enlace
HTMLpoint - Guía práctica al PHP .
HTMLpoint - Guía teórica al PHP
__________________
Todas mis respuestas funcionaran correctamente en aquellos navegadores que respeten los estandares.
  #5 (permalink)  
Antiguo 10/09/2005, 10:26
 
Fecha de Ingreso: octubre-2004
Mensajes: 48
Antigüedad: 13 años, 1 mes
Puntos: 0
Durgeoble, te agradezco el interés, pero en ese paso ya estoy... lo que necesito es ayuda puntual sobre un punto en el que estoy atascado... Si lees con atención el mensaje de socorro, observaras que ya tengo el boceto funcionando con includes en php, y el punto en el que estoy atascado (a pesar de que le he dado 1000 vueltas...) es que los diferentes modulos me aparecen "separados" por unos espacios (uno arriba de 1 px, como una linea y otro abajo del modulo central (cono una barra de unos 10 px.)

En cualquier caso, te agradezco el intento de ayuda
  #6 (permalink)  
Antiguo 10/09/2005, 16:47
Avatar de Durgeoble  
Fecha de Ingreso: marzo-2003
Mensajes: 462
Antigüedad: 14 años, 9 meses
Puntos: 2
podrias mirar el enlace de la pagina, no funciona.
En cuanto a la linea de 1px o la barra de unos 10 px desde luego es raro quizas sea un salto de linea o bien un margen que has dejado sin darte cuenta, si se puede ver la pagina se localizan bastante rapido esos errores.
a por cierto:
Código PHP:
<?php include('./includes/cabecera.html'); ?>
<?
        
if (file_exists$path_modulo )) include( $path_modulo );
    else die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
<?php 
include('./includes/pie.html'); ?>
Cambialo por
Código PHP:
<?php 
include('./includes/cabecera.html');
        if (
file_exists$path_modulo )) include( $path_modulo );
    else die(
'Error al cargar el módulo <strong>'.$modulo.'</strong>. No existe el archivo <strong>'.$conf[$modulo]['archivo'].'</strong>');
 include(
'./includes/pie.html'); ?>
asi no "enciendes" y "apagas" tantas veces el interprete php
y ponle un doctype al la pagina y ¡Por todo lo que mas quieras! elimina ese <center></center> a estas alturas duele ver cosas asi
__________________
Todas mis respuestas funcionaran correctamente en aquellos navegadores que respeten los estandares.

Última edición por Durgeoble; 10/09/2005 a las 16:55
  #7 (permalink)  
Antiguo 10/09/2005, 17:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 48
Antigüedad: 13 años, 1 mes
Puntos: 0
Durgeoble, Gracias por el cambio de código, tienes razón, así queda más limpio el código y no hay que ir llamando al interprete de php varias veces seguidas, (siempre se aprende algo nuevo)

respecto al doctype, se trata de la página "layout", no sabia que tenia que llevar un doctype, pero claro, pensandolo bien, si la tiene que leer un navegador, es obvio... lo pondré (pero que tipo?)

respecto al center... también tienes toda la razón, mea culpa... (aun no tengo el tema del css dominado ni muchisimo menos... más bien, estoy en 1º de CSS... jajaja)

También tienes razon en cuanto a los espacios que comentaba, el de abajo lo he localizado, y efectivamente era un salto de linea, pero el de arriba, lo he probado todo y sigue ahi...

El enlace funciona bien, lo vuelvo a poner por si acaso, creo que funciona bien:

http://facciondg.com/card&systems/115/

y en modo texto, para copiar y pegar:
Cita:
"http://facciondg.com/card&systems/115"

Última edición por OrgasmUs; 10/09/2005 a las 17:44
  #8 (permalink)  
Antiguo 11/09/2005, 03:20
Avatar de Durgeoble  
Fecha de Ingreso: marzo-2003
Mensajes: 462
Antigüedad: 14 años, 9 meses
Puntos: 2
Código HTML:
</table>

</body>

 </html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
<head>
<title>Documento sin t&iacute;tulo</title> 
Tal y como puedes ver despues de cerrar el html biene el doctype y vielves a abrir el html, html no es php, una pagina html solo debe tener una pareja de etiquetas <html> una pareja de <head> una de <title> y una de <body>
este error viene de un fallo de concepto, si quieres incluir un archivo en una pagina con php no es necesario que dicha pagina este completa, debes considerar la pagina como si ya tubiera una parte creada p.e:
cabecera.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Pagina de prueba seccion -<? echo $seccion ?></title>
scripts.php o scripts.html (como prefieras, si no usas funciones php puede ser html, si las usas tambien pero asi te lias menos)
Código HTML:
 <link rel="stylesheet" type="text/css" href="/estilos.css" />
<script language="JavaScript" type="text/javascript" src="unscript.js"></script>
<script language="JavaScript" type="text/javascript" src="scriptdos.js"></script>
<script language="JavaScript" type="text/javascript" src="scriptres.js"></script>
</head>
<body> 
index.php
Código PHP:
 <?php
 
include (funciones.php/* aqui cargariamos una serie de funciones para poder usarlas a lo largo de la pagina */
 
if (!issset ($seccion);) { $seccion=indice.php}
 include (
cabecera.php);
 include (
scripts.php);
 include (
$seccion);
 include (
pie.php);
pie.php
Código HTML:
<div><p><!--- comentarios noticias legales y cualquier otra cosa que pongas en el pie ---><div>
</body>
</html> 
Como puedes ver no rehago cada pagina, sino que la pagina continua donde se quedo la anterior.
__________________
Todas mis respuestas funcionaran correctamente en aquellos navegadores que respeten los estandares.
  #9 (permalink)  
Antiguo 11/09/2005, 13:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 48
Antigüedad: 13 años, 1 mes
Puntos: 0
Como siempre, me estas siendo de gran ayuda, te cuento:

A ver, no sabia que las diferentes secciones se podian poner como php (aunque solo sea codigo html, de manera que te evites el abrir y cerrar cada documento) así que he intentado cambiar el "sistema" tal y como lo describes, cambiando cada modulo a un archivo php y eliminando sus etiquetas de <html>, etc

y ya que el método es algo diferente, como se puede ver en: Creando webs modulares y si que me funciona, todo excepto una cosa: no consigo que se haga la precarga de imagenes, con el script de precarga (que en lugar de alojarlo en una "scripts.php" esta directamente situado en "layout-1.php"

El esquema es:

el index.php llama primero al archivo "conf.php":

Código PHP:
<?php
/*
* Archivo de configuración para nuestra aplicación modularizada.
* Definimos valores por defecto y datos para cada uno de nuestros módulos.
*/
define('MODULO_DEFECTO''home');
define('LAYOUT_DEFECTO''layout_simple.php');
define('MODULO_PATH'realpath('./modulos/'));
define('LAYOUT_PATH'realpath('./layouts/'));

$conf['home'] = array(
        
'archivo' => 'home.php',
        
'layout' => LAYOUT_DEFECTO );

$conf['impresoras-tarjetas-plasticas-1'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-1.php',
        
'layout' => 'layout_1.php' );
$conf['impresoras-tarjetas-plasticas-2'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-2.php',
        
'layout' => 'layout_1.php' );
$conf['impresoras-tarjetas-plasticas-3'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-3.php',
        
'layout' => 'layout_1.php' );
$conf['impresoras-tarjetas-plasticas-4'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-4.php',
        
'layout' => 'layout_1.php' );
$conf['impresoras-tarjetas-plasticas-5'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-5.php',
        
'layout' => 'layout_1.php' );
$conf['impresoras-tarjetas-plasticas-6'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-6.php',
        
'layout' => 'layout_1.php' );
$conf['impresoras-tarjetas-plasticas-7'] = array(
        
'archivo' => 'impresoras-tarjetas-plasticas-7.php',
        
'layout' => 'layout_1.php' );


?>
(que por cierto, no habria manera de "agrupar" los arrays o algo asi?

y despues hace lo siguiente:

Código PHP:
<?php
error_reporting
(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');

/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
* También debemos verificar que el valor que nos
* pasaron, corresponde a un modulo que existe.
*/
if (!empty($_GET['mod']))
    
$modulo $_GET['mod'];
else
    
$modulo MODULO_DEFECTO;

/** También debemos verificar que el valor que nos
* pasaron, corresponde a un modulo que existe, caso
* contrario, cargamos el modulo por defecto
*/
if (empty($conf[$modulo]))
        
$modulo MODULO_DEFECTO;

/** Ahora determinamos que archivo de Layout tendrá
* este módulo, si no tiene ninguno asignado, utilizamos
* el que viene por defecto
*/
if (empty($conf[$modulo]['layout']))
        
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;
/** Aqui podemos colocar todos los comandos necesarios para
* realizar las tareas que se deben repetir en cada recarga
* del index.php - En el ejemplo, conexión a la base de datos.

* include('clases/class.DB.php');
* $db = new DB();
* $db->conectar();
*/

/** Finalmente, cargamos el archivo de Layout que a su vez, se
* encargará de incluir al módulo propiamente dicho. si el archivo
* no existiera, cargamos directamente el módulo. También es un
* buen lugar para incluir Headers y Footers comunes.
*/
$path_layout LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo MODULO_PATH.'/'.$conf[$modulo]['archivo'];

if (
file_exists($path_layout))
    include( 
$path_layout );
else
    if (
file_exists$path_modulo ))
        include( 
$path_modulo );
    else
        die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
así, (ojo, he modificado solo para la prueba, el 1er apartado, -"impresoras de tarjetas plasticas"-)

el archivo "layout-1.php" hace de contenedor y dentro de las etiquetas <body> y </body> meto todos los includes, dejando en el <head> de "layout-1.php" el script de precarga, asi como el enlace a la hoja de estilos

¿Porque no consigo que precargue las imagenes del roll-over del menú?

EDITO: olvidé poner el link a la modificación: http://facciondg.com/card&systems/11...as-plasticas-1

No se si me explico o si lo he liado más

Última edición por OrgasmUs; 12/09/2005 a las 02:59
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 20:35.