Creando módulo de configuración del CMS
Vamos a empezar a guardar información en nuestra base de datos. Empezamos creando un nuevo archivo llamado page-configuracion.php en el directorio admin. El código sería el siguiente:
<?php include 'header.php'; ?> <form class="pure-form pure-form-stacked" action="resultado_configuracion.php" method="post"> <fieldset> <legend>Configuración</legend> <label for="title">Titulo web</label> <input name="title" type="text" placeholder="Titulo" value="" class="pure-input-1"> <label for="address">Dirección</label> <input name="address" type="text" placeholder="Dirección" value="" class="pure-input-1"> <label for="geolocation">Geolocalización</label> <input name="geolocation" type="text" placeholder="latitud,longitud" value="" class="pure-input-1"> <button type="submit" class="pure-button pure-button-primary">Guardar</button> </fieldset> </form> <?php include 'footer.php'; ?>También creamos otro archivo llamado resultado_configuracion.php quien estará encargado de recibir la información del formulario que tenemos en page-configuracion.php, luego guardar dicha información a la base de datos e informar si todo fue guardado exitosamente o si nos generó error, dicho mensaje será visualizado en el archivo page-respuesta.php.
Código resultado_configuracion.php:
<?php $path = dirname(__FILE__); require_once( $path . '/../../setting/config.php'); require_once( $path . '/../../setting/mysql.php'); $mysql = new Mysql(); $sql = <<<SQL SELECT * FROM configuracion LIMIT 1 SQL; $res = $mysql->search($sql); //Vars $title = $_POST['title']; $address = $_POST['address']; $geolocation = $_POST['geolocation']; if( count($res) > 0 ){ $sql = <<<SQL UPDATE configuracion SET titulo = '$title' , direccion = '$address', geolocalizacion = '$geolocation' SQL; }else{ $sql = <<<SQL INSERT INTO configuracion (titulo, direccion, geolocalizacion) VALUES ('$title' ,'$address', '$geolocation') SQL; } $response = ( $mysql->execute($sql) ) ? 'Guardado exitoso!' : 'Error al guardar configuración.'; header("Location: " . Config::URL . "admin/page-respuesta.php?response=$response"); ?>Código de page-respuesta.php
<?php include 'header.php' ?> <table class="pure-table"> <tr> <td> <h4><?= $_GET['response'] ?></h4> </td> </tr> <tr> <td> <a href="<?= Config::URL.'admin' ?>" class="pure-button pure-button-primary">Regresar al menú</a> </td> </tr> </table> <?php include 'footer.php' ?>Hagamos prueba entrando desde el menú de nuestro administrador a la opción Configuración, escribir y guardar los datos y revisamos en la tabla configuracion de la en la base de datos. Debería salirnos lo siguiente.
Entramos nuevamente a la opción de configuración en el CMS, debemos encontrarnos que no carga la información que acabamos de guardar. Ahora lo que debemos hacer es cargar esa información en nuestro formulario. Editamos los archivos data.php y page-configuracion.php
Nuevo código en data.php
function cargar_datos_configuracion(){ $mysql = new Mysql(); $sql = <<<SQL SELECT * FROM configuracion LIMIT 1 SQL; $res = $mysql->search($sql); $res = $res[0]; return $res; }Page-configuracion.php queda de la siguiente forma:
<?php include 'header.php'; ?> <?php $res = cargar_datos_configuracion(); ?> <form class="pure-form pure-form-stacked" action="resultado_configuracion.php" method="post"> <fieldset> <legend>Configuración</legend> <label for="title">Titulo web</label> <input name="title" type="text" placeholder="Titulo" value="<?= $res['titulo'] ?>" class="pure-input-1"> <label for="address">Dirección</label> <input name="address" type="text" placeholder="Dirección" value="<?= $res['direccion'] ?>" class="pure-input-1"> <label for="geolocation">Geolocalización</label> <input name="geolocation" type="text" placeholder="latitud,longitud" value="<?= $res['geolocalizacion'] ?>" class="pure-input-1"> <button type="submit" class="pure-button pure-button-primary">Guardar</button> </fieldset> </form> <?php include 'footer.php'; ?>Ahora si refrescamos nuevamente la página de configuración debe salirnos la información que tenemos guardada en base de datos.
Page-configuracion.php queda de la siguiente forma.
<?php include 'header.php'; ?> <?php $res = cargar_datos_configuracion(); ?> <form class="pure-form pure-form-stacked" action="resultado_configuracion.php" method="post"> <fieldset> <legend>Configuración</legend> <label for="title">Titulo web</label> <input name="title" type="text" placeholder="Titulo" value="<?= $res['titulo'] ?>" class="pure-input-1"> <label for="address">Dirección</label> <input name="address" type="text" placeholder="Dirección" value="<?= $res['direccion'] ?>" class="pure-input-1"> <label for="geolocation">Geolocalización</label> <input name="geolocation" type="text" placeholder="latitud,longitud" value="<?= $res['geolocalizacion'] ?>" class="pure-input-1"> <button type="submit" class="pure-button pure-button-primary">Guardar</button> </fieldset> </form> <?php include 'footer.php'; ?>Ahora si refrescamos nuevamente la página de configuración debe salirnos la información que tenemos guardada en base de datos.
Muchas gracias, es un tutorial que voy a leerlo con calma. Lo he visto por encima y es super completo. Saludos.