我网站的每个页面都有一个立即预订按钮。我想知道选择了哪个按钮,并且不想在网站上添加25个以上的块来手动添加类。如果我可以使按钮唯一,我可以使用Google Analytics(根据页面网址添加其他类)。但我不是编码器,尽管我熟悉PHP和jQuery。
答案 0 :(得分:0)
Hye Michael,在阅读了你的问题之后,我在我当地的测试drupal网站上测试了你的场景。实现它真的很容易。这是您需要将一段PHP代码放入您创建的块中。
<?php
$url = current_path();
$class_from_url = explode("/", $url);
echo "<a href=[link_to_whatever] class='". $class_from_url[0] ."'>[Link Title]</a>";
?>
确保您的&#34; PHP过滤器&#34;启用模块,允许您从&#34;文本格式&#34;中选择PHP代码。在块体下。
答案 1 :(得分:0)
对于Drupal 7,实现目标的最佳方法是将theme_button()
功能复制到主题的template.php
文件中,并添加一些自定义代码以检查网址并添加类。
YOURTHEME_button($vars) {
$element = $variables ['element'];
$element ['#attributes']['type'] = 'submit';
element_set_attributes($element, array('id', 'name', 'value'));
$element ['#attributes']['class'][] = 'form-' . $element ['#button_type'];
if (!empty($element ['#attributes']['disabled'])) {
$element ['#attributes']['class'][] = 'form-button-disabled';
}
// Check URL to determine what button class to add
$button_class = null;
$current_path = base_path() . request_path();
switch ($current_path) {
'/form1':
$button_class = 'button-for-form1';
break;
'/form2':
$button_class = 'button-for-form2';
break;
}
if ($button_class !== null) {
$element ['#attributes']['class'][] = $button_class;
}
return '<input' . drupal_attributes($element ['#attributes']) . ' />';
}
请注意,此方法仅为您明确指定的URL添加类,并忽略可能作为URL的一部分包含的任何用户提供的参数。