Comunidad de diseño web y desarrollo en internet online

Quiero hacer secciones administrables

Citar            
MensajeEscrito el 03 Jun 2011 04:37 am
Hola amigos :D

He oberservado que en los CMS al crear una seccion te genera una URL por decirlo asi donde te asigna un id de la seccion llamese

123.html
456.html
789.html

y donde al diseño o template es unico para todas las secciones.

Espero no sean tan complicado hacer, supongo que genera un id cualquier pero quien se lo asigna?

Gracias :crap:

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

firefox
Citar            
MensajeEscrito el 03 Jun 2011 03:06 pm
la "id"(identificador) es generalmente generada por una base de datos para evitar sobreescritura de datos, o siguiendo algun algoritmo de sucesion unico, como ejemplo te pongo un script que tenia guardado por ahi haber si te orienta un poco.

primero en tu servidor local creas este arbol de archivos y directorios

/index.php
/data_xml/template.php
/data_xml/1.xml
/data_xml/2.xml

la "id"(identificador) es generalmente generada por una base de datos para evitar sobreescritura de datos, o siguiendo algun algoritmo de sucesion unico, como ejemplo te pongo un script que tenia guardado por ahi
primero en tu servidor local creas este arbol donde sea accesible

/index.php
/data_xml/template.php
/data_xml/1.xml
/data_xml/2.xml

/data_xml/template.php
creamos nuestra plantilla

Código PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title><?php echo $titulo;?></title>
      <style type="text/css">
         h1{ color:green; border :1px solid red}
      </style>
   </head>
   <body>
      <h1><?php echo $titulo;?></h1>
      <div><?php echo $contenido;?></div>
   </body>
</html>

/data_xml/1.xml
creamos un dato de ejemplo

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<datos>
   <titulo>Prueba 1</titulo>
   <contenido><![CDATA[  <strong style="color:blue">hola</strong> ]]></contenido>
</datos>

/data_xml/2.xml
creamos otros datos de ejemplo

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<datos>
   <titulo>Prueba 2 con cosas asi</titulo>
   <contenido><![CDATA[  <strong>hola</strong> otro contenido neuvo para escapar ]]></contenido>
</datos>


/index.php
creamos nuestro archivo que maneja todo esto

Código PHP :

<?php
//creamos una constante que indica la ubicacion de nuestro script
define("RAIZ",dirname(__FILE__));
//recivimos el id que debe ser numerico y si no cargamos un id por defecto
$id = isset($_GET['id'])? (int)$_GET['id'] : 8;
//ubicacion del archivo
$path = RAIZ .'/data_xml/'.$id.'.xml';
//comprobamos que los datos exista
if(file_exists($path))
{
   $el_xml = simplexml_load_file($path);
}
else
{
   //si no existe cargamos el primero que encuentre
   $archivos = glob(RAIZ .'/data_xml/*.xml');
   //obtenenmos el id del primer archivo
   $nombre = current($archivos );
   $el_xml = simplexml_load_file($nombre);
}
//cargamos las variables del template
$titulo = $el_xml->titulo;
$contenido = $el_xml->contenido;
//cargamos nuestro template
require RAIZ . '/data_xml/template.php';
?>


bueno una base de datos es mas ordenada y preserva la integridad de los archivos la cual es su mision pero todo depende de como quieres hacerlo,
a para generar los ides te puedes valer de un archivo simple en txt o alguno que lleve la cuenta incremental :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Jun 2011 04:08 pm
Que tal tuadmin gracia por esta explicacion creo que esto esta mas claro que el agua

una duda sobre esto

Código :

$path = RAIZ .'/data_xml/'.$id.'.xml'; 


/data_xml/ es un directorio donde almacenara todos los archivos xml cierto?

.xml se puede cambiar a html?

El templete seria el diseño del sitio general para todos los HTML crados

index.php hara la llamada de acuerdo al Id y precargara el template eso esta mas que claro.

En la base se puede hacer una tabla con un auto-increment no? para que id se valla de 1,2,3,4,5,6... infinito etc.

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

firefox
Citar            
MensajeEscrito el 06 Jun 2011 07:23 pm
a todas tus preguntas si jeeje
pero una cosa yo usaba los xml por que son estructurados de los cuales puedo jalar los datos con simplexml ahora si lo cambias a html mm tendrias que utilizar otras funciones como file_get_contents ya que el html tiene estructuras como los style y los script que rompen la estructura xml y la funcion simple_xml te dara error de parseo.
ahora lo del template es ilustrativo tu podrias hacer mas cosas como templates y condicionales como cambair el template por cada dia de la semana y esas cosas q quieras hacer experimenta y practica con el codigo juega con el . veras que haras cosas mejores y mas eficientes incluso lo podrias convertir en un sitio con ajax , bueno como dicen la imaginacion no tiene limites

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.