ExtlinkExtraController.php in External Links Extra 8
File
src/Controller/ExtlinkExtraController.php
View source
<?php
namespace Drupal\extlink_extra\Controller;
use Drupal\Core\Cache\CacheableResponseInterface;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Render\HtmlResponse;
use Drupal\Core\Render\RendererInterface;
use Drupal\Core\Utility\Token;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class ExtlinkExtraController extends ControllerBase {
protected $configFactory;
protected $token;
protected $requestStack;
protected $renderer;
public function __construct(ConfigFactoryInterface $config_factory, Token $token, RequestStack $request_stack, RendererInterface $renderer) {
$this->configFactory = $config_factory;
$this->token = $token;
$this->requestStack = $request_stack;
$this->renderer = $renderer;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('token'), $container
->get('request_stack'), $container
->get('renderer'));
}
public function getTitle() {
$config = $this->configFactory
->get('extlink_extra.settings');
$extlink_token_data = [
'extlink' => [
'external_url' => isset($_COOKIE['external_url']) ? $_COOKIE['external_url'] : NULL,
'back_url' => isset($_COOKIE['back_url']) ? $_COOKIE['back_url'] : NULL,
],
];
$page_title = $config
->get('extlink_page_title') ?: NULL;
return $this->token
->replace($page_title, $extlink_token_data);
}
public function leave() {
$output = [
'#theme' => 'extlink_extra_leaving',
];
if ($this->requestStack
->getCurrentRequest()->request
->get('colorbox')) {
$html = $this->renderer
->render($output);
return new HtmlResponse($html);
}
return $output;
}
}