drupal-7 imagefield

Agregar clase al campo de imagen en Drupal 7



drupal-7 imagefield (3)

He agregado un campo de imagen al tipo de contenido "Página básica" y, usando la opción "Gestionar pantallas", aparece en la parte superior de la página. Sin embargo, no hay estilo en la imagen y no puedo imaginar cómo agrego una clase a la imagen para poder agregar estilos.


La respuesta anterior ayuda si la orientación de CSS es su única necesidad. Pero necesitaba agregar una clase a la etiqueta IMG, punto. Esta es la forma en que resolví el problema. Probablemente esta no sea la mejor manera, y ciertamente no la única, pero es una "forma Drupal" válida y funciona. Abra el archivo template.php para su plantilla.

Pegue en la siguiente función, que tendrá que MODIFICAR y personalizar para su escenario de uso. Por ejemplo, debe reemplazar <TEMPLATENAME> con el nombre de su plantilla, y agregar o quitar clases como desee, y otras cosas, como verá.

function <TEMPLATENAME>_preprocess_image(&$variables) { // If this image is of the type ''Staff Photo'' then assign additional classes to it: if ($variables[''style_name''] == ''staff_photo'') { $variables[''attributes''][''class''][] = ''lightbox''; $variables[''attributes''][''class''][] = ''wideborder''; } }

Creé un enunciado "si" para determinar cuándo se debe agregar la clase a la imagen, pero deberá personalizarla como prefiera, puede eliminarla por completo si desea una clase en TODAS las imágenes del campo de imagen, o podría decir "if drupal_is_front_page ()" si solo desea que se aplique en la página principal, etc.

En MI caso, creé un estilo de imagen (Configuración> Medios> Estilos de imagen) para Fotos del personal y agregué la cláusula if para aplicar solo mis clases preferidas a las imágenes de ese Estilo de imagen especificado. Creo que es una gran manera de hacerlo, pero puedes hacer lo que quieras.

Ahora, cada vez que veo un nodo que contiene un campo de imagen con el estilo de imagen de "Foto del personal", las clases aparecen mágicamente en la etiqueta IMG, que es justo lo que necesitaba.


Si está utilizando CCK casi seguro que hay una clase asociada con la imagen (o al menos una clase en un div que lo envuelve). CCK envuelve casi todo en una clase. Intenta hacer clic con el botón derecho en la imagen y hacer clic en Inspeccionar elemento para verificarlo dos veces.

Sin embargo, si realmente necesita agregar una clase, puede usar el módulo Desarrollador de temas para averiguar qué función de tema o archivo de plantilla sobrescribir. Consulte el screencast del Desarrollador de Temas para más detalles .


Si usa esta función, entonces Drupal agrega clase pero ve el error "Aviso: índice indefinido: nombre_estilo en template_preprocess_image .." en la página principal.

Estoy pegado "_style" y estaré bien.

function <TEMPLATENAME>_preprocess_image_style(&$variables) { // If this image is of the type ''Staff Photo'' then assign additional classes to it: if ($variables[''style_name''] == ''staff_photo'') { $variables[''attributes''][''class''][] = ''lightbox''; $variables[''attributes''][''class''][] = ''wideborder''; } }