Crear un foro en PHP y Mysql Part1/3

Crearemos un foro desde cero, separaremos la programación del diseño, y modularemos nuestra aplicación para que sea simple de configurar y de adaptar. Debemos preparar la tabla en una base de datos donde se alojaran todos los temas de nuestro foro. Lo que esta tabla tendrá, es la información de nuestros mensajes, el autor del mismo, y otros datos que servirán para identificar a que tema pertenece un mensaje. Empezamos con la estructura propuesta :

SQL:

El detalle de los campos que tendrá nuestra tabla:

  • id : Será e identificador principal de la tabla. Sirve para diferenciar cada uno de los mensajes.
  • autor : el autor del mensaje.
  • titulo : el titulo que tendrá el mensaje. Si este mensaje es el iniciador de un tema, será el que mostrará en el home del Foro.
  • mensaje : El mensaje en si mismo.
  • fecha : un campo DATETIME que indicará en que fecha se ha publicado este mensaje.
  • respuestas : Si este mensaje es el iniciador de un tema, aqui se acumularán la cantidad de respuestas que reciba.
  • identificador : este campo guarda el valor del id del mensaje que se está respondiendo. Si el mensaje es iniciador de un tema, entonces este campo valdrá cero.
  • ult_respuesta : si el mensaje es iniciador de tema, aqui se actualizará valor de acuerdo con la fecha de la última respuesta que haya recibido. Sirve para poder mantener un orden en los foros.

Realizaremos un pequeño script que nos hara una tarea que vamos a repetir mucho, y que es conectarnos a la base de datos. Este script lo incluiremos en cada página en la que tengamos que acceder a la base de datos:

configuración.php

Tan solo es un script, con unas variables que contienen la configuración de nuestra base de datos, el código mínimo y necesario para conectarnos y guardar el recurso de conexión en una variable $con que luego utilizaremos cuando hagamos nuestras consultas.

Template:

Utilizaremos templates, para que puedas modificar a tu gusto el aspecto del foro, sin por ello tener que tocar el código de la aplicación. Lo que haremos es utilizar archivos .html que dentro contendrán solo diseño ( o sea, código HTML ) y en los lugares en los que deseemos colocar contenido “dinámico”, utilizaremos el formato simple para mostrar el contenido de variables, esto es : < ?=$variable?>.

Para “interpretar” un template, primero lo leemos en memoria utilizando la función file() y luego utilizaremos una simple función a la que le pasaremos como parámetro el template y las variables que hay que reemplazar. Para muestra, basta un botón: ejemplo.html

ejemplo.php

Los datos que tenemos en un array, los mostramos basándonos en un simple template. La función mostrarTemplate toma como parámetros el contenido del template y un array asociativo con los valores a reemplazar. La función de PHP extract() se encarga de pasar estos valores al ámbito en el que se llama la función, en este caso, el ámbito de la función. Por lo que si tenemos un arreglo del tipo $a = array(“clave” => “valor”), al ejecutar extract($a), entonces pasaremos a tener una variable disponible, de nombre $variable y con “valor” como contenido. Luego, la función eval() se encarga del resto, o sea, de ejecutar todo el código (el del template) que se le pasa como parámetro.

¿Porqué no hacemos simplemente un “include”? La respuesta es muy siemple. Eficiencia. La función include implica un acceso a disco, lo cual la hace bastante “costosa” en términos de eficiencia. Así que leyendo el template una sola vez en memoria, y luego utilizándolo varias veces, hacemos un mejor uso de los recursos de nuestro server.
Continuará…

facebook Crear un foro en PHP y Mysql Part1/3twitter Crear un foro en PHP y Mysql Part1/3google Crear un foro en PHP y Mysql Part1/3diggit Crear un foro en PHP y Mysql Part1/3pinterest Crear un foro en PHP y Mysql Part1/3linkedin Crear un foro en PHP y Mysql Part1/3print Crear un foro en PHP y Mysql Part1/3email Crear un foro en PHP y Mysql Part1/3Si te gusto, comparte el articulo.

Artículos Relacionados

Agregar comentario


*

Recibe nuestro newsletter

Suscribete a nuestro newsletter y mantente informado con nuestros últimos artículos, noticias y más. Todo completamente gratis.