mirror of
https://github.com/Karaka-Management/oms-Messages.git
synced 2026-01-17 03:18:39 +00:00
266 lines
8.7 KiB
PHP
266 lines
8.7 KiB
PHP
<?php
|
|
/**
|
|
* Orange Management
|
|
*
|
|
* PHP Version 7.0
|
|
*
|
|
* @category TBD
|
|
* @package TBD
|
|
* @author OMS Development Team <dev@oms.com>
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
* @copyright 2013 Dennis Eichhorn
|
|
* @license OMS License 1.0
|
|
* @version 1.0.0
|
|
* @link http://orange-management.com
|
|
*/
|
|
namespace Modules\Messages;
|
|
|
|
use Modules\Navigation\Models\Navigation;
|
|
use Modules\Navigation\Views\NavigationView;
|
|
use phpOMS\Contract\RenderableInterface;
|
|
use phpOMS\Message\RequestAbstract;
|
|
use phpOMS\Message\RequestDestination;
|
|
use phpOMS\Message\ResponseAbstract;
|
|
use phpOMS\Module\ModuleAbstract;
|
|
use phpOMS\Module\WebInterface;
|
|
use phpOMS\Views\View;
|
|
use phpOMS\Views\ViewLayout;
|
|
|
|
/**
|
|
* Messages controller class.
|
|
*
|
|
* @category Messages
|
|
* @package Modules\Messages
|
|
* @author OMS Development Team <dev@oms.com>
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
* @license OMS License 1.0
|
|
* @link http://orange-management.com
|
|
* @since 1.0.0
|
|
*/
|
|
class Controller extends ModuleAbstract implements WebInterface
|
|
{
|
|
|
|
/**
|
|
* Module path.
|
|
*
|
|
* @var \string
|
|
* @since 1.0.0
|
|
*/
|
|
const MODULE_PATH = __DIR__;
|
|
|
|
/**
|
|
* Module version.
|
|
*
|
|
* @var \string
|
|
* @since 1.0.0
|
|
*/
|
|
const MODULE_VERSION = '1.0.0';
|
|
|
|
/**
|
|
* Module name.
|
|
*
|
|
* @var \string
|
|
* @since 1.0.0
|
|
*/
|
|
const MODULE_NAME = 'Messages';
|
|
|
|
/**
|
|
* Localization files.
|
|
*
|
|
* @var \string
|
|
* @since 1.0.0
|
|
*/
|
|
protected static $localization = [
|
|
RequestDestination::BACKEND => [''],
|
|
];
|
|
|
|
/**
|
|
* Providing.
|
|
*
|
|
* @var \string
|
|
* @since 1.0.0
|
|
*/
|
|
protected static $providing = [];
|
|
|
|
/**
|
|
* Dependencies.
|
|
*
|
|
* @var \string
|
|
* @since 1.0.0
|
|
*/
|
|
protected static $dependencies = [];
|
|
|
|
/**
|
|
* Routing elements.
|
|
*
|
|
* @var array
|
|
* @since 1.0.0
|
|
*/
|
|
protected static $routes = [
|
|
'^.*/backend/messages/dashboard.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageInbox', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/backend/messages/outbox.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageOutbox', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/backend/messages/trash.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageTrash', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/backend/messages/spam.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageSpam', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/backend/messages/settings.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageSettings', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/backend/messages/mail/create.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageCreate', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/backend/messages/mail/single.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageView', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
'^.*/api/messages/mail/single.*$' => [['dest' => '\Modules\Messages\Controller:viewMessageView', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
|
];
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageInbox(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/dashboard');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageOutbox(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/mail-out-view');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageTrash(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/mail-trash-view');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageSpam(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/mail-spam-view');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageView(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/mail-view');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
$view->addData('id', (int) $request->getData('id'));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/mail-create');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
* @param mixed $data Generic data
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
public function viewMessageSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
|
{
|
|
$view = new View($this->app, $request, $response);
|
|
$view->setTemplate('/Modules/Messages/Theme/Backend/message-settings');
|
|
$view->addData('nav', $this->createNavigation(1001201001, $request, $response));
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* @param int $pageId Page/parent Id for navigation
|
|
* @param RequestAbstract $request Request
|
|
* @param ResponseAbstract $response Response
|
|
*
|
|
* @return RenderableInterface
|
|
*
|
|
* @since 1.0.0
|
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
|
*/
|
|
private function createNavigation(\int $pageId, RequestAbstract $request, ResponseAbstract $response)
|
|
{
|
|
$nav = Navigation::getInstance($request, $this->app->dbPool);
|
|
$navView = new NavigationView($this->app, $request, $response);
|
|
$navView->setTemplate('/Modules/Navigation/Theme/Backend/mid');
|
|
$navView->setNav($nav->getNav());
|
|
$navView->setLanguage($request->getL11n()->language);
|
|
$navView->setParent($pageId);
|
|
|
|
return $navView;
|
|
}
|
|
}
|