Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/12/2012, 08:50
aitormartin
 
Fecha de Ingreso: enero-2010
Mensajes: 8
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Pagina por modulos

Hola yo las paginas las separo en varias partes y carpetas separadas:

En el directorio raíz creo un fichero index.php que contiene algo asi:

index.php
Código PHP:
<?php
//Sesiones
session_start();
$_SESSION['usuario'] = 'usuarios';

//Constantes
define("TITULO_WEB""Tomaa!!!!!!!");    //Titulo de la web


    //Meta datos de la web
    
define("META_DESCRIPTION""");
    
define("META_KEYWORDS""");
    
define("META_AUTOR""Aitor Martin");
    
define("COPY_WEB""&copy; 2010-".date('Y')." Copy.....");
    
define("COPY_WEBMASTER""");

//Includes
include_once "lng/lng.php";         //Cargamos lel motor de los idiomas
include_once "datos/data.php";             //Conectamos con la base de datos de la web
include_once "datos/sql.php";             //Cargamos las funciones de las consultas SQL de la web
include_once "funciones/funciones.php";         //Cargamos las funciones de la web

include_once "css/aspecto_001/index.php";         //Plantilla a utilizar:
?>

Como puedes ver en la última linea del código anterior el documento echo en html y CSS lo guardo en css/aspecto_001/index.php, si he creado mas variantes de la web como puede ser un motivo navideño o veraniego o lo que se te ocurra lo guardas en otras carpetas css/aspecto_002/index.php o css/aspecto_003/index.php y luego modificando el index o me jor ahun desde una DB puedes modificar el aspecto en custión de segundo.


Código PHP:
<div id="site">

    <div class="center-wrapper">

        <div id="header">
            <div class="right" id="toolbar"><?php dame_idiomas(); ?></div>

            <div class="clearer">&nbsp;</div>

            <div id="site-title"><?php dame_cabecera (); ?></div>
            <div id="navigation"><?php dame_menu_superior (); ?></div>
        </div>

        <div class="main" id="main-two-columns">
            <div class="left" id="main-left"><div id="contenido"><?php dame_contenido (); ?></div></div>
            <div class="right sidebar" id="sidebar"><?php dame_barra_lateral (); ?></div>

            <div class="clearer">&nbsp;</div>

        </div>

        <div id="footer">
            <div class="content-separator"></div>
            <div class="left"><?php echo COPY_WEB?></div>
            <div class="right"><?php echo COPY_WEBMASTER?></div>

            <div class="clearer">&nbsp;</div>

        </div>

    </div>
</div>

</body>
En este último código como se puede ver los diferente elementos a mostrar les llamo mediante funciones <?php dame_contenido (); ?>....


Mediante este codigo hago una carga dinamica del contenido de la web.
Código PHP:
function dame_contenido ()
  {
  if (isset(
$_GET['id']))
    {
    switch (
$_GET['id']) 
      {
      case 
'inicio':            dame_noticias ();break;
          
      
//Valor por defecto
      
default:                dame_noticias ();break;
      }
    }
    else
    {
    
dame_noticias ();
    }
  } 
Luego mediante este otro codigo muestro el contenido:

Código PHP:
function dame_noticias ()
  {
  
$lineas dame_numero_registros ("articulo""WHERE id_lng='".$_SESSION['lang']."'");//Calculamos cuantas lineas tiene la tabla.
  
$link=Conectarse();                            //Abrimos la conexion.
  
$resultado sql_noticias ($_SESSION['lang']);            //Adquirimos las noticias.
  
  //Primero creamos un contador para saber cuantos cilcos ha echo el while. El while a mostrando las notias
  //el if comprueva si es la úlima noticia, si es la última no muestra la linea que separa las noticias.
  
$i 0;
  while (
$fila mysql_fetch_assoc($resultado))
    {
      
$i++;
      echo
      
"
      <div class='post'>

          <div class='post-title'><h2><a href='#'>"
.$fila['titulo']."</a></h2></div>

          <div class='post-date'>"
.$fila['fecha']."</div>

          <div class='post-body'>"
.$fila['texto']."</div>
      </div>"
;

      if (
$i $lineas) echo" <div class='content-separator'></div>";

    }
    
    
  
mysql_free_result($resultado);                    //Borramos el contenido de la variable donde hemos 
                                    //almacenado la consulta sql.
  
mysql_close($link);                             //Cierramos la conexion.
  

La función sql_noticias ($_SESSION['lang']); la tengo en otro en un archivo llamado datos/sql.php y lo he agregado con include en el index.php

Código PHP:
function sql_query ($consulta)                        //Esta función es la que realmente hace la consulta.
  
{
  
$query mysql_query($consulta);
  return 
$query;
  }

  function 
sql_noticias ($lng)                        //Esta función ordena las noticias por fecha descendente
                                    //para mostrarlas en la web.
  
{
  
$consulta "SELECT * FROM articulo WHERE id_lng='$lng' ORDER BY id_articulo DESC";
  return 
sql_query ($consulta);
  } 
Te puede parecer un conco enrebesado el tipo de orden que utilizo, pero ami me va bien por que consigo separar el aspecto de la web, el codigo SQL y el codigo PHP en archivos separados, y asi si algun día tengo que cambiar el tipo de base de datos o cualquier cosas me resulta mas facil el acer las actualizaciones.

Un saludo