Buenas a todos, estoy desarrollando un panel de administración para web's(Backend o como gusten llamarlo). Esta sujeto a criticas constructivas o no, todo dato que aporten será bienvenido.
La idea original es crear un panel de administración con el cual podamos manejar nuestra web, es decir, editar articulos, crear articulos, crear categorias y subcategorias, subir contenido Y LO MÁS IMPORTANTE: "Que el diseño de la web a vistas de los usuarios visitantes sea basandose en una estructura o elementos marcados para llevar un diseño estandar"
El proyecto lo estoy realizando en:
SERVIDOR: PHP 4 o superior + MySQL
CLIENTE: HTML5+CSS3+JS(ajax,jquery).
Lo primero que realize fue analizar las necesidades y generar las tablas de la base de datos.
Empece por la base de datos, por que como he comentado en más de una ocación siempre la casa se empieza a construir por los simientos, y en el desarrollo de software similares a este los simientos son la Base de Datos
Tras estar pensando deduje que las tablas serán las siguientes:
Descripcion de cada tabla:
Tabla Configuración. Se me olvido cambiar el nombre en la cabecera de la tabla xls
Despues de tanto pensarme que estructura de ficheros utilizar para la web y ver muchas estructuras de ficheros navegando, se me ocurrió hacerlo a la vieja usansa.
Despues de tanta lógica y organización empiezo a mirar código.
Para empezar se me ocurre mirar como conectarme a la base de datos, para ello tengo la siguiente clase que tendría que cambiar ciertos metodos o nombres de metodos y mejorar la gestion de errores.
Donde esta clase sería el fichero:
El fichero funciones_standar.php contendrá todas las funciones comunes que podrán ser utilizada en toda la web. Como la obtencion de todos los articulos, obtener las categorias y subcategorias.
La carpeta idiomas contendrá un fichero .php por cada idioma en que se de soporte al panel de administración con una estructura similar a la siguiente:
espanol.php
ingles.php
En resumen sería la traduccion para cada idioma soportado para mostrar cada mensaje o accion a realizar en el panel de administración.
Pd: a medida que vaya avansando ire actualizando el post. Si tienen alguna sugerencia o corrección a cualquier cosa que realice podrían indicarlo en el hilo del tema y será añadido al cms_Admin open source
La idea original es crear un panel de administración con el cual podamos manejar nuestra web, es decir, editar articulos, crear articulos, crear categorias y subcategorias, subir contenido Y LO MÁS IMPORTANTE: "Que el diseño de la web a vistas de los usuarios visitantes sea basandose en una estructura o elementos marcados para llevar un diseño estandar"
El proyecto lo estoy realizando en:
SERVIDOR: PHP 4 o superior + MySQL
CLIENTE: HTML5+CSS3+JS(ajax,jquery).
Lo primero que realize fue analizar las necesidades y generar las tablas de la base de datos.
Empece por la base de datos, por que como he comentado en más de una ocación siempre la casa se empieza a construir por los simientos, y en el desarrollo de software similares a este los simientos son la Base de Datos
Tras estar pensando deduje que las tablas serán las siguientes:
Descripcion de cada tabla:
Tabla Configuración. Se me olvido cambiar el nombre en la cabecera de la tabla xls
Despues de tanto pensarme que estructura de ficheros utilizar para la web y ver muchas estructuras de ficheros navegando, se me ocurrió hacerlo a la vieja usansa.
Despues de tanta lógica y organización empiezo a mirar código.
Para empezar se me ocurre mirar como conectarme a la base de datos, para ello tengo la siguiente clase que tendría que cambiar ciertos metodos o nombres de metodos y mejorar la gestion de errores.
Donde esta clase sería el fichero:
Cita:
/panel/lib/conexion.php |
Código:
<?php
/*
Created by cuban 22/01/2013 ver: 0.1b
Modo de uso:
$consulta2 = $cn->Mostrar_Consulta("campo1,campo2,campo3","nombre_tabla","campo1=:campo1",array(":campo1"=>"hit's"));
//Retorna un tipo integer
$consulta2 = $cn->Mostrar_Consulta("*","nombre_tabla","campo1=:campo1",array(":campo1"=>"hit's"));
//Retorna un array asociativo, si existe un error retorna null
$consulta2 = $cn->Mostrar_Consulta("*","nombre_tabla",null,null);
//Retorna un array asociativo, si existe un error retorna null
$cn->get_error();//Para ver el error
//Actualizar un campo
$cn->Actualizar_Campos($tabla,$campos,$camposASOC,$values,$where,$WhereValues) {
$cn->Actualizar_Campos("Nombre_Tabla","campo1,campo2,campo3",":campo1,:campo2,:campo3","valorcampo1,valorc2,vc3","campo1=:campo1",array(":campo1"=>"hit's"))
$cn->Actualizar_Campos("Nombre_Tabla","campo1,campo2,campo3",":campo1,:campo2,:campo3","valorcampo1,valorc2,vc3",null,null)
//Eliminar registros
$cn->Elminar_Registros("Nomre_Tabla","campo1=:campo1",array(':campo1'=>"hit's"))
$cn->Elminar_Registros("Nomre_Tabla",null,null)
*/
$cn = new db("localhost",3306,"admin_caybeach","root","5432");
$consulta1 = $cn->num_rows("SELECT * FROM cms_idiomas");
$consulta2 = $cn->Mostrar_Consulta("*","cms_idiomas","id=:id",array(':id'=>"es"));
print_r($consulta2);
class db {
public $errores=array();
protected $connection = null;
public function __construct($hostname,$port,$dbname,$username,$password) {
#Creando la conexión
try {
# Estableciendo la conexión con MySQL mediante PDO
$this->connection = new PDO("mysql:dbname=$dbname;host=$hostname;port=$port", $username, $password);
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$this->connection = null;
$error=array('date("Y-m-d H:i:s")'=>"".$e->getMessage());
$this->errores = array_merge($error, $this->errores);
die($e->getMessage());
}
}
public function num_rows($query) {
#Obtener el numero de filas en la consulta.
# Preparando para ejecutar la consulta.
try {
$stmt = $this->connection->prepare($query);
$stmt->execute();
return $stmt->rowCount();# Retornando el nº de filas
}
} catch (PDOException $e) {
$error=array('date("Y-m-d H:i:s")'=>"".$e->getMessage());
$this->errores = array_merge($error, $this->errores);
return -1;
}
}
public function Insertar($campos,$camposASOC$tabla,$where,$values) {
# Mostrar datos de una tabla.
try {
#Preparando la consulta
$stmt = $this->connection->prepare("INSERT into $tabla ($campos) VALUES($camposASOC)");
$stmt->execute($values);
return true;
} catch (PDOException $e) {
$error=array('date("Y-m-d H:i:s")'=>"".$e->getMessage());
$this->errores = array_merge($error, $this->errores);
return false;
}
}
public function Mostrar_Consulta($campos,$tabla,$where,$values) {
# Mostrar datos de una tabla.
try {
if ($where==null) {#El $where tendrá valor null si no se se requiere
#Preparando la consulta
$stmt = $this->connection->prepare("SELECT $campos FROM $tabla");
$stmt->execute();
} else {
$stmt = $this->connection->prepare("SELECT $campos FROM $tabla WHERE $where");
$stmt->execute($values);
}
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$error=array('date("Y-m-d H:i:s")'=>"".$e->getMessage());
$this->errores = array_merge($error, $this->errores);
return null;
}
}
public function Actualizar_Campos($tabla,$campos,$where,$values) {
try {
if ($where==null) {#El $where tendrá valor null si no se se requiere
$stmt = $this->connection->prepare("UPDATE $tabla SET $campos ");
$stmt->execute();
} else {
$stmt = $this->connection->prepare("UPDATE $tabla SET $campos WHERE $where");
$stmt->execute($values);
}
return true;
} catch (PDOException $e) {
$error=array('date("Y-m-d H:i:s")'=>"".$e->getMessage());
$this->errores = array_merge($error, $this->errores);
return false;
}
}
public function Elminar_Registros($tabla,$where,$values) {
try {
if ($where==null) {#El $where tendrá valor null si no se se requiere
$stmt = $this->connection->prepare("DELETE FROM $tabla");
$stmt->execute();
} else {
$stmt = $this->connection->prepare("DELETE FROM $tabla WHERE $where");
$stmt->execute($values);
}
return true;
} catch (PDOException $e) {
$error=array('date("Y-m-d H:i:s")'=>"".$e->getMessage());
$this->errores = array_merge($error, $this->errores);
return false;
}
}
# Mostrando Error. Display error
public function get_error() {
$this->connection->errorInfo();
}
public function getError($var) {
if ($var=='log') {
return $this->error;
} else {
return end($this->error);
}
}
# Cerrando la conexión con la base de edatos. Closes the database connection when object is destroyed.
public function __destruct() {
$this->connection = null;
}
}
?>
Cita:
/panel/lib/funciones_standar.php |
Cita:
/panel/idiomas/¿? |
Código:
<?php
define ('BIENVENIDO','Buenas usuario: &usuario')
?>
Código:
<?php
define ('BIENVENIDO','Welcome user: &usuario')
?>
Pd: a medida que vaya avansando ire actualizando el post. Si tienen alguna sugerencia o corrección a cualquier cosa que realice podrían indicarlo en el hilo del tema y será añadido al cms_Admin open source