Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal 7-将同一类添加到所有<;img>;内容区域中的标记_Php_Drupal_Drupal 7_Drupal Theming - Fatal编程技术网

Php Drupal 7-将同一类添加到所有<;img>;内容区域中的标记

Php Drupal 7-将同一类添加到所有<;img>;内容区域中的标记,php,drupal,drupal-7,drupal-theming,Php,Drupal,Drupal 7,Drupal Theming,我有一个在线投资组合网站,我把它从静态HTML转换成Drupal7,试图学习Drupal。我有3个单独的页面,有图像库。我有一个javascript(.js)文件,可以将反射添加到任何带有class=“reflect”的图像上。显然,在HTML中,这很容易做到,而且在我的静态站点中效果很好。我想继续使用它,但我一辈子都不知道如何将所需的类添加到我的图像中 预期结果: <img src="image.jpg" class="reflect" /> <img src="image2

我有一个在线投资组合网站,我把它从静态HTML转换成Drupal7,试图学习Drupal。我有3个单独的页面,有图像库。我有一个javascript(.js)文件,可以将反射添加到任何带有class=“reflect”的图像上。显然,在HTML中,这很容易做到,而且在我的静态站点中效果很好。我想继续使用它,但我一辈子都不知道如何将所需的类添加到我的图像中

预期结果:

<img src="image.jpg" class="reflect" />
<img src="image2.jpg" class="reflect" />
<img src="image3.jpg" class="reflect" />

等等

解决其他发现的建议: 目前我所有的图片都没有任何类别。
我确实找到了一些建议的解决方法,但它们不太适合我的需要,因为我需要将相同的类添加到所有现有的标记中,而忽略任何其他地方,例如页眉和页脚。另外,虽然我懂一点PHP,但我并不擅长它。Drupal应该是完全动态的,所以我肯定有办法做到这一点,但我不知所措。

您可以将图像放在一个div中,并通过它为所有图像分配一个类,如下所示:

<div class="imgDiv">
    <img src="image.jpg" alt="" />
    <img src="image2.jpg" alt="" />
    <img src="image3.jpg" alt="" />
</div>

是的,您可以使用id包装div,并在css文件中为img标记添加css。您还可以使用jquery

您可以实现()来实现这一点,在
template.php
文件中键入以下内容:

function [YOUR_THEME]_image($variables)
{
    $attributes = $variables['attributes'];
    $attributes['src'] = file_create_url($variables['path']);

    $attributes['class'][] = 'reflect'; // add the class name here

    foreach (array('width', 'height', 'alt', 'title') as $key) {

        if (isset($variables[$key])) {
            $attributes[$key] = $variables[$key];
        }
    }

    return '<img' . drupal_attributes($attributes) . ' />';
}
函数[你的主题]\u图像($variables)
{
$attributes=$variables['attributes'];
$attributes['src']=file_create_url($variables['path']);
$attributes['class'][='reflect';//在此处添加类名
foreach(数组('width','height','alt','title')作为$key){
if(isset($variables[$key])){
$attributes[$key]=$variables[$key];
}
}
返回“”;
}
请注意,该类将被添加到整个站点的所有图像中


希望这有助于。。。穆罕默德。

对不起,这根本不是我需要的。这不是CSS问题,这是HTML问题(可能是PHP问题,取决于您如何看待它)。坦率地说,你似乎甚至没有阅读整个问题,因为我认为我已经说得很清楚了。我需要的是我所有的图像都有一个class=“reflect”。如果我的图像与上面显示的不一样,那么它就不正确,也不起作用。我正在使用的.js不会以任何其他方式完成。你的所有图像都是同一个字段的实例吗?如果我理解你的问题,我不这么认为。我相信我为每个画廊创作了不同的作品。但我可能在想其他的事情。好吧,这确实起到了作用,并且为我的所有图片添加了所需的类。所以我感谢你。正如我担心的那样,它会进入不受欢迎的区域,比如网站的其他页面,其中包含图片,但不属于我的图库——比如我的博客。有没有办法告诉它忽略特定的节点、页面、区域或其他东西?或者将其聚焦,使其仅在3个图像库中工作?因此我猜这是否定的?图像是否通过
视图
节点页面
传递到页面?!我很确定他们是通过一个视图输入的,这个视图是一个画廊模块,它使用视图来更加具体。
function [YOUR_THEME]_image($variables)
{
    $attributes = $variables['attributes'];
    $attributes['src'] = file_create_url($variables['path']);

    $attributes['class'][] = 'reflect'; // add the class name here

    foreach (array('width', 'height', 'alt', 'title') as $key) {

        if (isset($variables[$key])) {
            $attributes[$key] = $variables[$key];
        }
    }

    return '<img' . drupal_attributes($attributes) . ' />';
}