Измените Метку Формы, используя Regex в Drupal 8 - PullRequest
0 голосов
/ 05 мая 2018

У меня есть несколько полей формы, которые выглядят так: «Да (если« Да », пропустите следующий вопрос)», и я хотел бы, чтобы все метки с текстом внутри скобок были заключены в промежуток, чтобы их можно было стилизовать , Я пытался написать препроцесс, но он ничего не делает.

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

1 Ответ

0 голосов
/ 05 мая 2018

$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;
  }
}
...