Foros del Web » Programando para Internet » PHP »

Ayuda para organizar CMS

Estas en el tema de Ayuda para organizar CMS en el foro de PHP en Foros del Web. Hola a todos, estoy desarrollando un cms para un proyecto que pensé hace tiempo. Reconozco que muy posiblemente no tengo los conocimientos necesarios para ello ...
  #1 (permalink)  
Antiguo 15/12/2009, 05:01
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 1
Ayuda para organizar CMS

Hola a todos,

estoy desarrollando un cms para un proyecto que pensé hace tiempo. Reconozco que muy posiblemente no tengo los conocimientos necesarios para ello pero gracias a videotutoriales que voy recogiendo por el mundo del navegante y desde este foro voy creando pequeños trozos de codigo de lo que pretendo sea mi cms.

Pues bien, me encuentro que tengo funciones para crear contenidos de texto, loguearte en la web, subir el avatar del usuario... pero ahora me encuentro perdido en el momento que debo unirlo todo para formar un solo sistema.

Me gustaria saber si hay alguien que tenga conocimientos suficientes de php para ayudarme de vez en cuando o marcarme la direccion correcta para yo luego ir haciendo poco a poco.

gracias de antemano!!

Última edición por FRACTO; 15/12/2009 a las 05:17
  #2 (permalink)  
Antiguo 15/12/2009, 06:53
Avatar de gigoz  
Fecha de Ingreso: noviembre-2009
Mensajes: 106
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Ayuda para organizar CMS

Si claro cualquier duda solo pregunta que si se le puede ayudar y orientar con mucho gusto
  #3 (permalink)  
Antiguo 15/12/2009, 07:15
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 10 años, 3 meses
Puntos: 16
Respuesta: Ayuda para organizar CMS

Yo creé un CMS propio para mis clientes, así que si tienes cualquier duda puedes preguntar. Ayudan mucho los trozos de código que hay por ahí, pero creo que para un CMS propio debes adaptarlos a una estructura que previamente hayas diseñado. Te recomiendo que el CMS se pueda ampliar fácilmente. La forma de conseguirlo (según mi forma de verlo) es crear una estructura en la base de datos que sea general para todo tipo de contenido y que después la puedas adaptar fácilmente según las necesidades.

A partir de aquí puedes utilitzar los códigos que tienes adaptándolos a tus necesidades.

Y lo dicho, para cualquier duda ya sabes.
  #4 (permalink)  
Antiguo 15/12/2009, 10:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Ayuda para organizar CMS

muchas gracias por vuestra ayuda, pues a empezar se ha dicho!!

Lo primero que he hecho ha sido escribir un "guion" con aquellas cosas que van a "ocurrir" en mi cms para mas o menos tener una idea de que funciones tenia que crear. Lo apunto aqui, a ver que os parece por si pensais que para el tipo de cms que quiero crear se necesitan mas funcionalidades.

****************************
* Administración del sitio *
****************************

1.Definición de tipos de contenido. (ADMIN)

1.1 Comentarios
1.2 Tutoriales
1.3 Noticias
1.4 Galeria de imágenes
1.4 Formularios

2.Comentarios a tutoriales. (ADMIN / EDITOR)

2.1 Comentarios publicados.
2.2 Cola de aprovación. (SOLO ADMIN)

3.Contenido.

3.1 Tutoriales. (ADMIN / EDITOR)

3.1.1 Listar.
3.1.2 Gestion.
3.1.3 Crear.
3.1.4 Eliminar.
3.1.5 Editar.

3.2 Noticias. (ADMIN)

3.2.1 Listar.
3.2.2 Gestion.
3.2.3 Crear.
3.2.4 Eliminar.
3.2.5 Editar.

4.Galería de imágenes (ADMIN)

4.1 Mostrar / Listar.
4.2 Añadir.
4.3 Eliminar.

5.Publicación RSS (ADMIN)

**************************
* Construcción del sitio *
**************************

(TODO EL BLOQUE PARA LOS ADMIN)

6.Bloques / Módulos.

6.1 Listar / Mostrar.
6.2 Añadir.
6.3 Eliminar.

7.Formularios.

7.1 Formularios de contacto.

7.1.1 Mostrar / Listar
7.1.2 Crear
7.1.3 Eliminar

7.2 Encuestas para votación de tutoriales.
7.2.1 Mostrar / Listar
7.2.2 Crear
7.2.3 Eliminar

8.Menús.

8.1 Menu principal

8.1.1 Mostrar / Listar
8.1.2 Crear opciones de menú.
8.1.3 Editar opciones de menú.
8.1.4 Eliminar opciones de menú.

8.2 Menús secundarios.

8.2.1 Mostrar / Listar
8.2.2 Crear opciones de menú.
8.2.3 Editar opciones de menú.
8.2.4 Eliminar opciones de menú.

9.Tema / Plantilla.

**********************************************
* Configuración del sitio: Bloques / Módulos *
**********************************************

(TODO EL BLOQUE PARA LOS ADMIN)

10.Bloque Avatares (bloque en la web donde saldrán todos los avatares de los usuarios
registrados).

10.1 Configurar
10.2 Agregar
10.3 Gestionar
10.4 Eliminar

11.Subida de archivos (bloque que permitirá incluir archivos dentro de los tutoriales)

12.Fecha y hora (bloque que muestra la fecha y la hora, en función de la zona horaria escogida)

13.Sistema de puntos (bloque sobre las funciones de los puntos con los usuarios)

14.Imágenes (bloque de configuración de las imagenes)

14.1 Tipos de archivo y tamaños aceptados

******************************
* Administración de usuarios *
******************************

(TODO EL BLOQUE PARA LOS ADMIN)

15.Opciones de usuario

15.1 Opciones del correo de usuario

15.1.1 Edicion del mensaje de bienvenida al registrarse
15.1.2 Correo de recuperación de contraseña
15.1.3 Correo para bloqueo de cuenta (banear).
15.1.4 Correo para eliminación de cuenta

15.2 Imágenes de los usuarios (avatares)

15.2.1 Ruta donde se guardan
15.2.2 Imagen predeterminada
15.2.3 Dimensiones
15.2.4 Tamaño máximo de archivo

15.3 Firmas de usuario

15.3.1 Permitir / No permitir
15.3.2 Eliminar

16.Perfiles

16.1 Campos para el perfil del usuario (a usar en el registro).

16.1.1 Campo de texto de 1 linea
16.1.2 Campo de texto de varias lineas
16.1.3 Casillas de verificación
16.1.4 Listas de selección
16.1.5 Url
16.1.6 Fecha

17.Permisos

17.1 Usuarios no registrados
17.2 Usuarios registrados
17.3 Editores
17.4 Administradores

18.Puntos (¿? Tema para gestionar o hacerlo de manera automática ¿?)

18.1 Listado de usuarios y puntuaciones
18.2 Añadir


19.Roles

19.1 Listado de roles
19.2 Añadir rol
19.3 Editar rol
19.4 Eliminar rol


20.Usuarios

20.1 Listado de usuarios
20.2 Agregar un usuario

************************************************** ***************************************

¿que os parece este primer esquema?

Un saludo y gracias de nuevo por vuestra amabilidad
  #5 (permalink)  
Antiguo 15/12/2009, 10:36
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 10 años, 3 meses
Puntos: 16
Respuesta: Ayuda para organizar CMS

Si este es el primer esquema como será el definitivo? jej. Bien planeado. Es bueno dedicarle tiempo antes de empezar a hacer código. Si se parte de una mala planificación el resultado no puede ser bueno ni organizado.

Una pregunta. La web donde se mostrará todo esto estará en un solo idioma o en varios? Te lo pregunto porque es relativamente fácil dejar la base de datos y el código preparado para varios idiomas y si se organiza bien, con añadir 1 solo registro en una tabla de la base de datos tendrás la web a punto en otro idioma más y así con todos los que necesites. Si te interesa dímelo y te comento a grandes rasgos como lo planifiqué.
  #6 (permalink)  
Antiguo 15/12/2009, 10:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Ayuda para organizar CMS

Pues sinceramente esta dirigida a la comunidad hispana, no se me había ocurrido hacerlo en otros idiomas. Pero si dices que no es complicado dejarlo preparado no está de mas tenerlo ya listo por si acaso.
  #7 (permalink)  
Antiguo 15/12/2009, 10:59
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 10 años, 3 meses
Puntos: 16
Respuesta: Ayuda para organizar CMS

Te cuento un poco como lo planifiqué:

Creé una tabla que contiene los idiomas con los campos siguientes:
id
sufijo
idioma

Otros campos opcionales pueden ser "orden", "bandera" (y guardar el nombre del archivo), etc...

Y la base para crear todo lo demás es en los formularios para entrar los datos. Primero recupero el total de idiomas de la tabla y con este valor muestro "n" veces los formularios para insertar los registros, uno por idioma. Los organizo con tabs y en la pestaña de cada tab muestro el nombre del idioma para que el usuario vea cual está rellenando.

En cada campo de formulario pongo un nombre junto con un numero o idioma:
<input name="titulo<?php echo $row['sufijo']; ?>" id="titulo<?php echo $row['sufijo']; ?>" value="" />

Después, se envía el formulario y con un bucle while($row=mysql_fetch_assoc($idiomas)){} recupero los valores para cada idioma de esta forma:
$titulo = "titulo" . $row['sufijo'];
$valorTitulo = $_POST[$titulo];

Y en cada iteración del bucle inserto el registro en la base de datos o lo actualizo.

Y la segunda parte es que en cada registro de contenido (noticias, etc...) hay un campo para el idioma para saber cual mostrar en cada caso.

A grandes rasgos es esto. Seguro que lo puedes desenvolupar y adaptarlo a tus necesidades.
  #8 (permalink)  
Antiguo 15/12/2009, 11:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Ayuda para organizar CMS

me acabas de dejar a cuadros jajajjaa yo que aun estoy mirando a ver como organizar las carpetas :P puede que esto del idioma se me quede un poco grande... creo que de momento intentare hacer la web en un solo idioma y que funcione, que ya sera un gran logro...

mis dudas surgen mas de como organizar los directorios y las partes para luego llamarlos en los diferentes archivos.

como lo organizaste tu?
  #9 (permalink)  
Antiguo 15/12/2009, 11:12
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 10 años, 3 meses
Puntos: 16
Respuesta: Ayuda para organizar CMS

Normalmente sigo la misma estructura (que no quiere decir que sea la mejor) para organizar las carpetas y archivos:

Toda la zona de administración la pongo dentro de una carpeta y dentro separo un poco el tipo de código:

/administracion (aquí va todo lo de administracion, con un archivo index.php para autentificar al usuario)

Y las subcarpetas que hay dentro suelen ser:
core
/core/classes
/core/functions
/core/functions/php
/core/functions/js
/includes
/css
/img
/languages

Por el nombre se puede adivinar qué contienen. Y después organizo en carpetas cada apartado que se administra:

za_noticias (de zona de administración de noticias)
za_tutoriales
za_loquesea

Y la organización de la parte pública depende del proyecto, pero suelo utilizar también carpetas /core, /css, /img, /languages (para texto fijo), etc...

Y respecto a los idiomas, explicado parece más dificil de lo que es, solo se tiene que planificar bien. Después te ahorras muchísimo trabajo si el cliente te pide más de un idioma. Pudiendo realizar la web en menos tiempo, menos trabajo y si hace falta ajustando un poco el presupuesto. Además, para el cliente es más cómodo rellenar todos los campos de cada idioma des del mismo sitio y tenerlo en tabs, en vez de hacerlo des de distintos sitios o ver un formulario muy grande con los campos para cada idioma.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.