diff --git a/src/Form/SpreadshopConfigForm.php b/src/Form/SpreadshopConfigForm.php index 9125510..2f59193 100644 --- a/src/Form/SpreadshopConfigForm.php +++ b/src/Form/SpreadshopConfigForm.php @@ -3,11 +3,15 @@ namespace Drupal\spreadshop\Form; use Drupal; +use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; use Drupal\Core\Link; use Drupal\spreadshop\Service\SpreadshopYmlLoader; +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\HttpFoundation\RequestStack; +use Drupal\Core\DependencyInjection\ContainerInjectionInterface; /** * Output of our admin page. @@ -17,7 +21,7 @@ use Drupal\spreadshop\Service\SpreadshopYmlLoader; * @license GNU General Public License version 2 or later; see LICENSE.txt * @link https://yoursite.com/yourshopname */ -class SpreadshopConfigForm extends ConfigFormBase { +class SpreadshopConfigForm extends ConfigFormBase implements ContainerInjectionInterface { /** * Config file for form settings. @@ -27,6 +31,25 @@ class SpreadshopConfigForm extends ConfigFormBase { */ const SETTINGS = 'spreadshop.settings'; + private $requestStack; + + /** + * {@inheritdoc} + */ + public function __construct(ConfigFactoryInterface $config_factory, RequestStack $request_stack) { + parent::__construct($config_factory); + $this->requestStack = $request_stack; + } + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('config.factory'), + $container->get('request_stack') + ); + } + /** * Form id name. * @@ -299,7 +322,7 @@ class SpreadshopConfigForm extends ConfigFormBase { */ public function getFormUrl($formLabel, $formUrl, $formTarget, $formClass) { - $url = Drupal::request()->getSchemeAndHttpHost(); + $url = $this->requestStack->getCurrentRequest()->getSchemeAndHttpHost(); $setUrl = (!filter_var($formUrl, FILTER_VALIDATE_URL)) ? $url . '/' . $formUrl . '#!/' : $formUrl; $link = Link::fromTextAndUrl(