Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / PHP / Blog MVC – Carga de páginas estáticas [p4]

Blog MVC – Carga de páginas estáticas [p4]

Autor jc mouse Martes, Julio 30, 2013

Cuarta parte de esta pequeña serie de tutoriales sobre [Crea tu blog con el patrón MVC y php]

En esta cuarta entrega veremos lo que es la carga de páginas web estáticas utilizando el patrón MVC.

¿Página estática?

Una página web estática, es una página web que no requiere de muchas actualizaciones constantes, esto quiere decir que la información que esta página contiene, permanece inalterable por mucho tiempo. No interactúan con la base de datos aunque si puede hacer uso de javascript para darle un poco de dinamismo, por lo general el contenido de estas páginas se reduce a HTML y CSS.

Estas páginas sirven para ofrecer una descripción de su empresa, negocio o servicio que ofrece, un “Quienes Somos”, “Donde estamos”, “Hacia donde vamos” , etc.

El Proyecto.

1. Lo primero que haremos sera crear un archivo  HTML “page1.html”, esta se ubicará en el directorio raiz del theme, si quisiéramos agregar nuevas páginas, estas deben seguir un orden correlativo es decir “page2.html”, “page3.html”, etc.

Entonces tenemos:

mvc page

– Agregamos un poco de código HTML a nuestra página estática. Por ejemplo:

<div>
    <h1>Acerca de nosotros</h1>
<p style="text-align: justify;"><img class="aligncenter" title="meme" src="http://scdn.memecdn.com/images/avatars/s_209328_502fe49e7dab5.jpg" alt="meme" width="128" height="128" /></p>
<p style="text-align: justify;">Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit ridens inciderint id. Quo mundi lobortis reformidans eu, legimus senserit definiebas an eos. Eu sit tincidunt incorrupte definitionem, vis mutat affert percipit cu, eirmod consectetuer signiferumque eu per. In usu latine equidem dolores. Quo no falli viris intellegam, ut fugit veritus placerat per. Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos debet libris consulatu. No mei ferri graeco dicunt, ad cum veri accommodare. Sed at malis omnesque delicata, usu et iusto zzril meliore. Dicunt maiorum eloquentiam cum cu, sit summo dolor essent te. Ne quodsi nusquam legendos has, ea dicit voluptua eloquentiam pro, ad sit quas qualisque. Eos vocibus deserunt quaestio ei. Blandit incorrupte quaerendum in quo, nibh impedit id vis, vel no nullam semper audiam.</p>
<p style="text-align: justify;">Ei populo graeci consulatu mei, has ea stet modus phaedrum. Inani oblique ne has, duo et veritus detraxit. Tota ludus oratio ea mel, offendit persequeris ei vim. Eos dicat oratio partem ut, id cum ignota senserit intellegat. Sit inani ubique graecis ad, quando graecis liberavisse et cum, dicit option eruditi at duo. Homero salutatus suscipiantur eum id, tamquam voluptaria expetendis ad sed, nobis feugiat similique usu ex. Eum hinc argumentum te, no sit percipit adversarium, ne qui feugiat persecuti. Odio omnes scripserit ad est, ut vidit lorem maiestatis his, putent mandamus gloriatur ne pro. Oratio iriure rationibus ne his, ad est corrumpit splendide. Ad duo appareat moderatius, ei falli tollit denique eos. Dicant evertitur mei in, ne his deserunt perpetua sententiae, ea sea omnes similique vituperatoribus. Ex mel errem intellegebat comprehensam, vel ad tantas antiopam delicatissimi, tota ferri affert eu nec. Legere expetenda pertinacia ne pro, et pro impetus persius assueverit. Ea mei nullam facete, omnis oratio offendit ius cu. Doming takimata repudiandae usu an, mei dicant takimata id, pri eleifend inimicus euripidis at.</p>
<p style="text-align: justify;">His vero singulis ea, quem euripidis abhorreant mei ut, et populo iriure vix. Usu ludus affert voluptaria ei, vix ea error definitiones, movet fastidii signiferumque in qui. Vis prodesset adolescens adipiscing te, usu mazim perfecto recteque at, assum putant erroribus mea in. Vel facete imperdiet id, cum an libris luptatum perfecto, vel fabellas inciderint ut. Veri facete debitis ea vis, ut eos oratio erroribus. Sint facete perfecto no vel, vim id omnium insolens. Vel dolores perfecto pertinacia ut, te mel meis ullum dicam, eos assum facilis corpora in.</p>
<p style="text-align: justify;">Mea te unum viderer dolores, nostrum detracto nec in, vis no partem definiebas constituam. Dicant utinam philosophia has cu, hendrerit prodesset at nam, eos an bonorum dissentiet. Has ad placerat intellegam consectetuer, no adipisci mandamus senserit pro, torquatos similique percipitur est ex. Pro ex putant deleniti repudiare, vel an aperiam sensibus suavitate. Ad vel epicurei convenire, ea soluta aliquid deserunt ius, pri in errem putant feugiat. Sed iusto nihil populo an, ex pro novum homero cotidieque.</p>
</div>

2. Para cargar estas paginas HTML en nuestro blog, necesitamos un controlador, crearemos esta en la carpeta correspondiente CONTROLLER,el nombre del archivo es “pageCtrl.php

controller page

y el código de la  clase es el siguiente:

<?php
/**
 * Controlador para las paginas estaticas
 */
class pageCtrl{

    /** Constructor de clase */
    public function __construct() { } 

    /**
 * Metodo para cargar la vista de pagina
 * @param $id identificador de pagina estatica
 * Ej. page1.php
 */
    public function load( $id = 1 )
    {        

        if( intval($id)!= 0 ) //archivo de pagina estatica de la forma "page1.html"
        {
            $p =  'application/view/themes/'. __THEME__ .'/page'.$id.'.html';            
            $php = false;    
        }
        else //pagina estatica de la forma "pageBuscador.php"
        {
            $p =  'application/view/themes/'. __THEME__ .'/page'.$id.'.php';        
            $php = true;
        }

        if( is_readable( $p ) && $php==false ) //verifica existencia y obtiene contenido
        {
            $content = file_get_contents($p); //obtiene contenido estatico de pagina
        }
        else if(is_readable ($p) && $php ==true ) //la pagina contiene etiquetas PHP 
        {
            ob_start();      
                include $p;
            $content = ob_get_clean(); 
        }
        else // si pagina no existe avisa
        {
            $content = 'La pagina no existe o el archivo es ilegible';
        }

        include 'application/view/themes/'. __THEME__ .'/principal.php';
    }

}//--> fin clase
?>

Esta clase pageCtrl, tiene un método LOAD el cual recibe como parámetro el ID de la pagina estática a cargar (page1.html entonces ID = 1), podemos ver que dentro el método tenemos un IF el cual nos permite filtrar entre paginas con HTML puro o páginas con etiquetas PHP, esto porque puede ocurrir que deseáramos implementar una pagina estatica con soporte para código php, esto lo veremos en post posteriores, continuemos.

Este método LOAD, determina si una pagina estática existe y puede leerse para luego mostrar su contenido en el blog.

3. Debemos editar el archivo “principal.php” ubicado en THEMES/SAMPLEBLOG/, busca la sección del “menu horizontal” y reemplaza

<!-- menu horizontal -->
<div id="menu">
 <div class="menu"><a href="#">home</a></div>
        <div class="menu"><a href="#">Page #1</a></div>
        <div class="menu"><a href="#">Page #2</a></div>
        <div class="menu"><a href="#">Page #3</a></div>
 <div class="menu"><a href="#">Buscar</a></div>
</div>
<!-- menu horizontal:end -->

por:

<!-- menu horizontal -->
<div id="menu">
 <div class="menu"><a href=".">home</a></div>
 <div class="menu"><a href="index.php?load=page&id=1">Page #1</a></div>
 <div class="menu"><a href="index.php?load=page&id=2">Page #2</a></div>
 <div class="menu"><a href="index.php?load=page&id=3">Page #3</a></div>
 <div class="menu"><a href="#">Buscar</a></div>
</div>
<!-- menu horizontal:end -->

El enlace para abrir una página estática tiene la forma:

index.php?load=page&id=1 que interpretando se leería “cargar pagina numero 1”

4. Para terminar este post, abrimos el archivo “index.php

if( $_POST )
    {
        //codigo aqui 
    }
    else if( $_GET )
    { 
        //codigo aqui 
    }    
    else
    {
        include_once( "application/controller/homeCtrl.php" );
        $home = new homeCtrl();
        $home->load();    
    }

Debemos implementar las acciones para GET que es por donde invocamos a nuestra pagina estática, entonces tenemos;

    else if( $_GET )
    { 
        if( isset( $_GET['load'] ) && isset( $_GET['id'] ) ) #carga de archivos
        {
            if( is_file( "application/controller/".$_GET['load']."Ctrl.php" ) )
            {
                include_once( "application/controller/".$_GET['load']."Ctrl.php" );        
                $page = new pageCtrl();
                $page->load( $_GET['id'] );
            }else { echo 'wtf!'; }
        }   
    }

Ejecuta en el navegador

page static mvc

 Archivos 4ta parte blog mvc 🙂

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Crear ayuda HTML para programa con JavaFX Swing

Crear ayuda HTML para programa con JavaFX Swing

En este post veremos como crear una aplicación de ayuda al usuario similar al extinto javahelp. Pero en esta oportunidad...

Código de Control en PHP v7.0 Bolivia

Código de Control en PHP v7.0 Bolivia

NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p...

Texto e Imagen en Java2d (Proyecto)

Texto e Imagen en Java2d (Proyecto)

Nivel: Intermedio-Avanzado IDE: Netbeans 6.9 o Sup. Tiempo: 30 minutos En este tutorial crearemos una aplicación que nos...

Google Circles en java

Google Circles en java

En este tutorial crearemos el botón de Google+ Google Circles para una interfaz de escritorio 🙂 si no sabes lo que son e...

Conexion Access con PHP

Conexion Access con PHP

Para poder conectar PHP con una base de datos de microsoft Access debemos seguir los siguientes pasos: 1. Crea una base...

Capturar webcam con VB.NET

Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames...

2 comentarios en “Blog MVC – Carga de páginas estáticas [p4]”

  1. GustavoMG dice:

    PERFECTO! ME QUEDO MUY BIEN. TODA LA EXPLICACION DETALLADA A LA PERFECCION. GRACIAS Y SALUDOS. ME SIRVIO MUCHO Y ME SIRVE PARA PRACTICAR CON PROYECTOS POSTERIORES.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

Slim es un micro framework para PHP que nos ayuda a escribir rápidamente aplicaciones Web y APIs sencillas pero poderosa...

Es recomendable tener actualizado la Maquina Virtual Java de nuestro equipo para poder disfrutar de las mejoras que trae...

JavaFX implementa el control webview que nos permite agregar contenido HTML cargado mediante la clase WebEngine. El comp...

En este ejemplo tenemos un array en JSON el cual representa una lista de alumnos y queremos llevar este a una lista en j...

Android Bolivia

Bandera en Alto