Próbowałem zdefiniować nowy sposób zastępowania okruszków, ale nadal dostaję domyślną stronę.
Utworzyłem niestandardowy moduł, foo_breadcrumb:
- modules/custom/foo_breadcrumb
- foo_breadcrumb.info.yml
- foo_breadcrumb.services.yml
- src/
- BreadcrumbBuild.php
Oto foo_breadcrumb.services.yml:
services:
foo_breadcrumb.breadcrumb:
class: Drupal\foo_breadcrumb\BreadcrumbBuild
tags:
- { name: breadcrumb_builder, priority: 100 }
W środku src/BreadcrumbBuild.phpmam:
<?php
namespace Drupal\foo_breadcrumb;
use Drupal\Core\Breadcrumb\BreadcrumbBuilderBase;
class BreadcrumbBuild implements BreadcrumbManager {
/**
* {@inheritdoc}
*/
public function applies(array $attributes) {
return true;
}
/**
* {@inheritdoc}
*/
public function build(array $attributes) {
$breadcrumb[] = $this->l($this->t('Test'), NULL);
$breadcrumb[] = $this->l($this->t('Test2'), 'test');
return $breadcrumb;
}
}
?>
Zacząłem pracować nad jedynym opisem, jaki mogłem znaleźć na bułce tartej Drupal 8 , ale wydaje się, że używa starszej wersji automatycznego ładowania PSR-4, która nie jest już na miejscu (dla rekordu jestem w wersji 8.0.0 -dev-beta3), więc sprawdziłem, jak działają wszystkie pozostałe moduły w bazie kodu.
Teraz jestem całkiem pewien, że to poprawne, aby moduł się załadował; jednak nie jestem pewien, czy
class BreadcrumbBuild extends BreadcrumbBuilderBase
jest poprawne. Problem polega na tym, że stary samouczek, do którego nawiązałem, wzmiankuje BreadcrumbBuilderBase, ale bardziej aktualne dokumenty nie wydają się o nim wspominać i zastanawiam się, czy jest nieaktualny - i jak powinienem to zrobić.
Podobnie, tak naprawdę nie rozumiem, co services.ymlrobi plik w tym zakresie, nigdzie nie ma na to dokumentacji.