Repository URL to install this package:
|
Version:
2.1.0 ▾
|
<?php
namespace Drupal\dds\Routing;
use Drupal\Core\Routing\RouteSubscriberBase;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
class UtilitiesRouteSubscriber extends RouteSubscriberBase {
/**
* Alters existing routes for a specific collection.
*
* @param \Symfony\Component\Routing\RouteCollection $collection
* The route collection for adding routes.
*/
protected function alterRoutes(RouteCollection $collection) {
$config = \Drupal::config('dds.utilities');
$enabled = [];
// Because drupal also saves values of unchecked checkboxes, we need to
// filter those out.
if (!empty($config->get('enabled'))) {
foreach ($config->get('enabled') as $key => $value) {
if ($value === $key) {
$enabled[] = $key;
}
}
}
$routes = [];
// Add nofollow/noindex route.
if (in_array('nofollow_noindex', $enabled)) {
$routes['dds.utilities.nofollow_form'] = new Route(
'/admin/config/dds/utilities/nofollow',
[
'_title' => 'No-follow / No-index',
'_form' => '\Drupal\dds\Form\NoFollowForm'
],
[
'_permission' => 'administer nofollow settings'
]
);
}
// Add Anti-autodiscover route.
if (in_array('anti_autodiscover', $enabled)) {
// Autodiscover
$routes['dds.utilities.anti_autodiscover'] = new Route(
'/autodiscover/autodiscover.xml',
[
'_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
],
[
'_permission' => 'access content'
]
);
$routes['dds.utilities.anti_autodiscover2'] = new Route(
'/autodiscover/autodiscover.svc',
[
'_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
],
[
'_permission' => 'access content'
]
);
// Active Sync
$routes['dds.utilities.anti_activesync'] = new Route(
'/Microsoft-Server-ActiveSync',
[
'_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
],
[
'_permission' => 'access content'
]
);
// Thunderbird
$routes['dds.utilities.anti_thunderbird'] = new Route(
'/.well-known/autoconfig/mail/config-v1.1.xml',
[
'_controller' => 'Drupal\dds\Controller\AntiAutodiscoverController::autodiscover'
],
[
'_permission' => 'access content'
]
);
}
foreach ($routes as $key => $route) {
$collection->add($key, $route);
}
}
}