2009-10-16 14 views
35

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.¿Sugerencias o recomendaciones recomendadas de Drupal?

Voy a empezar: sin embargo, puede utilizar the mothership theme como tema base para que su tema herede de modo que su marcado sea mucho más limpio y menos detallado.

+0

¿Deberíamos pasar esto a superuser.com? – Graviton

+0

@Ngu Soon Hui: No necesariamente, ya que las respuestas pueden estar relacionadas con la codificación: ¿el 'problema' (ventaja) de que Drupal intente ser un CMS de usuario final 'listo para usar' y un marco de desarrollo de CMS al mismo tiempo :/ –

+7

Aunque debería ser un wiki. – googletorp

Respuesta

14

Al configurar un nuevo sitio, inmediatamente creamos un módulo personalizado en blanco que lleva 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 de sitio' complementa el 'tema del sitio', ya que contiene los ajustes/manipulaciones relacionados con negocios/flujo de trabajo/datos que de otro modo terminarían atestando el archivo themes.php de temas (que en realidad solo debería contener temas específicos cosas).

4

He oído hablar de personas que utilizan las funciones de internacionalización para cambiar fragmentos de texto que de otro modo no podrían.

+6

El módulo stringoverrides es increíble para eso. Lo uso todo el tiempo para cosas que han sido codificadas en módulos. –

13

aprender el módulo views dentro y fuera

6

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() (más extendidos seens como hook_form_alter)

La razón por la cual estas cosas son tan poderosos, es que permite modificar núcleo de Drupal funcionalidad y alterar cómo drupal representa cosas diferentes sin cambiando el núcleo de drupal (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 hacer exactamente lo que quieren, y aún conserva todo el progreso realizado en Drupal y módulos aportados.

16

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

+0

Tan cierto. Nada es más decepcionante que codificar algún módulo impresionante o no, querer enviarlo y luego darse cuenta de que ya hay algo disponible en línea que no solo hace lo que hace tu característica, sino que generalmente lo hace mejor. No es que yo sepa nada de eso * tos * * tos * – canadiancreed

+0

De acuerdo ... hasta cierto punto. No sobrecargue su sitio Drupal con módulos que solo usa un conjunto pequeño de. Tener demasiados módulos puede ser contraproducente también. – Alberto

1

Usa 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'). Luego puede tener dos columnas más abajo en la página, que contiene $ ids entre 2 y 8 y 9 y 15.

Algunas veces podría necesitar verificar algo que no sea el número $ id para determinar en 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, yo utilizo para mostrar una fecha en dirección nodos anteriores que proporcionan un nodo de esa fecha ya no se ha demostrado, 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; 
    } 
} 
15
  • Uso del zen theme - no sólo se hace tematización más fácil, también agrega clases de CSS que reflejan el estado de el sitio web (como <body class="not-front not-logged-in page-node node-type-project-project two-sidebars">) - lo hace realmente fácil de personalizar su sitio.

  • Navegar a través Drupal Modules - 9 de cada 10 posibilidades encontrará lo que busca allí - es seguro y/o mantenidas - que es una pregunta diferente;) Pero al menos que' Tendré un punto de partida.

+1

El tema de Starkish es agradable porque usa todas las clases de contexto cool de Zen pero sin todas las marcas adicionales y CSS. –

+1

+1 para el tema zen: hace la vida mucho más fácil. – mikewaters

+2

Gracias por la información sobre el tema de Starkish, parece una gran alternativa al zen (estoy acostumbrado a zen y me encanta, pero a algunos les gusta más Starkish). –

2

Usando/var/www para mi raíz web, creo/var/www/sites y enlazo simbólicamente el directorio de mi sitio 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.

Utilice 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() generosamente, 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 la administración de 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.

22

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

+0

¿Qué beneficios específicos ofrece drush para las actualizaciones de módulos? Estoy buscando simplificar el mantenimiento de varios sitios :) – NPC

+2

es más rápido intentarlo que preguntar;) de todos modos, puede actualizar todo sin la tediosa tarea de ir al sitio de drupal, descargar el módulo, untar etc. – gpilotino

4

Instale y use el devel module. Pasa algún tiempo con él desde el principio tener un conocimiento más profundo de cómo se puede ayudar a los módulos de depuración, desarrollo del tema, etc.

0

Panels3

Aprender, usarlo, dominarla. Hace que tu sitio sea altamente dinámico.

10

dos consejos:

No utilizan ciegamente el primer módulo que comparte un nombre con lo que usted quiere 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.

1

Framework es otra 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.

+0

De acuerdo, esto es un excelente tema para comenzar si sabes lo que quieres de tu html/css (y aunque no lo hagas, supongo, aunque normalmente lo hago :)). – NPC

2

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.

2

Si no está atascado con PHP5 o una base de datos que no es 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.

Cuestiones relacionadas