我想在我的template.php(drupal主题)中使用以下内容:
$search_button ='search-button.png';
if($('#page-wrapper').hasClass('blue-colour')) {
$search_button ='search-button-blue.png';
}
else if ($('#page-wrapper').hasClass('green-colour')) {
$search_button ='search-button-green.png';
}
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/'.$search_button);
哪个不起作用,因为它是jQuery。问题是这个位的语法:
如果($( '#页的包装器')。hasClass( '蓝色'))
如果不使用javascript或jQuery,只使用php和/或一些Drupal函数,我怎么能做同样的事情呢?
我想根据HTML元素上设置的类替换搜索框的图标:
<div id="page-wrapper" class="blue-colour">
在这种情况下,它会检查该类是否为“蓝色”,并在变量($ search_button)上设置正确的蓝色图标。
答案 0 :(得分:2)
javascript和jQuery是客户端,这意味着页面已经加载,javascript直接在客户端的计算机上运行在加载的DOM上。
PHP是服务器端,这意味着页面是由PHP在服务器上编写的,然后超文本将被传输到客户端的计算机。
根据类更改图像需要客户端代码,除非您已经知道该类。
例如,
$class = 'blue-colour';
switch ($class) {
case 'blue-colour':
echo '<img src="blue-colour.jpg" alt="blue-colour" />'
break;
default:
echo '<img src="default.jpg" alt="default" />';
}
如何确定类取决于您的代码,但必须在页面解析期间完成。
答案 1 :(得分:2)
这不能直接回答你的问题,但你可以使用css解决这个问题:
text-indent: -9999em;
.blue-colour .button {
background: url(search-button-blue.png);
}
.green-colour .button {
background: url(search-button-green.png);
}
答案 2 :(得分:0)
你可以尝试使用dom解析器,虽然它会很棘手。