Pongocms vs Joomla: La batalla por el template...


El último round, resulta que cuando terminé de instalar el pongocms, mi práctica de habilidades con los cms estaba muy oxidada. Un objetivo de pongocms era el uso de bootstrap, pero resulta que Joomla, desde su versión 3, incluye el bootstrap, así que decidimos darle una prueba. La instalación de joomla es completamente no asistida, descompactas, tienes tu base de datos preparado, click, click, click y listo, hasta te deja el idioma en español todo correcto, pero... Joomla es enorme, la cantidad de recursos de joomla son enormes, los templates ofrecen N opciones... y al final se convierte en un PITA, existe curva de aprendizaje POR template, aparte, llevar a "buen fin" un template desde 0 resulta mucho más complicado de lo esperado.

Buscando recursos para el joomla, me recomendaron Theme forest, muy pocos recursos son gratuitos, pero hay unas cosas hermosas, y sobre todo hay temas de bootstrap en html, entoces, despues de ver la diferencia de precios, que, siendo honestos, los clientes NO administran su joomla por que es excesivamente complicado, mejor decidí bajarme un tema gratis llamado bootbusiness y adaptarlo a Pongo... esta sería la batalla por el template. La página a crear como template fué la de contacto, por que contiene 2 zonas, el menú etc, esta es su diseño:


El pongo cms es bastante sencillo, tiene un menú al cual le asocias paginas, la pagina tiene un template que tiene zonas, editas el contenido de cada zona para el template y listo: 

 Entoces, la idea será tratar de seguir las indicaciones que hay en pongocms para crear los templates y ver que tal nos va... Si no me tardo mucho y logro el efecto, en definitiva me quedo con pongocms, por que ahorita la situación del web, seamos honestos, es más acerca de como se ve el contenido, no del contenido en sí, por lo menos para los sitios empresariales, la información suele ser demasiada aburrida para leerla es mejor tener un impacto visual, y eso es lo que buscamos: Impacto visual con fácil administración. 

Allá vamos... 
iope64:/srv/www/htdocs # php artisan cms::theme contacto 

Theme [contacto] created!

Analizando la estructura, y tratando de entender la documentación, hay un archivo que describe el template: theme.php y luego hay "blades", los blades son configuraciones o tipo de paginas del template.

El template, obviamente necesita su footer, header y un archivo "principal" que digamos sería la parte inicial del template, en este caso es el archivo template/default.blade.php 

Lo primero que hago es mapear del contact_us.html los "css" o los "assets" al archivo theme.php



El container, ya lo veremos, es donde lo meteremos dentro según lo indique blade principal, y el after es cual debe de ir despues de cual, sigo el orden del template en la inclusión de los scripts. 

Ahora, vamos a mapear, el template/default.blade.php la estructura del archivo, suponiendo como funciona las cosas, este es el template/default.blade.php y a su lado mi páguina que estoy usando como referencia:

El "cuerpo" del template, al parecer es bastante sencillo, hay algunos tags del pongocms que respetaremos como lo del title, y los de {{Asset::container('header')->styles()}} y  {{Asset::container('header')->scripts()}}, que se pueden interpretar como los loader de los "assets" que se defnieron en theme.php, eso da cierto control de que queremos cargar de "assets" en cada zona o contenedor, despues viene un contenedor que tiene la típica triada header/body/footer, siendo el body, layout.  

Segun el contact_us.html, su estructura difere un poco, el header está definido con los tags <header></header> que son del html... editando un poco queda así nuestro archivo:

Digamos que con eso, pues ya tenemos el "esqueleto" del template, ahora habría que definir los layouts y las zonas de cada layout, que para eso se usan los partials (Creo), pero primero, lo primero.. hay que migrar el header, esta es la forma "original" de ambos:


Como se puede observar, estos aparentemente son muy diferentes, pero el asunto es que no lo son, el archivo de contact_us.html tiene el menu, que nosotros debemos de suponer el pongocms generará automáticamente, el asunto es que pasara con esa generación... eso no lo sabemos aún. Pero bueno, procedemos a un poco de hack and slash y emular el header para que sea usado el pongocms.
El primero problema "serio" al que me enfrento, es que pongocms no tiene forma para definir un menú dropdown. Yo asumí que haciendo un menu heraquico, automáticamente me lo hace, pero.... o, nunca habia estado tan equivocado. Tuve que desarrollar un "blade" para hacer el dropdown, pero despues de varias horas de hack and slash y revizar algunas documentaciones de laravel llege a hacer dos blades, el menu_dropdown.blade.php y el menu_nested_dropdown.blade.php: 


Para obtener el efecto del lado derecho:

Puedo decir que no fue tán difícil, pero tampoco fue fácil, había que "entender" un poco del framework de laravel, pero hasta el momento no he podido entender todo el código como para saber que propiedades tiene que objeto...

Ahora sí, a continuar migrando el tema, ya pudiendo hacer los menus dropdown, una vez terminado eso, instalamos el tema con:
php artisan cms::setup:theme contacto
Theme [contacto] ready!
Y... este es el resultado (bueno es algo):

Bueno, ahora... será cuestion de corregir bien el template, pero... realmente no fue difícil, solo fue cosa de seguir los layouts y entender la asignación de los nombres...

Creo que me quedaré con el pongoCMS sobre Joomla, por que al ser más pequeño, es más maniobrable y las zonas se pueden mapear muy fácilmente a buenos temas de themeforest y es más barato que los joomlas.



Previous
Next Post »