XmlSitemapListBuilder.php in XML sitemap 8
File
src/XmlSitemapListBuilder.php
View source
<?php
namespace Drupal\xmlsitemap;
use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\core\Language\LanguageInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class XmlSitemapListBuilder extends ConfigEntityListBuilder {
protected $moduleHandler;
protected $languageManager;
public function __construct(EntityTypeInterface $entity_type, EntityStorageInterface $storage, ModuleHandlerInterface $module_handler, LanguageManagerInterface $language_manager) {
parent::__construct($entity_type, $storage);
$this->moduleHandler = $module_handler;
$this->languageManager = $language_manager;
}
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container
->get('entity_type.manager')
->getStorage($entity_type
->id()), $container
->get('module_handler'), $container
->get('language_manager'));
}
public function render() {
xmlsitemap_check_status();
return parent::render();
}
public function buildHeader() {
$header['label'] = $this
->t('XmlSitemap');
if ($this->moduleHandler
->moduleExists('language')) {
$header['language'] = $this
->t('Language');
}
$header['id'] = $this
->t('Sitemap ID');
return $header + parent::buildHeader();
}
public function buildRow(EntityInterface $entity) {
$row['label'] = $entity
->label();
if ($this->moduleHandler
->moduleExists('language')) {
if (isset($entity
->getContext()['language'])) {
$language = $this->languageManager
->getLanguage($entity
->getContext()['language']);
if (!is_null($language) && $language instanceof LanguageInterface) {
$row['language'] = $language
->getName();
}
else {
\Drupal::logger('xmlsitemap')
->notice('Cannot determine language for sitemap @id', [
'@id' => $entity
->id(),
]);
$row['language'] = $this
->t('Undefined');
}
}
else {
$row['language'] = $this
->t('Undefined');
}
}
$row['id'] = $entity
->id();
return $row + parent::buildRow($entity);
}
public function getOperations(EntityInterface $entity) {
$operations = parent::getOperations($entity);
if (isset($operations['translate'])) {
unset($operations['translate']);
}
return $operations;
}
}