Cargando



Aprende a crear tu propio CMS y no morir en el intento

Completo manual para aprender a realizar tu propio CMS de calidad y bien implementado desde la bbdd y todos sus puntos vitales.


may 30 2016 11:28
Profesional

Creando archivo de configuración global del CMS

 

Primero vamos a crear nuestro directorio de trabajo, por ejemplo "cms", dentro de este crear dos directorios llamados public y setting.

  • Setting: Contiene el los archivos de configuración y el núcleo del CMS.
  • Public: Contiene el sitio web y el área de administración de los contenidos de la web.

 

Dentro de setting creamos un archivo llamado config.php donde manejaremos todos los datos de configuración global de nuestro CMS.

<?php
error_reporting( error_reporting() & ~E_NOTICE );
class Config{
  const SERVERNAME = '127.0.0.1';
  const USERNAME = 'mi_usuario';
  const PASSWORD = 'mi_clave';
  const DATABASE =  'cms_solvetic';
  const URL = 'http://localhost/cms/public/';
  const PREFIX = 'solvetic_';
  const PREFIX_PAGE = 'page_';
  const PATH_ROOT = 'cms/public/';
}
?>
  • Servername: IP donde está tu base de datos.
  • Username: Usuario de tu base de datos. Los privilegios mínimos que necesita dicho usuario son SELECT, UPDATE, DELETE, INSERT
  • Database: Nombre de la base de datos.
  • URL: Url del sitio. Cuando tu sitio web se encuentre en un servidor en internet no es necesario usar cms/public/. Ya que el directorio public sería el public_html en el hosting.
  • PREFIX: Prefijo usado para variables globales de tu sitio. Al igual que PREFIX_PAGE
  • PATH_ROOT: Esta constante la usaremos para ayudarnos en el reconocimiento de nuestro sitio localmente.
  • error_reporting: Usado para que no tengamos que PHP no nos moleste con variables que no se encuentren definidas y no tener que estar validando constantemente si la variable está definida o no.
Creamos el archivo Mysql.php para la conexión con la base de datos.
<?php
require_once('config.php');
class MySql{
 
    private $conn;
   
    public function connect(){
	  try {
	    $this->conn = new PDO("mysql:host=".Config::SERVERNAME.";dbname=".Config::DATABASE, Config::USERNAME, Config::PASSWORD);
	    $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	    return true;
	  }catch(PDOException $e){
	    echo "Connection failed: " . $e->getMessage();
	    return false;
	  } 
    }
   
    public function execute($sql){
	  try{
	    if($this->connect()){
		  return $this->conn->exec($sql);
	    }else{
		  return false;
	    }
	  }catch(PDOException $e){
	    echo $sql . "<br>" . $e->getMessage();
	  }
    }
   
    public function search($sql){
	   
	    try{
		  if($this->connect()){
		    $stmt = $this->conn->prepare($sql);
		    $stmt->execute();
		    $stmt->setFetchMode(PDO::FETCH_ASSOC);
		    return $stmt->fetchAll();
		  }else{
		    return array();
		  }
	    }catch(PDOEXception $e){
		  echo $sql ."<br />". $e->getMessage();
		  return false;
	    }
    }
   
    public function close(){
	    $this->conn = null;
    }  
}
?>
  • connect(): Realiza la conexión con la base de datos.
  • execute(): Realiza INSERT, UPDATE y DELETE en el CMS.
  • search(): Realiza consultas a las tablas de la base de datos.
  • close(): Finaliza la conexión con la base de datos.

 

Hasta ahora esto es lo que llevamos creado:

 

crear-propio-cms-3.jpg

 

Pulsa en Siguiente para ir al nuevo capítulo para conocer la realización del administrador del CMS.

 


¿Te ayudó este Tutorial?


14 Comentarios

Muchas gracias, es un tutorial que voy a leerlo con calma. Lo he visto por encima y es super completo. Saludos.

Graciasss, he sacado unas ideas jeje

Menudo curro te has pegado, yo me embarqué en la aventura de crear mi propia web sin conocer nada de nada de programación, hice una web de anuncios clasificados sin saber , la verdad , dónde me metia, si o hubiera sabido probablemente no lo habría hecho.

 

Unas cuantas veces estuve a punto de dejarlo por que veia que se me apoderaba, lo que pasa es que llegado a un punto sería tirar todo el trabajo por la borda.

 

Lo que más me ha gustado de intentarlo es lo que se aprende sobre html, php, bases de datos, diseño, etc, aunque es un trabajo muy laborioso.

 

La web la teminé este año pasado y está en marcha, no es nada del otro mundo pero ahí está, lo que pasa es que le falta un empujoncillo, a ver si saco tiempo y puedo promocionarla un poco más.

Quien quiera hecharle un vistazo se llama ZonAnuncio, y si quereis anunciaros estais invitados, es totalmente gratuita y solo para España.

 

Un Saludo y ánimo, felicidades por el trabajo.


José Villarroel
oct 23 2016 04:38

no puedo descargar el cms, me pide loguearme, pero melogueo y me vuelve a pedir que me loguee


Aldair Floréz
nov 13 2016 00:29

La descarga no funciona ¿ sera que nos podrías compartir el código ?


Pablo Santos
nov 13 2016 17:53

La descarga no funciona ¿ sera que nos podrías compartir el código ?

 

Yo pulso en el enlace cms.zip este y me deja bajarlo. ¿Que navegador usais para descargarlo? Yo uso Chrome y sin problemas...


Pablo Santos
nov 13 2016 17:55

Por cierto que no he dicho nada, impresionante tutorial. bravo solvetic.


Aldair Floréz
nov 14 2016 05:41

Amigo cada vez que voy a descargar me pide el login, me logueo de nuevo y me sigue pidiendo logueo. y nunca lo puedo descargar, serias tan amable de enviarmelo a este correo aldairflorezacuna@gmail.com


Esterlin Perez
nov 24 2016 23:24

Buenoas el tutorial esta bastante bueno gracias de ante manos me gustaria saver como ver un listado de categoria si es posibles


Jorge Bastidas
feb 07 2017 19:14

Buenas amigo, estoy realizando un manejador de contenido siguiendo las pautas de este tutorial, ya estoy finalizando las funciones y tengo problemas con la función de analizar contenido, si hay alguna forma de contactar para mostrarte mi código y ver que problema puede tener, utilizo PHP 5.6, mi correo es jorgebastidas9@gmail.com


CristianCardona
abr 04 2017 22:40

Apenas los conocí los felicito excelente tutorial


Skullkrusher314
ago 15 2017 03:21

Hola chicos, me podiran ayudar en algo?

¿Como podria hacer una funcion para borrar un post/pagina desde el editor?

Estimados, tengo el siguiente problema. Ayuda por favor

 

Warning: require_once(C:\xampp\htdocs\cms\public/../../../setting/config.php): failed to open stream: No such file or directory in C:\xampp\htdocs\cms\public\data.php on line 3

Buenas noches, felicito al autor del tutorial ya que considero que es excelente base para empezar.

Y mi pregunta es la siguiente ¿bajo que licencia distribuyen el código?

¿Puedo usar parte del código para crear un cms "más completo" y distribuirlo?

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X