Justi Martes, 7 de Octubre de 2008 a las 13.45
   Imprimir artículo
elWebmaster.com

Taller de PHP: Nuestro blog - Sistema de noticias (1)

En la clase de hoy vamos a ver puntualmente un administrador de categorías para nuestro sitio. Vamos a necesitar las mismas para que las diferentes publicaciones de nuestro blog se puedan ubicar en diferentes categorías como pueden ser: editorial, talleres, noticias, etc.

Para ello primero vamos a ver como hacer que el administrador del sitio sea únicamente para los usuarios con el tipo "admin" y luego veremos cómo hacer un ABM de categorías, es decir, Altas, Bajas Modificaciones de las mismas.

Panel de admin exclusivo para admines

Dentro de la carpeta admin ahora vamos a agregar un archivo "index.php" al que sólo podrán acceder los administradores del sitio, y el cual contendrá el menú para actualizar nuestro sitio.

admin/index.php

  1. // iniciamos session
  2.  
  3. // archivos necesarios
  4. require_once 'config.php';
  5. require_once 'conexion.php';
  6. require_once 'esUsuario.php';
  7.  
  8. // obtengo puntero de conexion con la db
  9. $dbConn = conectar();
  10.  
  11. // verificamos que no este conectado el usuario
  12. if ( !empty( $_SESSION['usuario'] ) && !empty($_SESSION['password']) ) {
  13. $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );
  14. }
  15.  
  16. // verificamos que sea un admin
  17. if ( empty($arrUsuario) || $arrUsuario['tipo'] != 'admin' ) {
  18. header( 'Location: ../index.php' );
  19. }
  20.  
  21. ?>
  22. <h1>Blog Personal</h1>
  23. Bienvenido  - <a href="../index.php?salir=true">Salir</a>
  24. <ul>
  25.     <li><a href="categorias.php">Administrar Categorías</a></li>
  26. </ul>

Al igual que en el index del home de nuestro blog, tenemos el inicio de session, el llamado a los archivos necesarios y el puntero a la conexión de base de datos (última vez que comento esto, ya que va a estar en todos nuestros archivos lo doy por sentado a partir de ahora).

Luego si tenemos session completamos un array con los datos del usuario logueado y finalmente abajo preguntamos si el array esta vacío o no es un administrador, en caso de que esta condición se cumpla, quiere decir que, o no estoy logueado o soy un usuario común, por lo que no debería tener acceso a esta sección, entonces en ese caso, redireccionamos al home de nuestro sitio.

Eso es todo lo que vamos a tener de php en nuestro index del panel de control, más abajo, en el html tenemos la bienvenida al usuario y el enlace con la opción de salir que apunta directamente al home del blog, que es donde tenemos el condicional que pregunta si tenemos la variable get salir. Siempre debe apuntar a ese archivo. Por ahora como opciones en nuestro menú agregamos el administrador que categorías que es lo que vamos a empezar a ver hoy.

Por el momento nuestro archivo de categorías va a tener lo siguiente:

admin/categorias.php

  1. // iniciamos session
  2.  
  3. // archivos necesarios
  4. require_once 'config.php';
  5. require_once 'conexion.php';
  6. require_once 'esUsuario.php';
  7.  
  8. // obtengo puntero de conexion con la db
  9. $dbConn = conectar();
  10.  
  11. // verificamos que no este conectado el usuario
  12. if ( !empty( $_SESSION['usuario'] ) &amp;&amp; !empty($_SESSION['password']) ) {
  13. $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );
  14. }
  15.  
  16. // verificamos que sea un admin
  17. if ( empty($arrUsuario) || $arrUsuario['tipo'] != 'admin' ) {
  18. header( 'Location: ../index.php' );
  19. }
  20.  
  21. // agregamos una categoria en la db
  22. // si se envio el formulario
  23. if ( !empty($_POST['submit']) ) {
  24.  
  25. // definimos las variables
  26. if ( !empty($_POST['nombre']) )     $nombre     = $_POST['nombre'];
  27.  
  28. // completamos la variable error si es necesario
  29. if ( empty($nombre) )   $error['nombre']   = 'Es obligatorio completar el nombre de la categoría';
  30.  
  31. // si no hay errores registramos al usuario
  32. if ( empty($error) ) {
  33.  
  34. // inserto los datos de registro en la db
  35. $query  = "INSERT INTO `categorias` (valor) VALUES ('$nombre')";
  36. $result = mysql_query($query, $dbConn);
  37.  
  38. header( 'Location: categorias.php?add=true' );
  39.  
  40. }
  41.  
  42. }
  43.  
  44. // traemos listado de categorias
  45. $arrCategorias = array();
  46. $query = "SELECT idCategoria, valor FROM `categorias` ORDER BY valor ASC";
  47. $resultado = mysql_query ($query, $dbConn);
  48. while ( $row = mysql_fetch_assoc ($resultado)) {
  49. array_push( $arrCategorias,$row );
  50. }
  51.  
  52. ?&gt;
  53. <h1>Blog Personal</h1>
  54. Bienvenido  - <a href="index.php">Panel de control</a> - <a href="../index.php?salir=true">Salir</a>
  55. <h2>Categorías</h2>
  56. <div style="border: 1px solid #ff8800; padding: 5px; background-color: #fdfdfd; width: 90%;">La categoría se agregó con éxito.</div>
  57. <div>
  58. <h3>Listado de Categorías</h3>
  59. <table style="border: 1px solid #cccccc; padding: 5px; width: 90%;" border="0">
  60. <tbody>
  61. <tr>
  62. <th style="background-color:#cccccc;padding:5px;">id</th>
  63. <th style="padding: 5px; width: 90%; background-color: #cccccc;">categoría</th>
  64. <th style="padding: 5px; background-color: #cccccc; width: 10%;"></th>
  65. </tr>
  66. <tr>
  67. <td style="padding:5px;"></td>
  68. <td style="padding:5px;"></td>
  69. <td style="padding:5px;"><a href="categorias.php?id=&lt;? echo $categoria['idCategoria']; ?&gt;">Editar</a> - <a href="categorias.php?del=&lt;?= $categoria['idCategoria'] ?&gt;">Borrar</a></td>
  70. </tr>
  71. </tbody></table>
  72. </div>
  73. <div>
  74. <h3 id="add">Agregar nueva categoría</h3>
  75. <form action="categorias.php" method="post"><label for="nombre">Nombre de la categoría</label>
  76.  
  77. <input name="nombre" type="text" /> <input name="submit" type="submit" value="Agregar" /> </form></div>

Al igual que como vimos en el index del panel de admin, en este caso tambien verificamos que sea un administrador el usuario logueado, o si no redireccionamos al home del blog. Esta verificación la vamos a tener a lo largo de todos nuestros archivos dentro del panel de admin.

Luego tenemos la comprobación de si se envió el formulario para agregar nuevas categorías a nuestro sitio. Las comprobaciones son muy similares a las que usamos en la registración del usuario.

Finalmente tenemos una consulta a la base de datos para mostrar todas las categorías existentes hasta el momento. Con array_push, que se encuentra dentro del while que va trayendo todos los resultados, vamos agregando los datos de la db en el array que se llama $arrCategorias.

El mismo es recorrido dentro de la tabla que se encuentra en la parte del html para mostrar los resultados.

Bueno, eso es todo por hoy, la semana que viene vemos como editar y borrar las categorías y les paso el adjunto de los archivos incluyendo el abm de categorías. Saludos.

<< CLASE ANTERIOR

CLASE SIGUIENTE >>

Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (6)

  1. Ricardo Kotik dice:

    Agrego un datito para que no les falle la carga de las paginas que aqui detalla Justi.
    Agreguen una linea al principio de cada uno de estos archivos y pongan lo siguiente:
    <?
    Esa linea lo que hace es abrir el codigo PHP.
    Muy buen tuto Justi, Felicitaciones.

  2. Edison H. dice:

    Hola amisgos de elwebmaster.com... en especial al profe justi jeje
    Bueno mi pregunta es que IDE o programa usan para editar, compilar y ejecutar el codigo php aqui expuesto, ya que e bajado el xammp, pero no viene con lo que les escribi anteriormente, me gustaria que me ayudaran sino es mucha molestia... Ah y felicitaciones por su taller, aunque recien voy por las primeras clases ya que aunque paresca de Ripley soy egresado de ingenieria de sistemas y nunca me dieron php un lenguage muy versatil, potente y lo mejor de todo gratis.. :D Creo que deberian hacer una reforma del pensum academico de mi universidad... bueno pero eso esta fuera del tema...
    esperando su pronta respuesta, un saludo a la distancia y muchos exitospara todos ustedes.
    Att. edi

  3. kp dice:

    Hola Edison H. Te comento que podes usar cualquier editor de texto plano y luego guardar tus archivos con la extension .php. Para usar el xampp existe en este mismo blog un articulo, te recomiendo que lo leas, ya que los scripts no se ejecutan asi nomas...http://www.elwebmaster.com/articulos/xampp-servidor-web-facil-de-instalar

  4. Justi dice:

    Hola Edison, lo que respondio kp esta perfecto, no se necesita ninguna ide especial para trabajar con PHP, con un notepad alcanza, de todas formas hay algunas muy potentes, una de ellas es Zend Studio para Eclipse (es paga) y sino gratuita se puede utilizar Eclipse con extensiones para PHP.

  5. karen dice:

    hola estoy recien empezando a ver tus clases y me parecen muy buenas pero tengo un pequeño problema ya intale xampp y el sqlyog tb lo tengo wamp.
    el problema es cuando quiero vizualizar en explorer al ponerle localhost no puedo vizualizar lo q hize en el php dreamweaver por favor si me pudieras ayudar exactamente donde es lo q se tiene q guardar porfa...

  6. karen dice:

    si alguien tuviera el intalador de sqlyog

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Iniciar Sesión