Developer iniciandose en Drupal

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
tomasbarrios's picture

Hola, Les quiero contar mi experiencia en Drupal hasta ahora y aprovechar de dejar algunas dudas.

Hace un para de semanas comencé a investigar sobre Drupal. Soy developer de Ruby on Rails, también de frameworks JS como Backbone. Es un stack de programacíon que me acomoda mucho hasta ahora y que se pueden lograr resultados increíbles.

Por que entonces ir a Drupal? Bueno, no todos los sitios necesitan desarrollarse desde cero y un CMS es una excelente opción para muchos casos claramente.

Se, o he escuchado al menos que Drupal es muy poderoso y extensible. Y eso fue lo que encontré inicialmente. Así que comencé a aprender. Al principio todo se veía muy prometedor y pensé que en poco tiempo iba a tener el sitio andando.

Problema 1: Como customizar la pagina de inicio.
Opciones: page templates, panels, views, etc. (CUAL ELEGIR!?)

Problema 2: El HTML generado por views no sirve para mis propósitos (Interactuar mediante JS con el DOM)
Opciones: page templates

El problema que veo con Drupal es que hay 1 millón de formas de hacer lo mismo y la información esta muy dispersa. No existen BUENAS PRACTICAS. En un lugar encuentras que la forma recomendada de hacer algo es tal y en otra es distinta.

Por ejemplo. Investigue sobre omega themes (buena idea ocuparlo?) y mi primera aproximación a la organización de contenido fue ocupando views, panels y otros modulos que parece que todo el mundo ocupa. El problema es que aún no entiendo PARA QUE SIRVE CADA UNO. Y es como estar a ciegas. Son modulos muy poderosos pero no entiendo bien. Todo es un módulo y ya tengo pesadillas con ellos.

Ahora estoy ocupando una aproximación mas estilo developer: sobreescribiendo templates como node--article, etc. Pero quiero entender cuando debería ocupar Panels y Views por ejemplo.

En el caso del home por ejemplo: debería hacer un template o ocupar panels y views y templates para esos views?

Gracias!

Comments

Bienvenido al Club

osmassoglia's picture

Bueno primero que nada buena combinación ruby , backbone.

Para tu tranquilidad a todos nos ocurrió lo mismo al comienzo pero es necesario darse el tiempo para asimilar años y años de desarrollo, así que primero paciencia.

Como dato backbone esta disponible para drupal y funciona perfecto!!!

https://drupal.org/project/backbone

Bueno voy a tratar de explicar tus dudas.

  1. Customizar Homepage
    Como todo en la vida, existen diversas formas de hacer las cosas y la correcta la mayoría de las veces esta muy lejana del alcance de los recién iniciados debido a que esto es un proceso de aprendizaje y solo la experiencia con las diversas formas te entregara la forma correcta debido a que todo es relativo (estoy sonando un poco a cohelo pero no quiero ser categorico ni catedratico).

Así como existen reglas en la naturaleza (leyes físicas que se aplican a todos, existen alguna leyes informáticas que muchas veces no respetamos, pero siempre son validas)

Por ejemplo : Nunca mezclar la capa de datos con la capa de presentacion.

Esta regla echa por la borda el modificar tpl para agregar datos que queremos agregar, y como mencione antes esto puede llegar a ser realmente necesario en algunas ocasiones asi que esto es parte del aprendizaje.

Voy a ir al grano y explicare lo que por experiencia he aprendido y aclarare definire algunas formas de hacer las cosas.

En drupal existen modulos que permiten trabajar a todo nivel.

Nivel estructural
Nivel datos
Nivel de presentación

El trabajar a través de módulos es la forma como drupal te propone que lo hagas, ya que esto permite no perder la modularidad y la interoperabilidad entre diversos componentes.

1 Asi que si tu pregunta es cual usar page templates, panels, views, etc.

Mi respuesta es Views , Panels y bloques.
Estos tres módulos te permiten hacer todo lo que necesitas para customizar cualquier pagina.

2 El html generado por Views es totalmente configurable desde la misma interfaz, si buscas un poco veras una pesatana dentro de la vista field que dice STYLE SETTINGS, aqui puede configurar que tag usar y ademas puedes utilizar el sistema de rewrite de views que es muy util. (muchos tips para investigar)

Con respecto a Omega, si es un buen tema. pero no esperes que sea el mejor. Eso depende de tu contexto (puedes tener el mejor tema pero eres un pésimo arquitecto drupal, esto es lo mismo que tener un tema malo, así que no te encierres en bueno o malo sino en escalable y funcional que son dos términos mas interesantes)

En fin cada modulo tiene una razón y una utilidad existe una comunidad que los valida entonces es difícil como antes dije decir si son buenos o malos. Para todo existe un modulo que satisface la necesidad.

El único consejo que te puedo dar es que experimentes con las distintas formulas y nunca te quedes con solo una, esto evoluciona tan rápido que lo que ayer era lo mejor. Mañana ya no lo sera y el conocimiento es poder sobre todo para un desarrollador.

Saludos

Director DrupalChile
oscar@drupalchile.com

Algunas sugerencias

betoscopio's picture

Hola Tomás, primero que todo bienvenido, te voy comentando algunas posibles respuestas a tus dudas.
Lo que señalas es cierto, la documentación está bastante dispersa (aunque no tanto). La principal fuente creo que la puedes encontrar en los feeds de https://drupal.org/planet ahí puedes estar al tanto de las novedades que van ocurriendo en el desarrollo y la comunidad Drupal.
Este post de hace algún tiempo puede ser una buena guía sobre donde empezar https://groups.drupal.org/node/248873 .
Drupal es muy poderoso, pero requiere un inversión inicial te tiempo hasta poder hacer algo "útil", pero después de esta inversión inicial puede ser una plataforma muy rápida y productiva al desarrollar.

Sobre tus preguntas:
1. Modificar la página de inicio: sin duda Views, si quieres layouts complejos o modificables por un editor podría ser útil usar Panels.
2.Modificar el HTML generado por Views: en general dentro de las opciones de configuración por campo de views, tienes muchas opciones como usar wrappers o no, agregar clases por campo o fila, agregar nuevos tipos de displays. Si esto no es suficiente, dentro de las opciones avanzadas de views, se listan los templates sobreescribibles para hacer el maquetado que más te acomode.
Aquí algunas referencias que te podrían ayudar:
http://drupal.stackexchange.com/questions/935/views-3-and-html5-how-to-o...
http://newsignature.com/blog/2012/06/22/tips-for-improving-drupals-markup/

Las buenas prácticas en Drupal existen, solo que son llamadas "the Drupal way", puede ser difícil al principio identificar a quien creer, pero en la documentación que enlacé más arriba hay unos muy buenos referentes (Acquia, Lullabot, Palantir, Phase2, Phantheon, Wunderkraut, todos ellos hacen gran parte de drupal y la gente asociada a ellos hace excelente documentación). Pero si tienes dudas a quien creer anda a drupal.org, la documentación es bastante amplia, que es donde debería estar plasmada (o al menos referenciada) la mejor práctica actual.

Sobre la avalancha de módulos, solo hay una filosofía a seguir, si no sabes para que sirve, no lo instales. Así es mucho más fácil depurar tu sitio cuando tienes un problema, y tienes claro que cosa hace qué.

Sobre la construcción de tu tema, te Omega es una buena opción, pero te recomiendo Omega 4, a esta altura Omega 3 ya empieza a ser algo obsoleto (son muy distintas una versión de otra). Ahora, dados tus conocimientos, quizá te sientas mucho más cómodo usando algo como https://drupal.org/project/aurora donde podrías usar mucho de lo que ya sabes.

Aclarando la confusión sobre tpls, Panels o Views.
- Views, sería muy raro que no lo necesitaras, gran parte de la popularidad de Drupal es gracias a este módulo. Piénsalo como un query builder en esteroides, el cual te permite hacer todo tipo de consultas sobre tus datos y mostrar los resultados de variadas maneras (hay muchos módulos que sirven para extender las formas de desplegar los resultados). Si quieres un subconjunto de tus datos (nodos, usuarios, taxonomias, etc) bajo distintos criterios y presentarlos en algún display (página, bloque, mapa, slideshow, calendario, etc).
- Panels, te permite layouts extremadamente flexibles, lo cual permite sobreescribir el comportamiento de nodos cualquier tipo de entidad. Puedes condicionar el despliegue de layouts y vistas asociadas según la información ingresada al contenido. Tambien puedes darle la opción a un editor de modificar los layouts. Es un módulo con muchas opciones, yo diría más complejo que views, vale la pena usarlo, pero solo si necesitas lo que hace. Es posible también crear nuevas páginas (para posicionar views u otros elementos).
- .tpl, en la actualidad yo no recomendaría esta opción, existen opciones mucho más flexibles y versátiles (y fáciles).
- Display Suite, permite modificar el layout de entidades, campos, clases y wrappers de estos. Es como panels , pero mucho más fácil, pero menos flexible.

Todo lo mencionado anteriormente tiene una gracia, toda esa configuración es exportable a código (tipos de contenido, views, panels, DS, vocabularios). Te recomiendo darle un vistazo al módulo https://drupal.org/project/features el cual te permite configurar, bajar el código y sobreescribir lo necesario.

Para finalizar, esta presentación te puede servir de guía de algunas cosas que "no hay que hacer" http://www.slideshare.net/iztoksmolic/drupal2-15546254 y este es un listado de preferencias muy personal de módulos que usualmente ocupo https://github.com/betoscopio/drushscripts/blob/master/drupal-baseinstal...

Saludos,
Beto

Chile

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week