widgets votingapi theme modulos modules chaos drupal

votingapi - ¿Consejos o mejores prácticas favoritas de Drupal?



view module drupal (18)

Al configurar un nuevo sitio, inmediatamente creamos un módulo personalizado en blanco con el nombre del sitio / proyecto. Esto se convierte en el lugar central donde poner todas las pequeñas correcciones / modificaciones / ajustes que surgen para resolver todas esas pequeñas solicitudes de cambio que no son realmente características y no requieren un módulo completo (al principio;) - este módulo debe ser revisó y refactorizó regularmente para eliminar cosas que se volvieron obsoletas o para sacar cosas que se convirtieron en una característica, por lo que merecía un módulo completo por sí mismo.

Lo mismo para los temas, cualquiera que sea el tema con el que comenzamos nuestros sitios, generalmente se modificará rápidamente / inmediatamente, por lo que es mejor cambiarle el nombre al sitio / proyecto desde el principio.

El ''módulo del sitio'' complementa el ''tema del sitio'', ya que contiene los ajustes / manipulaciones relacionados con el negocio / flujo de trabajo / datos que de otra manera terminarían abarrotando el archivo de temas template.php (que en realidad debería contener solo temas específicos).

Solo me pregunto qué consejos o trucos pueden compartir. Como siempre, con publicaciones como esta, solo un consejo por publicación para que puedan votar de forma independiente.

Comenzaré: sin importar cómo hagas tu tema, puedes utilizar el tema de la nave nodriza como tema base para heredar tu tema, de modo que tu marcado sea mucho más limpio y menos detallado.


Antes de codificar cualquier característica personalizada en Drupal, asegúrese de que no haya un módulo para ella.



Dos consejos:

No use ciegamente el primer módulo que comparte un nombre con lo que desea que haga. A menudo, el primer módulo "captura" el espacio de nombre para esa característica, pero otro módulo menos acertadamente cumplirá la funcionalidad mejor.

Busque una forma de hacer lo que quiera que incluya la integración de CCK / Views. Aparentemente, este es el futuro de Drupal, por lo que un módulo autónomo que haga lo que usted quiere que haga y compita con un módulo de views / CCK-dependent probablemente desaparecerá en el futuro cercano.

++ a la sugerencia de Geshan.


Escuché de personas que usan funciones de internacionalización para cambiar fragmentos de texto que de otra forma no podrían.


Instala y usa el módulo de desarrollo . Dedique un poco de tiempo a tener un conocimiento más profundo de cómo puede ayudarlo a depurar módulos, desarrollar temas, etc.


La característica más poderosa en Drupal es que está alterando el sistema. Esto se manifiesta de dos maneras

  • Todo el sistema de tematización
  • drupal_alter() (la mayoría de las seens como hook_form_alter)

La razón por la cual estas cosas son tan poderosas, es que le permite alterar la funcionalidad del núcleo de drupal y alterar la forma en que drupal renderiza diferentes cosas sin cambiar el núcleo de drupal en sí mismo (o módulos contribuidos).

Esta es probablemente una de las principales razones del éxito de Drupal, ya que permite a los desarrolladores personalizar Drupal para que haga exactamente lo que quieren, y aún conserva todo el progreso que se está realizando en Drupal y en los módulos aportados.


Si no está atascado con PHP5 o una base de datos que no es de MySQL, use Pressflow ( http://pressflow.org ) en lugar de stock Drupal. Pressflow está optimizado para mysql + php5 y admite mejores configuraciones de caché a medida que su sitio crece, como poner Varnish frente a Drupal para usuarios anónimos.


Usando / var / www para mi raíz web, creo / var / www / sites y enlace mi directorio de sitios a él, y / var / www / files para robots.txt. Hace que la actualización (en ausencia de un SCM) sea menos aterradora, simplemente sobrescriba la carpeta / var / www / drupal con la nueva versión y presione update.php.

Use una copia local de drupal para su desarrollo; es mucho menos doloroso depurar localmente que a través de la WAN, y le resulta más fácil usar el código de su sitio como proyecto en su IDE, que (puede o no, dep. en su IDE) proporcionarle la finalización del código y fácil acceso a tus archivos Cuando haya terminado, puede presionar los cambios a través de ftp / scp, o usar cualquier SCM con el que esté familiarizado.

Utilizo la función devel dsm () liberalmente, así que recomendaría ese módulo. Hace que la depuración sin un depurador (es decir, después del movimiento prod) sea mucho menos dolorosa.

Además, Admin Menu hace que administrar su sitio sea mucho más fácil; le da acceso al menú emergente dhtml a todas las páginas de administración, en una jerarquía, por lo que solo hay un clic entre usted y la mayoría de las funciones de administración.



Use la variable $ id en node.tpl.php para hacer que los temas permitan cosas que no sean largas listas verticales de contenido. Por ejemplo, puede verificar si $ id es 1, y si es así envolver el nodo en un div que lo coloca en una gran zona de resaltado en la parte superior derecha de la página. (Esto es útil cuando se combina con la función ''make sticky at top of lists''.) Entonces podría tener dos columnas más abajo en la página, que contienen $ ids entre 2 y 8 y 9 y 15.

En ocasiones, es posible que deba verificar algo que no sea el número $ id para determinar a qué ''zona'' colocar un nodo. En este caso, puede ser muy útil hacer parte de la comprobación en una función hook_preprocess_node (que puede colocar en su archivo template.php como elmenmen_preprocess_node) que contiene una variable estática que puede usar para almacenar el resultado de las comprobaciones en los nodos que ya se han mostrado en la página. Por ejemplo, uso esto para mostrar un encabezado de fecha sobre nodos que proporciona un nodo de esa fecha que aún no se ha mostrado, así:

if ($vars[''teaser'']) { static $last_date; $date = format_date($node->created, ''custom'', ''l jS F''); if ( $date != $last_date ) { $vars[''show_date''] = TRUE; $last_date = $date; } else { $vars[''show_date''] = FALSE; } }


Utilice los exportables, a través del módulo ctools o los integrados para las vistas, etc., para obtener configuraciones de clave fuera de la base de datos y ponerlas en control de versión. Esto hará que mover actualizaciones y cambios de un sitio a otro sea mucho más fácil.


aprender el módulo de views dentro y fuera


use drush para instalar / actualizar módulos y realizar tareas de mantenimiento. si usas drupal, no puedes prescindir de él.



Framework es otro gran módulo para comenzar el desarrollo de un tema. Al usarlo como tema base, pude transferir un tema existente a Drupal en cuestión de horas.


Panels

Aprende, úsala, domínala. Hace que tu sitio sea altamente dinámico.


  • Use el tema zen , no solo hace que sea más fácil hacerlo, sino que también agrega clases CSS que reflejan el estado del sitio web (como <body class="not-front not-logged-in page-node node-type-project-project two-sidebars"> ) - hace que sea muy fácil personalizar su sitio.

  • Navegue a través de los módulos de Drupal : 9 de cada 10 posibilidades encontrará lo que está buscando allí - es seguro y / o mantenido - esa es una pregunta diferente;) Pero al menos tendrá un punto de partida.