Мне нужно обернуть теги span вокруг текста, это то, что у меня есть - PullRequest
0 голосов
/ 11 сентября 2011

Drupal 7:

 function THEMENAME_breadcrumb($variables) {
  $breadcrumb = $variables['breadcrumb'];
  if (!empty($breadcrumb)) {

    // Provide a navigational heading to give context for breadcrumb links to
    // screen-reader users. Make the heading invisible with .element-invisible.
    $output = '<h2 class="element-invisible">' . t('You are here:') . '</h2>';
    $crumbs = '<ul class="breadcrumbs clearfix">';
    $array_size = count($breadcrumb);
    $i = 0;
    while ( $i < $array_size) {
      $crumbs .= '<li class="breadcrumb-' . $i;
      if ($i == 0) {
        $crumbs .= ' first';
      }
      if($i != 0 && $i+1 != $array_size ) {
        $crumbs .= ' middle';
      }
      if ($i+1 == $array_size) {
        $crumbs .= ' last';
      }
      $crumbs .=  '">' . $breadcrumb[$i] . '</li>';
      $i++;
    }
    $crumbs .= '</ul>';
    return $crumbs;
  }
}

Это выводит панировочные сухари в формате, который мне нужен, кроме того, что мне нужно добавить теги span вокруг текста внутри ссылки.

Ссылка пишется в седьмой строке снизу:

  $crumbs .=  '">' . $breadcrumb[$i] . '</li>';

Есть идеи?

1 Ответ

2 голосов
/ 11 сентября 2011

Так как я не могу видеть содержимое внутри $breadcrumb[$i], я не могу быть полностью уверен, что это будет работать, но следующий код должен работать для вас, поскольку он заключает что-либо внутри тега привязки с тегом span:

preg_match("@<a ([^>]+)>(.+)</a>@i", $breadcrumb[$i], $matches);
$crumbs .=  '"><a ' . $matches[1] . '><span>' . $matches[2] . '</span></a></li>';

Просто замените седьмую строку в вашей функции этими двумя строками и посмотрите, работает ли она! В противном случае, используйте var_dump на $breadcrumb[$i] и добавьте результат к вашему вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...