繁体   English   中英

在Drupal 8中使用Regex更改表单标签

[英]Alter Form Label using Regex in Drupal 8

我有一些看起来像这样的表单字段:“是(如果是,请跳过下一个问题)”,并且我希望将括号内带有文本的任何标签包裹在一个跨度中,以便对其进行样式设置。 我尝试编写一个预处理程序,但是它什么也没做。

function THEME_preprocess_form_element_label(&$variables){
  $element = $variables['element'];
  $title = $element['#title'];
  $pat = "/\((.*?)\)/";
  if (isset($title) && preg_match($pat, $title)) {
    $titleSplit = preg_split($pat, $title);
    $newTitle = $titleSplit[0]+"<span>"+$titleSplit[1]+"</span>";
    $title = $newTitle;
  }
}

$title = $newTitle; 在函数中设置$title变量,但在通过引用传递的&$variables上未设置。
尝试:

function THEME_preprocess_form_element_label(&$variables){
  $pat = "/\((.*?)\)/";
  if (isset($variables['element']['#title']) && preg_match($pat, $variables['element']['#title'])) {
    $titleSplit = preg_split($pat, $variables['element']['#title']);
    $newTitle = $titleSplit[0]+"<span>"+$titleSplit[1]+"</span>";
    $variables['element']['#title'] = $newTitle;
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM