Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/04/2015, 23:51
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 9 meses
Puntos: 65
¿Cómo estructurar y programar una web para cargar páginas, contenidos, secciones etc?

Hola.

Estoy haciendo pruebas con php donde intento hacer un gestor de contenidos muy básico con php y mysql (más adelante con mysqli y POO) y por ahora estoy preparando lo que sería una plantilla o estructurando una web para cargar diferentes secciones, contenidos etc etc. La idea es aprender a hacerlo de la mejor manera posible, es decir cuando tengo que empezar un proyecto plantearme de un principio la mejor la estructura, programación, módulos etc etc que se debería de hacer teniendo en cuenta futuros cambios de programación o cambios del apartado del diseño por completo. Ya se que es un tema muy visto en el foro pero creo que la mejor manera de aprender y asegurarme es practicando así que empiezo de 0.

Por ahora he probado con dos opciones diferentes.

A) - En la primera creo el nombre de la página por ejemplo index.php con la variable $pagina="index"; que será llamada en el include contenidos que he preparado y lo mismo con cualquier otra página, si por ejemplo la página fuese otros.php le creo la variable $pagina="otros"; y también sería llamada desde el mismo include contenidos.

index.php

Código PHP:
Ver original
  1. <?php
  2. //Indico el título de la página si es necesario
  3. $titulo_pagina = "Mini proyecto web demo con php.";
  4. include("inc/head.php");
  5. ?>
  6. <body id="inicio">
  7. <?php
  8. $pagina ="index";
  9. ?>   
  10. <?php
  11. include("inc/contenido.php"); //tambien pueden ser como contenido.inc
  12. ?>
  13. <?php
  14. include("inc/footer.php");
  15. ?>

Si fuese otros.php sería como el index pero con $pagina ="otros";

contenido.php

Código PHP:
Ver original
  1. <?php
  2. include("header.php");
  3. ?>
  4. <?php
  5. //Preparo la sección o página a cargar según corresponda
  6. //Utilizo la variable página que se incluye en cada página.html o .php
  7. switch ($pagina) {
  8.     case 'index':
  9.         echo "Contenido para el index";
  10.         /* Aquí añadiría el html
  11.         <section id="contenedor">
  12.         <section id="contenidos">
  13.         <h1>Sección principal.</h1>
  14.         <article>
  15.         <p>Aquí inserto noticias</p>*/
  16.         break;
  17.     case 'otros':
  18.         echo "Contenido para la página otros";
  19.         break; 
  20.     default:
  21.         echo "Contenido para el index";
  22.         break;
  23. }
  24. ?>

B) - Segunda opción creo por ejemplo otro index-noticias.php solo con un include (contenido-noticias.php) el cual tendrá dentro solo el contenido para mostrar en ese index noticias y si luego quiero crear otra página como otros-articulos.php pues hago el mismo proceso que en el anterior pero incluyendo si contenido correspondiente (include contenido-otros.php).

index-noticias.php

Código PHP:
Ver original
  1. <?php
  2. //Indico el título de la página si es necesario
  3. $titulo_pagina = "Mini proyecto web demo con php.";
  4. include("inc/head.php");
  5. ?>
  6. <body id="inicio">
  7. <?php
  8. include("inc/contenido-noticias.php"); //tambien pueden ser como contenido.inc
  9. ?>
  10. <?php
  11. include("inc/footer.php");
  12. ?>

contenido-noticias.php

Código PHP:
Ver original
  1. <?php
  2. include("header.php");
  3. ?>
  4. <section id="contenedor">
  5.     <section id="contenidos">
  6.         <h1>Sección principal.</h1>
  7.         <article>
  8.         <p>Aquí inserto noticias</p>           
  9.             <?php
  10.             include("inc/noticias.php");           
  11.         </article>
  12.         <h2>Otros artículos.</h2>      
  13.         <article>
  14.             <p> Aquí van otros artículos</p>                           
  15.         </article>         
  16.     </section>
  17. </section>

luego si fuese otros.php sería lo mismo pero llamaría a otro include para el contenido, por ejemplo otros-articulos.php

¿Cual de las dos maneras A y B se suele utilizar más o incluso que otra opción aparte de las citadas podría mejorar?

En cuanto a los contenidos dentro de cada include que se cargarán en las páginas dejo la opción de varias las secciones diferentes que pueda haber en la web, diseño, las noticias a mostrar, imágenes etc etc pero con la opción de mostrarse en la misma página, es decir que si por ejemplo quiero ver una noticia, imagen, producto al detalle me cargaría en la misma url a través de get.

Código PHP:
Ver original
  1. //Apartado que iría en el include de noticias:
  2. //Primero hago la consulta a la base de datos para mostrar un nº determinado de noticias.
  3. //Cada noticia llevará un enlace de ver más
  4. //------ Opción de ver más -----------
  5.     echo "<a href=\"index.php?id_noticia=". $id_noticia ."\" title=\"".$titulo."\" > - Ver más  </a><br>";
  6. //------ Fin opción de ver más -----------
  7. //Mostrar la noticia solicitada en esta url: http://localhost/php/index.php?id_noticia=1
  8. //Cojo las variables de la url en el caso de que existan o no              
  9.     if(isset($_GET['id_noproducto'])){
  10.         $id_noticia = mysql_real_escape_string ($_GET['id_noticia']);
  11.     }
  12.     else{
  13.         $id_noticia = NULL;
  14.     }
  15. //Imprimo la noticia recibida.

¿es esa la manera correcta de cargar contenidos o hay alguna otra mejor y más fácil?

Saludos.