2011-03-11 55 views
2

我已经将图像字段添加到内容类型“基本页面”,并使用“管理显示”选项使其显示在页面的顶部。然而,图像上没有样式,我不能为我的生活弄清楚如何向图像添加类,以便我可以添加样式。在Drupal 7中为图像字段添加类

回答

1

如果您使用的是CCK,那么几乎可以肯定有一个类已经与图像相关联(或至少是一个包装它的div类)。 CCK几乎涵盖了课堂上的所有内容。尝试右击图像,然后单击检查元素进行仔细检查。

如果您确实需要添加一个类,您可以使用Theme Developer module来找出要覆盖的主题函数或模板文件。查看Theme Developer screencast for more details

+0

非常感谢,我曾看过,但没有考虑包含div,我找到了一个关于三层的div,那个课程是我以前做过的。 – 2011-03-14 13:18:36

19

如果您只需要定位CSS,上述答案将有所帮助。但是我需要在IMG标签上添加一个类。这是我解决问题的方式。这可能不是最好的方式,当然也不是唯一的方式,但它是一种有效的“Drupal方式”并且可行。打开您的模板的template.php文件。

粘贴以下功能,您必须修改和自定义您的使用场景。例如,您必须将<TEMPLATENAME>替换为您的模板名称,并根据需要添加或减去类,以及其他内容,如您所见。

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'; 
    } 
} 

我创建了一个“如果”语句来确定上课的时候应该添加到图像,但你必须要自定义你喜欢的 - 如果你想在所有的A类,你可能完全消除像场图像,或者你可能会说:“如果 drupal_is_front_page()”如果你只想把它应用在头版等

在我的情况,我创建了一个影像风格(配置>新闻>图片样式)为工作人员照片添加if子句并仅将我的首选类应用于指定图像样式的图像。我认为这是一个很好的做法,但你可以做你喜欢的事情。

现在,无论何时我正在查看包含图像样式为“Staff Photo”的图像字段的节点,这些类都会神奇地出现在IMG标记中,这正是我所需要的。

1

如果使用此函数,则Drupal会添加类,但会在首页显示错误“Notice:Undefined index:style_name in template_preprocess_image ..”。

我粘贴“_style”并确定。

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'; 
    } 
} 
相关问题