Mi propio CMS

evigra

New Member
Messages
244
Reaction score
3
Points
0
Hoy he decidido hacer mi propio CMS

Mi CMS llevara un poco de todo...
PHP, MySQL, AJAX, Javascript, CSS, directorios virtuales, manejo de sesiones, redimencion de imagenes, marcas de agua...

Esto es lo que yo se y espero no atorarme aunque se que pasara y espero que entre todos nos ayudemos ya que esto les servira tambien a ustedes...

Les comento todo lo que llevara porque todo eso yo lo manejo...
claro que no lo he hecho todo al mismo tiempo por tanto se que va a haber problemas en el manejo de sesiones con lo de los directorios virtuales

No quiero que vayan a desesperarse ya que no tengo nada hecho... todo lo voy a ir haciendo poco a poco y en mis tiempos libres...

espero y puedan contestar...
pq quiero la ayuda de todos...
y les digo quiero, porque la vamos a necesitar...

Espero y me digan quienes me pueden ayudar o que esten interesados
 

evigra

New Member
Messages
244
Reaction score
3
Points
0
#### Arcadio ###################################
a tu dedicatoria....

claro que no es avanzado pero iniciaremos por partes....
tienen que leerse cada unos de los post que se realicen para llevar el hilo de este proyecto...
ya que en futuros post modificaremos cosas a los archivos

iniciare esto con la creacion de directorios virtuales...
para ello necestitamos crear dos archivos

".htaccess"
"index.php"

#####################
#### .htaccess ####
#####################
Code:
Options +FollowSymLinks
RewriteEngine on
Rewriterule ^(.*)/$ ?variables=$1

#####################
#### index.php ####
#####################
PHP:
<?
	$variables=			explode("/",$_GET[variables]);
	
	$menu=				$variables[0];
	$opcion=			$variables[1];
	$contenido=			$variables[2];				
	
	if($menu!="") 		$regresar_direcctorio="../";
	if($opcion!="")		$regresar_direcctorio="../../";
	if($contenido!="")	$regresar_direcctorio="../../../";
	
	if($menu!="")		echo "<a href=\"$regresar_direcctorio"."$menu/\">$menu/</a> ";	
	if($opcion!="")		echo "<a href=\"$regresar_direcctorio"."$menu/$opcion/\">$opcion/</a> ";		
	if($contenido!="")	echo "<a href=\"$regresar_direcctorio"."$menu/$opcion/$contenido/\">$contenido/</a> ";		
			
	echo "<br><br>Directorios Virtuales funcionando";
?>

POr lo pronto ya tenemos la creacion de directorios virtuales...
para verificarlo abrimos una url asi

www.mipagina.x10hosting.com/menu/opcion/contenido/
 

evigra

New Member
Messages
244
Reaction score
3
Points
0
en el post anterior observamos que ya funcionaron los directorios virtuales...
en este agremos los siguientes puntos
1.- agregar la bd
2.- modificacion del "index.php"
3.- agregar el archivo "funciones.php"
4.- agregar el archivo "contenido.php"
5.- agregar el archivo "cuerpo_contenido.php"
#### agregar tablas a bd ####
aqui estamos agregando tablas unos registros de ejemplo para la bd...
recuerden que este es codigo SQL
Code:
CREATE TABLE `menu` (
`id_menu` SMALLINT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nombre_menu` VARCHAR( 50 ) NOT NULL ,
`f_i_menu` DATE NOT NULL ,
`orden_menu` SMALLINT( 2 ) NOT NULL ,
`nivel_menu` SMALLINT( 1 ) NOT NULL 
) ENGINE = MYISAM ;
INSERT INTO `menu` VALUES ('1', 'noticias', '2009-03-08', '1', '10');
INSERT INTO `menu` VALUES ('2', 'deportes', '2009-03-08', '2', '10');

CREATE TABLE `opcion` (
`id_opcion` SMALLINT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_menu` SMALLINT( 2 ) NOT NULL ,
`nombre_opcion` VARCHAR( 50 ) NOT NULL ,
`f_i_opcion` DATE NOT NULL ,
`orden_opcion` SMALLINT( 2 ) NOT NULL ,
`nivel_opcion` VARCHAR( 2 ) NOT NULL ,
INDEX ( `id_menu` ) 
) ENGINE = MYISAM ;
INSERT INTO `opcion` VALUES ('1', '1', 'Policiacas', '2009-03-08', '1', '10');
INSERT INTO `opcion` VALUES ('2', '1', 'Politicas', '2009-03-08', '2', '10');
INSERT INTO `opcion` VALUES ('3', '2', 'Fut-bol', '2009-03-08', '1', '10');
INSERT INTO `opcion` VALUES ('4', '2', 'Natacion', '2009-03-08', '2', '10');

CREATE TABLE `link` (
`id_link` SMALLINT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_opcion` SMALLINT( 2 ) NOT NULL ,
`nombre_link` VARCHAR( 50 ) NOT NULL ,
`direccion_link` VARCHAR( 50 ) NOT NULL ,
`f_i_link` DATE NOT NULL ,
`orden_link` SMALLINT( 2 ) NOT NULL ,
`nivel_link` VARCHAR( 2 ) NOT NULL ,
INDEX ( `id_opcion` ) 
) ENGINE = MYISAM ;
INSERT INTO `link` VALUES ('1', '3', 'El mejor nadador', 'deportes/natacion/', '2009-03-08', '1', '10');
INSERT INTO `link` VALUES ('2', '4', 'El mejor futbolista', 'deportes/fut-bol/', '2009-03-08', '1', '10');

CREATE TABLE `contenido` (
`id_contenido` BIGINT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_opcion` SMALLINT( 2 ) NOT NULL ,
`id_usuario` BIGINT( 11 ) NOT NULL ,
`nombre_contenido` VARCHAR( 200 ) NOT NULL ,
`introduccion_contenido` TEXT NOT NULL ,
`informacion_contenido` TEXT NOT NULL ,
`comentarios_contenido` BOOL NOT NULL ,
`visitas_contenido` INT( 9 ) NOT NULL ,
`f_i_contenido` DATE NOT NULL ,
`nivel_contenido` SMALLINT( 2 ) NOT NULL ,
`ip_contenido` VARCHAR( 15 ) NOT NULL ,
INDEX ( `id_opcion` , `id_usuario` ) 
) ENGINE = MYISAM ;
INSERT INTO `contenido` VALUES ('1', '4', '1', 'el mejor nadador', 'esta es la introduccion del contenido', 'esta es la informacion del contenido', '1', '0', '2009-03-08', '10', '198.168.1.84');
INSERT INTO `contenido` VALUES ('2', '4', '1', 'el mejor nadador 2', 'esta es la introduccion del contenido2', 'esta es la informacion del contenido"', '1', '0', '2009-03-08', '10', '198.168.1.84');

CREATE TABLE `foto` (
`id_foto` BIGINT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_clave` SMALLINT( 2 ) NOT NULL ,
`alto_foto` MEDIUMINT( 5 ) NOT NULL ,
`ancho_foto` MEDIUMINT( 5 ) NOT NULL ,
`grande_foto` LONGBLOB NOT NULL ,
`chica_foto` BLOB NOT NULL ,
`visitas_foto` INT( 9 ) NOT NULL ,
`tipo_foto` SMALLINT( 1 ) NOT NULL ,
`comentarios_foto` BOOL NOT NULL 
) ENGINE = MYISAM ;

CREATE TABLE `mensaje` (
`id_mensaje` BIGINT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_clave` BIGINT( 11 ) NOT NULL ,
`id_usuario` BIGINT( 11 ) NOT NULL ,
`texto_mensaje` TEXT NOT NULL ,
`f_i_mensaje` DATE NOT NULL ,
`tipo_mensaje` SMALLINT( 1 ) NOT NULL ,
`hora_mensaje` TIME NOT NULL ,
`ip_mensaje` VARCHAR( 15 ) NOT NULL ,
INDEX ( `id_clave` , `id_usuario` ) 
) ENGINE = MYISAM ;

CREATE TABLE `usuario` (
`id_usuario` BIGINT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nombre_usuario` VARCHAR( 200 ) NOT NULL ,
`nick_usuario` VARCHAR( 200 ) NOT NULL ,
`pass_usuario` VARCHAR( 30 ) NOT NULL ,
`correo_usuario` VARCHAR( 100 ) NOT NULL ,
`f_i_usuario` DATE NOT NULL ,
`nacimiento_usuario` DATE NOT NULL ,
`sexo_usuario` BOOL NOT NULL ,
`visitas_usuario` INT( 9 ) NOT NULL ,
`nivel_usuario` SMALLINT( 2 ) NOT NULL ,
`comentarios_usuario` BOOL NOT NULL 
) ENGINE = MYISAM ;
INSERT INTO `usuario` VALUES (
'1', 'Eduardo Vizcaino Granados', 'evigra', '300885', 'evigra@hotmail.com', '2009-03-08', '1985-08-30', '1', '0', '1', '1'
);
#### modificacion del "index.php" ####
Code:
<?
	include("funciones.php");
	$variables=			explode("/",$_GET[variables]);
	
	$menu=				$variables[0];
	$opcion=			$variables[1];
	$contenido=			$variables[2];				
	
	if($menu!="")		
	{
		$regresar_direcctorio="../";
		$titulo_pagina.=" :: $menu";
	}
	if($opcion!="")	
	{
		$regresar_direcctorio="../../";
		$titulo_pagina.=" :: $opcion";
	}
	if($contenido!="")	
	{
		$regresar_direcctorio="../../../";
		$titulo_pagina.=" :: $contenido";
	}			
	include("contenido.php");

?>
#### agregando "funciones.php" ####
Code:
<?
		$hospedaje_mysql   ="localhost";                      // Host, nombre del servidor o IP del servidor Mysql.
		$usuario_mysql     ="root";                           // Usuario de Mysql
		$contrasena_mysql  ="300885";                        // contraseña de Mysql
		$basededatos_mysql ="cms";    
	
		$db_conexion= @mysql_connect("$hospedaje_mysql", "$usuario_mysql", "$contrasena_mysql");
		@mysql_select_db("$basededatos_mysql") or die( "<font size=7>ERROR</font><br>Disculpa las molestias, hemos tenido un error dentro de nuestros servidores<br>por favor vuelve a intentar en 5 minutos" );
#### agregando "contenido.php" ####
Code:
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
		<title><? 	echo "$titulo_pagina "; ?>		
		</title>
		<script language="javascript" src="<?   echo $regresar_direcctorio ?>libreriaAjax.js"></script>
		<link rel="stylesheet" href="<?   echo $regresar_direcctorio ?>estilo.css" type="text/css">
	</head>
	<body>	
		<table	border="1"  width="100%">
			<tr>
				<td>Cabecera</td>
			</tr>
			<tr>
				<td>
<?				
					if($menu!="")		echo "<a href=\"$regresar_direcctorio"."$menu/\">$menu/</a> ";	
					if($opcion!="")		echo "<a href=\"$regresar_direcctorio"."$menu/$opcion/\">$opcion/</a> ";		
					if($contenido!="")	echo "<a href=\"$regresar_direcctorio"."$menu/$opcion/$contenido/\">$contenido/</a> ";		
?>				
					&nbsp;
				</td>
			</tr>
			<tr>
				<td>					
					<table border="1" width="100%" >
						<tr>
							<!-- MENU_IZQUIERDO -->
							<td width="250">&nbsp;
							
							</td>
							<!-- FIN MENU_IZQUIERDO -->
							<!-- CUERPO CONTENIDO -->
							<td>
<?
								include("cuerpo_contenido.php");
?>							
							&nbsp;							
							</td>
							<!-- CUERPO CONTENIDO -->
						</tr>
					</table>
				</td>
			</tr>
			<tr>
				<td>pie</td>
			</tr>
		</table>	
	</body>
</html>
#### agregando "cuerpo_contenido.php" ####
Code:
<?
	if($regresar_direcctorio=="../")
	{
		$comando_sql="
				SELECT nombre_opcion as subtitulo  
				FROM menu NATURAL JOIN opcion 
				WHERE nombre_menu LIKE '$menu'
		";									
		$titulo_tabla_contenido=			"$menu";
		$subtitulo_tabla_contenido=			"Opciones a elegir";
		$ruta_subtitulo_tabla_contenido=	"$regresar_direcctorio"."$menu/";
	}		
	if($regresar_direcctorio=="../../")
	{
		$comando_sql="
				SELECT nombre_contenido as subtitulo, visitas_contenido as visitas  
				FROM contenido NATURAL JOIN opcion 
				WHERE nombre_opcion LIKE '$opcion'
		";									
		$titulo_tabla_contenido="$opcion";
		$subtitulo_tabla_contenido="Contenidos encontrados";
		$ruta_subtitulo_tabla_contenido=	"$regresar_direcctorio"."$menu/$opcion";
		
		$comando_sql_secundario="
				SELECT nombre_link, direccion_link
				FROM link NATURAL JOIN opcion
				WHERE nombre_opcion LIKE '$opcion'
		";
		$respuesta_secundaria=mysql_query($comando_sql_secundario);
		while($datos=mysql_fetch_array($respuesta_secundaria))									
		{
			$link_tabla_contenido.="<a href=\"$regresar_direcctorio"."$datos[direccion_link]\">|$datos[nombre_link]|</a>
			";
		}		
		if($link_tabla_contenido!="")$link_tabla_contenido.="<br>&nbsp;";							
	}										
	echo "<table border=\"1\" width=\"100%\">";
	if($regresar_direcctorio!="../../../" AND $regresar_direcctorio!="")
	{
		echo "											
					<tr><td colspan=\"3\" class=\"\">$link_tabla_contenido</td></tr>

					<tr><td colspan=\"3\" class=\"\">$titulo_tabla_contenido&nbsp;</td></tr>
					<tr>
						<td >$subtitulo_tabla_contenido &nbsp;</td>
						<td width=\"100\">Visitas &nbsp;</td>
						<td width=\"100\">Mensajes &nbsp;</td>
					</tr>
		";			
	}
	else
	{
		$comando_sql="
				SELECT nombre_contenido, nick_usuario, introduccion_contenido, informacion_contenido, f_i_contenido  
				FROM contenido NATURAL JOIN usuario 
				WHERE nombre_contenido LIKE '$contenido'
		";																	
	}
	$respuesta=mysql_query($comando_sql);
	while($datos=mysql_fetch_array($respuesta))
	{
		if($regresar_direcctorio!="../../../")
		{								
			echo "								
					<tr>
						<td><a href=\"$datos[subtitulo]/\">$datos[subtitulo]</a>  &nbsp;</td>
						<td width=\"100\">$datos[visitas]&nbsp;</td>
						<td width=\"100\">&nbsp;</td>
					</tr>
			";										
		}								
		else
		{
			echo "
					<tr><td>
						<font class=\"titulo_contenido\">$datos[nombre_contenido]<font><br>
						<font class=\"nick_contenido\">$datos[f_i_contenido]::$datos[nick_usuario]<font><br><br>
						$datos[introduccion_contenido]<br><br>
						$datos[informacion_contenido]												
					</td></tr>
			";
		}
	}		
	echo "</table>";
?>
 

evigra

New Member
Messages
244
Reaction score
3
Points
0
en el post anterior
1.- agregamos la bd
2.- modificamos del "index.php"
3.- agregamos el archivo "funciones.php"
4.- agregamos el archivo "contenido.php"
5.- agregamos el archivo "cuerpo_contenido.php"

se hiso esto para ver que los directorios virtuales funcionaran con nuestra bd

para comprobar que esta funcionando

entren en mipagina.x10hosting.com/deportes/
mipagina cambienla por la direccion que ustedes tienen

deportes/ es el directorio virtual que se encuentra en la bd

Diganme si hay dudas...
porque no quiero estar perdiedo tiempo si nadie me va a hacer caso...
porque ya publique en el de directorios virtuales y nadie contesto...
nadie contesto siendo que era una sola cosa...
aqui son todas juntas...
 
Last edited:

papichulo_carioco

Community Advocate
Community Support
Messages
1,400
Reaction score
12
Points
0
A ver evigra, a mi me interesa el tema aunque no entiendo casi que nada. Lo primero quisa seria desir que programas se nesesita pa haser to eso, jejeje y pa que sirve
 

evigra

New Member
Messages
244
Reaction score
3
Points
0
muy bien...
de hecho esto seria un tuto un poco mas avanzado...
pero tratare de resolver todas tus dudas...

bien...
para esto necesitamos un servidor (local o x10)
yo trato casi siempre de hacerlo local...
y unicamente copio los archivos a x10

servidores locales
1.- xampp (windows)
2.- lamp (linux)
3.- appserv (windows)

para los codigos un simple block de notas nos ayudaria...
aunque pues tambien esta frontpage, dreamweaver

para instalar las bd, ejecutas el codigo dentro del phpmyadmin

les recuerdo que los que vayas a estar al pendiente de este tuto...
lean cada post... ya que habra archivos que estare modificando...
primero ago algo sencillo y lo modifico uniendolo a otras cosas...


lo ago asi para que vayan viendo las cosas por partes tratando de desglosarles el codigo...
porque si se los dejo todo el codigo de un jalon nomas van a utilizarlo como ya utilizan otros CMS

y pues asi no tiene caso que me presten atencion...
esto es con la finalidad que entiendan el codigo y puedan hacer la modificaciones que ustedes requieran al cms y por tanto se els facilite

a este cms le voy a dar la forma de este foro...
la logica de programacion que tiene...

es mas...

cuando suban los archivos a x10 diganme sus paginas por si les salen errores ayudales mas facilmente

estos arhivos pueden ir en raiz o que creen una nueva carpeta no hay problema
los archivos

todos van en el mismo lugar...

ejemplo:
mi_pagina.x10hosting.com
- .htaccess
- index.php
- funciones.php
- contenido.php
- cuerpo_contenido.php

yo los voy a manejar como ejemplo en raiz...
 
Last edited:

papichulo_carioco

Community Advocate
Community Support
Messages
1,400
Reaction score
12
Points
0
ok, evigra, en mi laptop tengo el appserv, que es donde hago las pruebas para mi foro. Pero me surge una duda, y es que en x10 creo que solo es posible crear una cuenta y no recuerdo si 2 o 3 db cion lo que mi foro ya ocupa todo lo permitido si son 2 db (una la que x10 configura por defecto y otra la que yo hise par el foro mas una tercera, creo para las imagenes siguiendio una de las opsiones del cpanel);). Pero en fin, i´ré probando en local y luego veré si sustituyo el CMS que utiliso (phpbb3). Un saludo y grasias
Edit:
en el post anterior
1.- agregamos la bd
2.- modificamos del "index.php"
3.- agregamos el archivo "funciones.php"
4.- agregamos el archivo "contenido.php"
5.- agregamos el archivo "cuerpo_contenido.php"

se hiso esto para ver que los directorios virtuales funcionaran con nuestra bd

para comprobar que esta funcionando

entren en mipagina.x10hosting.com/deportes/
mipagina cambienla por la direccion que ustedes tienen

deportes/ es el directorio virtual que se encuentra en la bd

Diganme si hay dudas...
porque no quiero estar perdiedo tiempo si nadie me va a hacer caso...
porque ya publique en el de directorios virtuales y nadie contesto...
nadie contesto siendo que era una sola cosa...
aqui son todas juntas...

pues el primer post me funsiono bien (o eso creo) ya que me salio la frase "Directorios virtuales funcionando". Peroen la segunada parte creo quefunsiona a medias ya que me sale una tabla precedida de los caracteres () y con una fila que pone cabecera, despues una fila en blanco, despues una fila con dos celdas y en la segunda (la más grande) se incluyen los signos " " Por último otra fila con la palabra "pie".
Un saludo
 
Last edited:

evigra

New Member
Messages
244
Reaction score
3
Points
0
No recuerdo bien...
Pero creo que alguna vez appserv me causo problemas con el ".htaccess"
Yo tengo instalado el XAMPP y me funciona a la perfeccion...

mmm instalaste las tablas en la bd???

respecto a lo que me dices, puedes ejecutar las tablas en cualquier bd...
claro cambiando la configuracion en "funciones.php" por las que corresponden a tu servidor...
en la noche que llegue a mi casa...
agregare unos nuevos archivos y las modificaciones que hice a los archivos anteriores...
tambien subiere a mi servidor los archivos
creando una nueva carpeta en donde podran ir viendo los avances y como se verian estas cosas...

en la noche agrego lo nuevo y les paso la direccion de como va quedando esto
 

papichulo_carioco

Community Advocate
Community Support
Messages
1,400
Reaction score
12
Points
0
No recuerdo bien...
Pero creo que alguna vez appserv me causo problemas con el ".htaccess"
Yo tengo instalado el XAMPP y me funciona a la perfeccion...

mmm instalaste las tablas en la bd???

respecto a lo que me dices, puedes ejecutar las tablas en cualquier bd...
claro cambiando la configuracion en "funciones.php" por las que corresponden a tu servidor...
en la noche que llegue a mi casa...
agregare unos nuevos archivos y las modificaciones que hice a los archivos anteriores...
tambien subiere a mi servidor los archivos
creando una nueva carpeta en donde podran ir viendo los avances y como se verian estas cosas...

en la noche agrego lo nuevo y les paso la direccion de como va quedando esto
si, cree la base de datos y ejecute la consulta saliendome el tipico mensaje de que las tablas se crearon con exito. No obstante volveré a hacerlo. Un saludo

EDITO:
Lo probé todo otra ves y sigue lo mismo. Pongo la ruta localhost/proyecto/deportes y me lanza error 404. Si quito lo de deportes me sale lo que te dije. Aqi te pongo una imagen
sshot1.png
 
Last edited:

evigra

New Member
Messages
244
Reaction score
3
Points
0
me equivoque en la instalacion de las tablas
 

Attachments

  • cms.zip
    6.8 KB · Views: 19
Last edited:

papichulo_carioco

Community Advocate
Community Support
Messages
1,400
Reaction score
12
Points
0
ok, entonces deduzco que lo que hay que hacer es copiar esos archivos en la raiz. ¿Me equivoco?. Gracias ;)
Edit:
He copiado los archivos y modificado los datos para mi localhost, pero me da error y no se conesta
 
Last edited:

evigra

New Member
Messages
244
Reaction score
3
Points
0
Disculpame hermano...
ago puras dagas...

me estaba peleando por aca con la programacion de esto...

ya cale esto en mi servidor x10

www.dtur.x10hosting.com/cms/

en el sistema funciona
1.- Creador de archivo de configuracion del servidor
2.- Instalacion de las tablas en la base de datos
3.- Instalacion de informacion de ejemplo en las tablas
4.- Los direcciorios virtuales
5.- Registro de usuarios
6.- Sesiones de usuarios
7.- CSS

Claro que estos archivos todavia estan en modificaciones
 

Attachments

  • cms.rar
    14 KB · Views: 23

papichulo_carioco

Community Advocate
Community Support
Messages
1,400
Reaction score
12
Points
0
nah, chico, lo probare a ver como me sale. Por sierto se ve requetebien la pagina ;)
Edit:
weno, pues ni flores. no furula en el local, de toas formas dejalo, que estoy mu verde y te voy a marear, jejeje. Saludos ;)
 
Last edited:

evigra

New Member
Messages
244
Reaction score
3
Points
0
En el localhost va a ser por el appserv...
yo estoy utilizanzo el xampp...

Y ya lo instalaste en x10 ????

Instalalo para ver como vas en x10...
 

papichulo_carioco

Community Advocate
Community Support
Messages
1,400
Reaction score
12
Points
0
en x10 no me atrevo para no estropear el foro en el qu estoy trabajando. Vere de instalar xamp en maquina virtual o de tomar otra db en x10. Grax ;)
Edit:
Al fin! lo consegui, jajaja, ya lo tengo instalao en x10, me sale igual que a ti, exactamente, jejeje (Ya ire viendo la manera de modificar los datos y el css, jajaja
;)
 
Last edited:

evigra

New Member
Messages
244
Reaction score
3
Points
0
ya que este terminado totalmente le voy a poner sus respectivas explicaciones
 

evigra

New Member
Messages
244
Reaction score
3
Points
0
yo digo que en unos 20 dias ya esta este proyecto totalmente terminado...

Abra algun diseñador...
que me pueda hechar la mano????
 
Top