Spaces:
No application file
No application file
namespace Mautic\CoreBundle\Controller; | |
use Mautic\CoreBundle\CoreEvents; | |
use Mautic\CoreBundle\Event\GlobalSearchEvent; | |
use Symfony\Component\HttpFoundation\Request; | |
/** | |
* Almost all other Mautic Bundle controllers extend this default controller. | |
*/ | |
class DefaultController extends CommonController | |
{ | |
/** | |
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response | |
*/ | |
public function indexAction(Request $request) | |
{ | |
$root = $this->coreParametersHelper->get('webroot'); | |
if (empty($root)) { | |
return $this->redirectToRoute('mautic_dashboard_index'); | |
} else { | |
/** @var \Mautic\PageBundle\Model\PageModel $pageModel */ | |
$pageModel = $this->getModel('page'); | |
$page = $pageModel->getEntity($root); | |
if (empty($page)) { | |
return $this->notFound(); | |
} | |
$slug = $pageModel->generateSlug($page); | |
$request->attributes->set('ignore_mismatch', true); | |
return $this->forward('Mautic\PageBundle\Controller\PublicController::indexAction', ['slug' => $slug]); | |
} | |
} | |
public function globalSearchAction(Request $request): \Symfony\Component\HttpFoundation\Response | |
{ | |
$searchStr = $request->get('global_search', $request->getSession()->get('mautic.global_search', '')); | |
$request->getSession()->set('mautic.global_search', $searchStr); | |
if (!empty($searchStr)) { | |
$event = new GlobalSearchEvent($searchStr, $this->translator); | |
$this->dispatcher->dispatch($event, CoreEvents::GLOBAL_SEARCH); | |
$results = $event->getResults(); | |
} else { | |
$results = []; | |
} | |
return $this->render('@MauticCore/GlobalSearch/globalsearch.html.twig', | |
[ | |
'results' => $results, | |
'searchString' => $searchStr, | |
] | |
); | |
} | |
/** | |
* @return \Symfony\Component\HttpFoundation\JsonResponse|\Symfony\Component\HttpFoundation\Response | |
*/ | |
public function notificationsAction(): \Symfony\Component\HttpFoundation\Response | |
{ | |
/** @var \Mautic\CoreBundle\Model\NotificationModel $model */ | |
$model = $this->getModel('core.notification'); | |
[$notifications, $showNewIndicator, $updateMessage] = $model->getNotificationContent(null, false, 200); | |
return $this->delegateView( | |
[ | |
'contentTemplate' => '@MauticCore/Notification/notifications.html.twig', | |
'viewParameters' => [ | |
'showNewIndicator' => $showNewIndicator, | |
'notifications' => $notifications, | |
'updateMessage' => $updateMessage, | |
], | |
] | |
); | |
} | |
} | |