<?php namespace Bdp\Modules\Mail\Controllers; use Bdp\Libs\FileAccess; use SearchMemberRequest; class MailController { public function __construct() { add_menu_page( __('E-Mail', BDP_LV_PLUGIN_SLUG), __('E-Mail', BDP_LV_PLUGIN_SLUG), 'send_mails', 'kompass-mail', [$this, 'router'], 'dashicons-email', 4 ); } public function router() { if (isset($_REQUEST['action'])) { switch ($_REQUEST['action']) { case 'send-email': new Sendmail(); new MailCompose(); break; case 'create_group_form': new \Bdp\Modules\Gruppen\Controllers\CreateGroupController(); break; case 'update-group': \UpdateGroupAction::execute(['gruppen_name' => $_REQUEST['kompass_groups_group_name']], (int)$_REQUEST['group_id']); new \Bdp\Modules\Gruppen\Controllers\PrintGroupsController(); break; case 'create-group': $data = ['gruppen_name' => $_REQUEST['kompass_groups_group_name']]; \CreateGroupAction::execute($data); new \Bdp\Modules\Gruppen\Controllers\PrintGroupsController(); break; case 'new-member': new \Bdp\Modules\Gruppen\Controllers\CreateMemberController(); break; case 'create-member': $userData = \CreateGroupMemberDataAction::execute($_REQUEST); if (count($userData['errors']) === 0) { $memberId = \CreateGroupMemberAction::execute( $userData['data'] ); new \Bdp\Modules\Gruppen\Controllers\PrintMemberController($memberId); } else { kompass_print_message_box(implode('<br />', $userData['errors']), 'error'); new \Bdp\Modules\Gruppen\Controllers\CreateMemberController($userData['rawData']); exit; } new \Bdp\Modules\Gruppen\Controllers\PrintGroupsController(); break; case 'show-members': $memberList = \ListMemberRequest::listForGroup((int)$_REQUEST['group-id']); new \Bdp\Modules\Gruppen\Controllers\PrintMemberListController($memberList); break; case 'show-member': new \Bdp\Modules\Gruppen\Controllers\PrintMemberController((int)$_REQUEST['member-id']); break; case 'compose-mail': current_user_can('send_mails'); break; case 'delete-group': if (current_user_can('delete_groups')) { } break; case 'edit-group': if (current_user_can('edit_groups')) { kompass_edit_group_form($_REQUEST['group-id']); } break; default: } } else { new MailCompose(); } } private function listMembers() { } private function printMembers(array $memberList) { } }