PHP массив хлебных крошек, ссылка не полная - PullRequest
0 голосов
/ 22 февраля 2020

I go следующий код для хлебных крошек:

<?php

class Breadcrumb
{
   private $breadcrumb;
   private $separator = ' / ';
   private $domain = 'example.org';

   public function build($array)
   {
      $breadcrumbs = array_merge(array('Home' => ''), $array);
      $count = 0;
      foreach($breadcrumbs as $title => $link) {
         $this->breadcrumb .= '
         <span itemscope="" itemtype="https://schema.org/BreadcrumbList">
            <a href="'.$this->domain. '/'.$link.'" itemprop="url">
               <span itemprop="title">'.$title.'</span>
            </a>
         </span>';

         $count++;
         if($count !== count($breadcrumbs)) {
            $this->breadcrumb .= $this->separator;
         }
      }
      return $this->breadcrumb;
   }
}

 ?>

Я называю это следующим образом:

<?php
$breadcrumb = new Breadcrumb();
  echo $breadcrumb->build(array(
  $pageTitle => 'about',
    'More' => 'more.php'
  )); 
?>

pageTitle - это переменная в верхней части каждой страницы.

Вывод правильный и показывает: Главная / О компании / Еще, но ссылка на каждый из них выглядит следующим образом:

Home: example.org
About: example.org/about
More: example.org/more.php

И я ищу такой вывод: example.org/ о / больше. php

Большое спасибо!

1 Ответ

0 голосов
/ 22 февраля 2020

Вы можете объединять ссылки по мере прохождения через l oop ...

$bclink = '';
foreach($breadcrumbs as $title => $link) {
    if ($link != '') {
        $bclink .= '/' . $link;
    }
    $this->breadcrumb .= '
        <span itemscope="" itemtype="https://schema.org/BreadcrumbList">
            <a href="'.$this->domain.$bclink.'" itemprop="url">
                <span itemprop="title">'.$title.'</span>
            </a>
        </span>';

    $count++;
    if($count !== count($breadcrumbs)) {
        $this->breadcrumb .= $this->separator;
    }
}
...