diff --git a/Admin/Activate.php b/Admin/Activate.php new file mode 100644 index 0000000..7ba7680 --- /dev/null +++ b/Admin/Activate.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\ActivateAbstract; +use phpOMS\Module\InfoManager; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Activate extends ActivateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function activate(DatabasePool $dbPool, InfoManager $info) + { + parent::activate($dbPool, $info); + } +} diff --git a/Admin/Deactivate.php b/Admin/Deactivate.php new file mode 100644 index 0000000..0781995 --- /dev/null +++ b/Admin/Deactivate.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\DeactivateAbstract; +use phpOMS\Module\InfoManager; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Deactivate extends DeactivateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function deactivate(DatabasePool $dbPool, InfoManager $info) + { + parent::deactivate($dbPool, $info); + } +} diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json new file mode 100644 index 0000000..8d3f6a1 --- /dev/null +++ b/Admin/Install/Navigation.install.json @@ -0,0 +1,108 @@ +[ + { + "id": 1001201001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 1, + "subtype": 1, + "name": "Messages", + "uri": "/{/lang}/backend/messages/dashboard?{?}", + "target": "self", + "icon": "fa fa-envelope", + "order": 10, + "from": "Messages", + "permission": null, + "parent": 0, + "children": [ + { + "id": 1001202001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 3, + "subtype": 1, + "name": "Inbox", + "uri": "/{/lang}/backend/messages/dashboard?{?}", + "target": "self", + "icon": null, + "order": 1, + "from": "Messages", + "permission": null, + "parent": 1001201001, + "children": [] + }, + { + "id": 1001203001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 3, + "subtype": 1, + "name": "Outbox", + "uri": "/{/lang}/backend/messages/outbox?{?}", + "target": "self", + "icon": null, + "order": 5, + "from": "Messages", + "permission": null, + "parent": 1001201001, + "children": [] + }, + { + "id": 1001204001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 3, + "subtype": 1, + "name": "Trash", + "uri": "/{/lang}/backend/messages/trash?{?}", + "target": "self", + "icon": null, + "order": 10, + "from": "Messages", + "permission": null, + "parent": 1001201001, + "children": [] + }, + { + "id": 1001205001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 3, + "subtype": 1, + "name": "Spam", + "uri": "/{/lang}/backend/messages/spam?{?}", + "target": "self", + "icon": null, + "order": 15, + "from": "Messages", + "permission": null, + "parent": 1001201001, + "children": [] + }, + { + "id": 1001206001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 3, + "subtype": 1, + "name": "Draft", + "uri": "/{/lang}/backend/messages/draft?{?}", + "target": "self", + "icon": null, + "order": 20, + "from": "Messages", + "permission": null, + "parent": 1001201001, + "children": [] + }, + { + "id": 1001207001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 3, + "subtype": 1, + "name": "Settings", + "uri": "/{/lang}/backend/messages/settings?{?}", + "target": "self", + "icon": null, + "order": 50, + "from": "Messages", + "permission": null, + "parent": 1001201001, + "children": [] + } + ] + } +] diff --git a/Admin/Install/Navigation.php b/Admin/Install/Navigation.php new file mode 100644 index 0000000..f19993a --- /dev/null +++ b/Admin/Install/Navigation.php @@ -0,0 +1,40 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages\Admin\Install; +use phpOMS\DataStorage\Database\DatabasePool; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Navigation +{ + public static function install(string $path, DatabasePool $dbPool) + { + $navData = json_decode(file_get_contents(__DIR__ . '/Navigation.install.json'), true); + + $class = '\\Modules\\Navigation\\Admin\\Installer'; + /** @var $class \Modules\Navigation\Admin\Installer */ + $class::installExternal($dbPool, $navData); + } +} diff --git a/Admin/Installer.php b/Admin/Installer.php new file mode 100644 index 0000000..efe88d7 --- /dev/null +++ b/Admin/Installer.php @@ -0,0 +1,88 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages\Admin; + +use phpOMS\DataStorage\Database\DatabaseType; +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\InfoManager; +use phpOMS\Module\InstallerAbstract; + +/** + * Messages install class. + * + * @category Modules + * @package Modules\Messages + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Installer extends InstallerAbstract +{ + + /** + * {@inheritdoc} + */ + public static function install(string $path, DatabasePool $dbPool, InfoManager $info) + { + parent::install($path, $dbPool, $info); + + switch ($dbPool->get('core')->getType()) { + case DatabaseType::MYSQL: + $dbPool->get('core')->con->prepare( + 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'message` ( + `message_id` int(11) NOT NULL AUTO_INCREMENT, + `message_type` tinyint(11) NOT NULL, + `message_account` int(11) DEFAULT NULL, + `message_email` varchar(256) NULL, + `message_sent` datetime NULL, + `message_cc` varchar(256) DEFAULT NULL, + `message_bcc` varchar(256) DEFAULT NULL, + `message_content` text DEFAULT NULL, + `message_reference` int(11) DEFAULT NULL, + PRIMARY KEY (`message_id`), + KEY `message_account` (`message_account`), + KEY `message_reference` (`message_reference`) + )ENGINE=InnoDB DEFAULT CHARSET=utf8;' + )->execute(); + + $dbPool->get('core')->con->prepare( + 'ALTER TABLE `' . $dbPool->get('core')->prefix . 'message` + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'message_ibfk_1` FOREIGN KEY (`message_account`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`), + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'message_ibfk_2` FOREIGN KEY (`message_reference`) REFERENCES `' . $dbPool->get('core')->prefix . 'message` (`message_id`);' + )->execute(); + + $dbPool->get('core')->con->prepare( + 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'messages_attachment` ( + `messages_attachment_id` int(11) NOT NULL AUTO_INCREMENT, + `messages_attachment_media` int(11) DEFAULT NULL, + `messages_attachment_message` int(11) NULL, + PRIMARY KEY (`messages_attachment_id`), + KEY `messages_attachment_media` (`messages_attachment_media`), + KEY `messages_attachment_message` (`messages_attachment_message`) + )ENGINE=InnoDB DEFAULT CHARSET=utf8;' + )->execute(); + + $dbPool->get('core')->con->prepare( + 'ALTER TABLE `' . $dbPool->get('core')->prefix . 'messages_attachment` + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'messages_attachment_ibfk_1` FOREIGN KEY (`messages_attachment_media`) REFERENCES `' . $dbPool->get('core')->prefix . 'media` (`media_id`), + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'messages_attachment_ibfk_2` FOREIGN KEY (`messages_attachment_message`) REFERENCES `' . $dbPool->get('core')->prefix . 'message` (`message_id`);' + )->execute(); + break; + } + } +} diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php new file mode 100644 index 0000000..51cd1c2 --- /dev/null +++ b/Admin/Routes/Web/Backend.php @@ -0,0 +1,54 @@ + [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageInbox', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/messages/outbox.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageOutbox', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/messages/trash.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageTrash', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/messages/spam.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageSpam', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/messages/settings.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageSettings', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/messages/mail/create.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageCreate', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/messages/mail/single.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageView', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/api/messages/mail/single.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller:viewMessageView', + 'verb' => RouteVerb::GET, + ], + ], +]; diff --git a/Admin/Routes/console.php b/Admin/Routes/console.php new file mode 100644 index 0000000..1ecbfac --- /dev/null +++ b/Admin/Routes/console.php @@ -0,0 +1,3 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\DataStorage\Database\Schema\Builder; +use phpOMS\Module\UninstallAbstract; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Uninstall extends UninstallAbstract +{ + + /** + * {@inheritdoc} + */ + public static function uninstall(DatabasePool $dbPool, InfoManager $info) + { + parent::uninstall($dbPool, $info); + + $query = new Builder($dbPool->get()); + + $query->prefix($dbPool->get('core')->getPrefix())->drop( + 'messages_attachment', + 'message' + ); + + $dbPool->get()->con->prepare($query->toSql())->execute(); + } +} diff --git a/Admin/Update.php b/Admin/Update.php new file mode 100644 index 0000000..c93aef0 --- /dev/null +++ b/Admin/Update.php @@ -0,0 +1,46 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages\Admin; + + +use phpOMS\DataStorage\Database\DatabasePool; +use phpOMS\Module\UpdateAbstract; +use phpOMS\System\File\Directory; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Update extends UpdateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function update(DatabasePool $dbPool, array $info) + { + Directory::deletePath(__DIR__ . '/Update'); + mkdir('Update'); + parent::update($dbPool, $info); + } +} diff --git a/Controller.php b/Controller.php new file mode 100644 index 0000000..de2a4e7 --- /dev/null +++ b/Controller.php @@ -0,0 +1,217 @@ + + * @author Dennis Eichhorn + * @copyright 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\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 + * @author Dennis Eichhorn + * @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 + */ + /* public */ const MODULE_PATH = __DIR__; + + /** + * Module version. + * + * @var string + * @since 1.0.0 + */ + /* public */ const MODULE_VERSION = '1.0.0'; + + /** + * Module name. + * + * @var string + * @since 1.0.0 + */ + /* public */ const MODULE_NAME = 'Messages'; + + /** + * Providing. + * + * @var string + * @since 1.0.0 + */ + protected static $providing = []; + + /** + * Dependencies. + * + * @var string + * @since 1.0.0 + */ + protected static $dependencies = [ + ]; + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewMessageInbox(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/dashboard'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(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 + */ + public function viewMessageOutbox(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/mail-out-view'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(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 + */ + public function viewMessageTrash(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/mail-trash-view'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(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 + */ + public function viewMessageSpam(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/mail-spam-view'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(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 + */ + public function viewMessageView(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/mail-view'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(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 + */ + public function viewMessageCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/mail-create'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(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 + */ + public function viewMessageSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/message-settings'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001201001, $request, $response)); + + return $view; + } + +} diff --git a/Models/Email.php b/Models/Email.php new file mode 100644 index 0000000..a505aaa --- /dev/null +++ b/Models/Email.php @@ -0,0 +1,42 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages; + +/** + * Email interface. + * + * @category Modules + * @package Messages + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +interface Email +{ + public function connect($host, $port, $user, $password); + + public function getListNew(); + + public function getListAll(); + + public function getMessage(); + + public function removeMessage(); + + public function setStatus(); +} diff --git a/Models/IMAP.php b/Models/IMAP.php new file mode 100644 index 0000000..4dbad17 --- /dev/null +++ b/Models/IMAP.php @@ -0,0 +1,68 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Messages; + +use Modules\Messages\Email; + +/** + * IMAP class. + * + * @category Modules + * @package Messages + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class IMAP implements Email +{ + private $con = null; + + public function __construct() + { + } + + public function connect($host, $port, $user, $password) + { + $this->con = imap_open('{' . $host . ':' . $port . '}', $user, $password); + } + + public function getListNew() + { + // TODO: Implement getListNew() method. + } + + public function getListAll() + { + // TODO: Implement getListAll() method. + } + + public function getMessage() + { + // TODO: Implement getMessage() method. + } + + public function removeMessage() + { + // TODO: Implement removeMessage() method. + } + + public function setStatus() + { + // TODO: Implement setStatus() method. + } +} diff --git a/Models/SMTP.php b/Models/SMTP.php new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..bccd3f6 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Messages # diff --git a/Theme/Backend/Lang/Navigation.en.lang.php b/Theme/Backend/Lang/Navigation.en.lang.php new file mode 100644 index 0000000..7cd3ebd --- /dev/null +++ b/Theme/Backend/Lang/Navigation.en.lang.php @@ -0,0 +1,24 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +return ['Navigation' => [ + 'Draft' => 'Draft', + 'Inbox' => 'Inbox', + 'Messages' => 'Messages', + 'Outbox' => 'Outbox', + 'Settings' => 'Settings', + 'Spam' => 'Spam', + 'Trash' => 'Trash', +]]; diff --git a/Theme/Backend/Lang/api.en.lang.php b/Theme/Backend/Lang/api.en.lang.php new file mode 100644 index 0000000..afe845f --- /dev/null +++ b/Theme/Backend/Lang/api.en.lang.php @@ -0,0 +1,17 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$MODLANG[1] = [ +]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php new file mode 100644 index 0000000..fb98bd3 --- /dev/null +++ b/Theme/Backend/Lang/en.lang.php @@ -0,0 +1,43 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +return ['Messages' => [ + 'All' => 'All', + 'AverageAmount' => 'Avg. Amount', + 'BCC' => 'BCC', + 'CC' => 'CC', + 'Date' => 'Date', + 'Draft' => 'Draft', + 'From' => 'From', + 'Inbox' => 'Inbox', + 'Interval' => 'Interval', + 'Mailboxes' => 'Mailboxes', + 'Messages' => 'Messages', + 'Month' => 'Month', + 'New' => 'New', + 'Outbox' => 'Outbox', + 'Received' => 'Received', + 'Sent' => 'Sent', + 'Spam' => 'Spam', + 'Statistics' => 'Statistics', + 'Status' => 'Status', + 'Subject' => 'Subject', + 'Tag' => 'Tag', + 'To' => 'To', + 'Today' => 'Today', + 'Trash' => 'Trash', + 'Week' => 'Week', + 'Year' => 'Year', +]]; diff --git a/Theme/Backend/dashboard.tpl.php b/Theme/Backend/dashboard.tpl.php new file mode 100644 index 0000000..6ec4c45 --- /dev/null +++ b/Theme/Backend/dashboard.tpl.php @@ -0,0 +1,68 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$mail = new \phpOMS\Message\Mail\Imap(); +$mail->connect('{imap.gmail.com:993/imap/ssl}INBOX', 'dev.orange.management@gmail.com', DEV_PASSWORD); +$unseen = $mail->getInboxUnseen(); +$seen = $mail->getInboxSeen(); +$quota = $mail->getQuota(); + +echo $this->getData('nav')->render(); ?> + +
+ +
+ +
+ + + + + + + $value) : $count++; + $url = \phpOMS\Uri\UriFactory::build('/{/lang}/backend/messages/mail/single?{?}&id=' . $value->uid); ?> + + + +
getText('Messages'); ?>
+ getText('Tag'); ?> + getText('Subject'); ?> + getText('From'); ?> + getText('Date'); ?> +
/ +
+ seen == 0 ? ' class="unseen"' : ''; ?>> + seen == 0 ? ' class="unseen"' : ''; ?>>subject)); ?> + seen == 0 ? ' class="unseen"' : ''; ?>>from; ?> + seen == 0 ? ' class="unseen"' : ''; ?>>date))->format('Y-m-d H:i:s'); ?> + + + $value) : $count++; + $url = \phpOMS\Uri\UriFactory::build('/{/lang}/backend/messages/mail/single?{?}&id=' . $value->uid); ?> +
+ seen == 0 ? ' class="unseen"' : ''; ?>> + seen == 0 ? ' class="unseen"' : ''; ?>>subject)); ?> + seen == 0 ? ' class="unseen"' : ''; ?>>from; ?> + seen == 0 ? ' class="unseen"' : ''; ?>>date))->format('Y-m-d H:i:s'); ?> + + +
getText('Empty', 0, 0); ?> + +
+
diff --git a/Theme/Backend/mail-create.tpl.php b/Theme/Backend/mail-create.tpl.php new file mode 100644 index 0000000..64ab5c9 --- /dev/null +++ b/Theme/Backend/mail-create.tpl.php @@ -0,0 +1,32 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +echo $this->getData('nav')->render(); ?> + +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
diff --git a/Theme/Backend/mail-out-view.tpl.php b/Theme/Backend/mail-out-view.tpl.php new file mode 100644 index 0000000..b24ecda --- /dev/null +++ b/Theme/Backend/mail-out-view.tpl.php @@ -0,0 +1,57 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$mail = new \phpOMS\Message\Mail\Imap(); +$mail->connect('{imap.gmail.com:993/imap/ssl}[Gmail]/Gesendet', 'dev.orange.management@gmail.com', DEV_PASSWORD); +$sent = $mail->getInboxAll(); +$quota = $mail->getQuota(); + +echo $this->getData('nav')->render(); ?> + +
+ +
+ +
+ + + + + + + $value) : $count++; + $url = \phpOMS\Uri\UriFactory::build('/{/lang}/backend/messages/mail/single?{?}&id=' . $value->uid); ?> + + +
getText('Messages'); ?>
+ getText('Tag'); ?> + getText('Subject'); ?> + getText('From'); ?> + getText('Date'); ?> +
/ +
+ seen == 0 ? ' class="unseen"' : ''; ?>> + seen == 0 ? ' class="unseen"' : ''; ?>>subject)); ?> + seen == 0 ? ' class="unseen"' : ''; ?>>from; ?> + seen == 0 ? ' class="unseen"' : ''; ?>>date))->format('Y-m-d H:i:s'); ?> + + +
getText('Empty', 0, 0); ?> + +
+
diff --git a/Theme/Backend/mail-spam-view.tpl.php b/Theme/Backend/mail-spam-view.tpl.php new file mode 100644 index 0000000..b24ecda --- /dev/null +++ b/Theme/Backend/mail-spam-view.tpl.php @@ -0,0 +1,57 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$mail = new \phpOMS\Message\Mail\Imap(); +$mail->connect('{imap.gmail.com:993/imap/ssl}[Gmail]/Gesendet', 'dev.orange.management@gmail.com', DEV_PASSWORD); +$sent = $mail->getInboxAll(); +$quota = $mail->getQuota(); + +echo $this->getData('nav')->render(); ?> + +
+ +
+ +
+ + + + + + + $value) : $count++; + $url = \phpOMS\Uri\UriFactory::build('/{/lang}/backend/messages/mail/single?{?}&id=' . $value->uid); ?> + + +
getText('Messages'); ?>
+ getText('Tag'); ?> + getText('Subject'); ?> + getText('From'); ?> + getText('Date'); ?> +
/ +
+ seen == 0 ? ' class="unseen"' : ''; ?>> + seen == 0 ? ' class="unseen"' : ''; ?>>subject)); ?> + seen == 0 ? ' class="unseen"' : ''; ?>>from; ?> + seen == 0 ? ' class="unseen"' : ''; ?>>date))->format('Y-m-d H:i:s'); ?> + + +
getText('Empty', 0, 0); ?> + +
+
diff --git a/Theme/Backend/mail-trash-view.tpl.php b/Theme/Backend/mail-trash-view.tpl.php new file mode 100644 index 0000000..b24ecda --- /dev/null +++ b/Theme/Backend/mail-trash-view.tpl.php @@ -0,0 +1,57 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$mail = new \phpOMS\Message\Mail\Imap(); +$mail->connect('{imap.gmail.com:993/imap/ssl}[Gmail]/Gesendet', 'dev.orange.management@gmail.com', DEV_PASSWORD); +$sent = $mail->getInboxAll(); +$quota = $mail->getQuota(); + +echo $this->getData('nav')->render(); ?> + +
+ +
+ +
+ + + + + + + $value) : $count++; + $url = \phpOMS\Uri\UriFactory::build('/{/lang}/backend/messages/mail/single?{?}&id=' . $value->uid); ?> + + +
getText('Messages'); ?>
+ getText('Tag'); ?> + getText('Subject'); ?> + getText('From'); ?> + getText('Date'); ?> +
/ +
+ seen == 0 ? ' class="unseen"' : ''; ?>> + seen == 0 ? ' class="unseen"' : ''; ?>>subject)); ?> + seen == 0 ? ' class="unseen"' : ''; ?>>from; ?> + seen == 0 ? ' class="unseen"' : ''; ?>>date))->format('Y-m-d H:i:s'); ?> + + +
getText('Empty', 0, 0); ?> + +
+
diff --git a/Theme/Backend/mail-view.tpl.php b/Theme/Backend/mail-view.tpl.php new file mode 100644 index 0000000..16c9cdc --- /dev/null +++ b/Theme/Backend/mail-view.tpl.php @@ -0,0 +1,27 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$mail = new \phpOMS\Message\Mail\Imap(); +$mail->connect('{imap.gmail.com:993/imap/ssl}INBOX', 'dev.orange.management@gmail.com', DEV_PASSWORD); +$mails = $mail->getEmail($this->getData('id')); + +echo $this->getData('nav')->render(); ?> + +
+

subject)); ?>

+
+ encoding); ?> +
+
diff --git a/Theme/Backend/message-settings.tpl.php b/Theme/Backend/message-settings.tpl.php new file mode 100644 index 0000000..d2aad1c --- /dev/null +++ b/Theme/Backend/message-settings.tpl.php @@ -0,0 +1,66 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$mail = new \phpOMS\Message\Mail\Imap(); +$mail->connect('{imap.gmail.com:993/imap/ssl}', 'dev.orange.management@gmail.com', DEV_PASSWORD); +$boxes = $mail->getBoxes(); + +echo $this->getData('nav')->render(); ?> + +
+

getText('Mailboxes'); ?>

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/img/module_teaser_small.png b/img/module_teaser_small.png new file mode 100644 index 0000000..f56e6ff Binary files /dev/null and b/img/module_teaser_small.png differ diff --git a/info.json b/info.json new file mode 100644 index 0000000..0ed2016 --- /dev/null +++ b/info.json @@ -0,0 +1,44 @@ +{ + "name": { + "id": 1001200000, + "internal": "Messages", + "external": "OMS Messages" + }, + "version": "1.0.0", + "requirements": { + "phpOMS": "1.0.0", + "phpOMS-db": "1.0.0" + }, + "creator": { + "name": "Orange Management", + "website": "www.spl1nes.com" + }, + "description": "Messages module.", + "directory": "Messages", + "dependencies": { + "Admin" : "1.0.0" + }, + "providing": { + "Navigation": "*" + }, + "load": [ + { + "pid": [ + "ea312354fa4b4029c8a121b7da7992983d3132a9" + ], + "type": 4, + "for": 0, + "from": "Messages", + "file": "Messages" + }, + { + "pid": [ + "754a08ddf8bcb1cf22f310f09206dd783d42f7dd" + ], + "type": 5, + "from": "Messages", + "for": "Navigation", + "file": "Navigation" + } + ] +}