Así que estoy haciendo un CMS, un script de galería a través de PHP orientado a objetos. De todos modos, el problema es que ahora tengo el diseño básico de los objetos y tal es el punto donde necesito comenzar a armarlos, estoy perplejo de cómo hacer esto.¿Cómo se estructura un CMS?
Lo que tengo es esencialmente una clase de Navegación, Datos, Galería y Módulo. Módulo significa páginas, categorías, etcétera. El problema es que Gallery genera las imágenes, el módulo proporciona los datos para las páginas, la navegación crea la navegación (lo adivinas). Te dan la imagen.
En la página de índice, que terminan haciendo esencialmente esto (esto va a cambiar, pero es ilustrativo de la forma en que estaba empezando a configurarlo):
$navigation = new Navigation();
$navigation->top();
$page = new Module();
$page->basicPage($_GET['m']);
El basicPage() hace un par de cosas , pero principalmente este es el problema:
$gallery = new Gallery();
$gallery->setGallery($id);
$gallery->thumbGallery();
Así sucesivamente.
El problema surge porque si llamo a basicPage(), el diseñador o quien tenga muy poco control sobre las opciones. Como viste, es thumbGallery, y eso no permite imágenes completas, y ni siquiera te permite establecer el tamaño de las miniaturas (lo cual les dejo hacer, solo si pueden llamar a esa función ellos mismos) .
Así que pensé en algunas soluciones al problema. No tengo estas páginas básicas, pero los diseñadores construyen plantillas muy parecidas a WordPress. No me gusta esta solución, porque complica el proceso de diseño, aunque exhaustivo. No quiero hacerlo para que todo esté controlado, y es de una manera. Por supuesto, puede "mostrar: ninguno" a elementos como el diseñador y algunos otros trucos, pero quiero que tengan la capacidad de hacer muchas cosas, sin la manera complicada en que Wordpress lo hace.
Mi pregunta es ¿cómo puedo encontrar el equilibrio entre simple y flexibilidad?
Cualquier ayuda, incluso las ideas son apreciadas. Gracias.
EDIT: Olvidé mencionar. El problema es simplemente tener el índice con todos estos datos; de lo contrario, tendré que hacer mucho si/sino y tal, y realmente no quería hacer de esto un programa de procedimientos, solo uno que esencialmente puede explotar cosas caídas y estamos bien. Ver, el módulo representa galería y página. La mayoría de las páginas no tendrán imágenes adjuntas, y las categorías tendrán imágenes, pero no siempre texto. Causará un error si llamo a thumbGallery y es solo una página informativa, y si llamo a una página informativa y es una categoría, no mostrará las imágenes (para evitar el error). Pude, y comencé a construirlo juntos en lo que se llama página básica, pero el problema como noté antes es que restringe cuanta libertad tiene el diseñador sin tener que meterse con php, y la mayoría de los diseñadores son bastante tontos cuando se trata a php, por desgracia. Espectivamente OOP (sin ofender. Yo también soy diseñador, pero también me sucede el programa).
Eche un vistazo al patrón de diseño [Controlador frontal] (http://martinfowler.com/eaaCatalog/frontController.html). – Smurf64