MenuTokenSupportedTokensController.php in Menu Token 9.1.x
File
src/Controller/MenuTokenSupportedTokensController.php
View source
<?php
namespace Drupal\menu_token\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\token\TreeBuilderInterface;
use Drupal\Core\Render\RendererInterface;
class MenuTokenSupportedTokensController extends ControllerBase {
protected $configFactory;
protected $treeBuilder;
protected $renderer;
public function __construct(ConfigFactoryInterface $configFactory, TreeBuilderInterface $treeBuilder, RendererInterface $renderer) {
$this->configFactory = $configFactory;
$this->treeBuilder = $treeBuilder;
$this->renderer = $renderer;
}
public function content() {
$availableEntitiesConfiguration = $this->configFactory
->get('menu_token.availableentitiesconfiguration');
$data = $availableEntitiesConfiguration
->getRawData();
$renderable = [];
foreach ($data['available_entities'] as $config_key => $config_item) {
if ($config_item !== 0) {
$renderable[] = $config_key;
}
}
$token_tree = $this->treeBuilder
->buildRenderable($renderable, [
'click_insert' => FALSE,
'show_restricted' => FALSE,
'show_nested' => FALSE,
]);
$output = '<dt>' . t('The list of the currently available tokens supported by menu_token are shown below.') . '</dt>';
$output .= '<br /><dd>' . $this->renderer
->render($token_tree) . '</dd>';
$output .= '</dl>';
$build = [
'#type' => 'markup',
'#markup' => $output,
];
return $build;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('token.tree_builder'), $container
->get('renderer'));
}
}