Files
stemcell/app/code/Stemcell/Webinar/Controller/Adminhtml/Router.php
T
2026-09-15 10:26:34 +08:00

55 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Stemcell\Webinar\Controller\Adminhtml;
use Magento\Framework\App\ActionFactory;
use Magento\Framework\App\Action\Forward;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\App\RouterInterface;
class Router implements RouterInterface
{
protected $transportBuilder;
protected $actionFactory;
/**
* Router constructor
*
* @param ActionFactory $actionFactory
*/
public function __construct(ActionFactory $actionFactory)
{
$this->actionFactory = $actionFactory;
}
/**
* {@inheritdoc}
*/
public function match(RequestInterface $request)
{
$result = null;
if ($request->getModuleName() != 'example' && $this->validateRoute($request)) {
$request->setModuleName('example')
->setControllerName('index')
->setActionName('index')
->setParam('param', 3);
$result = $this->actionFactory->create(Forward::class);
}
return $result;
}
/**
* @param RequestInterface $request
* @return bool
*/
public function validateRoute(RequestInterface $request)
{
$identifier = trim($request->getPathInfo(), '/');
return strpos($identifier, 'webinar') !== false;
}
}