Repository URL to install this package:
|
Version:
2.5.1 ▾
|
<?php
namespace Drupal\dds_global_content\Controller;
use Drupal\Component\Transliteration\TransliterationInterface;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\dds_global_content\GlobalContent;
use Drupal\dds_global_content\GlobalContentStorage;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request;
class GlobalContentController extends ControllerBase {
private $storage;
private $transliteration;
protected $languageManager;
public function __construct(GlobalContentStorage $storage, TransliterationInterface $transliteration, LanguageManagerInterface $languageManager) {
$this->storage = $storage;
$this->transliteration = $transliteration;
$this->languageManager = $languageManager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('global_content.storage'),
$container->get('transliteration'),
$container->get('language_manager')
);
}
public function translatable_overview(Request $request) {
$group_id = $request->get('group_id');
$group = GlobalContent::loadGroup($group_id);
$languages = $this->languageManager->getNativeLanguages();
$rows = [];
$header = [
'title' => $this->t('Language'),
'operations' => $this->t('Operations'),
];
foreach ($languages as $language) {
$language_exists = FALSE;
/** @var GlobalContent $globalContent */
foreach ($group as $globalContent) {
$language_exists = $language_exists || $this->storage->languageExists($globalContent->getMachineName(), $language->getId());
}
$link_title = ($language_exists) ? $this->t('Edit') : $this->t('Translate');
$rows[] = [
'title' => $this->t($language->getName()),
'operations' => Link::createFromRoute($link_title, 'global_content.translate', [
'group_id' => $group_id,
'langcode' => $language->getId(),
]),
];
}
return [
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#empty' => $this->t('No translations available.'),
];
}
public function collection_category() {
return ['#markup' => 'category collection'];
}
}