新しいブレッドクラムオーバーライドを定義しようとしましたが、サイトのデフォルトのままです。
foo_breadcrumbというカスタムモジュールを作成しました。
- modules/custom/foo_breadcrumb
- foo_breadcrumb.info.yml
- foo_breadcrumb.services.yml
- src/
- BreadcrumbBuild.php
ここにありfoo_breadcrumb.services.yml
ます:
services:
foo_breadcrumb.breadcrumb:
class: Drupal\foo_breadcrumb\BreadcrumbBuild
tags:
- { name: breadcrumb_builder, priority: 100 }
内部にはsrc/BreadcrumbBuild.php
、私が持っています:
<?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;
}
}
?>
Drupal 8のパンくずリストで見つけることができる唯一の記事から作業を始めましたが、実際には、もはや存在しない古いバージョンのPSR-4自動ロードを使用しているようです(8.0.0のレコードの場合) -dev-beta3)、それで私は他のすべてのモジュールがコードベースでどのように機能するかを調べました。
これで、モジュールをロードするのにこれが正しいと確信しています。しかし、私はわからない
class BreadcrumbBuild extends BreadcrumbBuilderBase
正しい。問題は、私がリンクしている言及にリンクした古いチュートリアルですBreadcrumbBuilderBase
が、最新のドキュメントでは言及していないようであり、古くなっているのかどうか、そしてどうすればいいのか疑問です。
同様に、services.yml
この点でファイルが何をしているのか本当に理解していません。これに関するドキュメントはどこにもありません。