epic-anmeldungen #2
@@ -15,6 +15,7 @@
 | 
				
			|||||||
use Bdp\Modules\Gruppen\Controllers\MainController as GruppenMain;
 | 
					use Bdp\Modules\Gruppen\Controllers\MainController as GruppenMain;
 | 
				
			||||||
use Bdp\Modules\KompassSettings\Controllers\SettingsPage as KomnpassSettings;
 | 
					use Bdp\Modules\KompassSettings\Controllers\SettingsPage as KomnpassSettings;
 | 
				
			||||||
use Bdp\Modules\LimitLoginAttempts\Controllers\OptionsPage as OptionsPageAlias;
 | 
					use Bdp\Modules\LimitLoginAttempts\Controllers\OptionsPage as OptionsPageAlias;
 | 
				
			||||||
 | 
					use Bdp\Modules\Mail\Controllers\MailController;
 | 
				
			||||||
use Bdp\Modules\Security\Security;
 | 
					use Bdp\Modules\Security\Security;
 | 
				
			||||||
use Bdp\Modules\Seo\Seo;
 | 
					use Bdp\Modules\Seo\Seo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,6 +48,7 @@ add_action('admin_menu', function () {
 | 
				
			|||||||
	new OptionsPageAlias();
 | 
						new OptionsPageAlias();
 | 
				
			||||||
	new KomnpassSettings();
 | 
						new KomnpassSettings();
 | 
				
			||||||
	new GruppenMain();
 | 
						new GruppenMain();
 | 
				
			||||||
 | 
						new MailController();
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@ function add_custom_admin_bar_item() {
 | 
				
			|||||||
			'id'    => 'kompass_gruppen',
 | 
								'id'    => 'kompass_gruppen',
 | 
				
			||||||
			'title' => '<span class="ab-icon dashicons-groups"></span>' .
 | 
								'title' => '<span class="ab-icon dashicons-groups"></span>' .
 | 
				
			||||||
		        '<span class="ab-label">' .__('Groups', BDP_LV_PLUGIN_SLUG) . '</span>',
 | 
							        '<span class="ab-label">' .__('Groups', BDP_LV_PLUGIN_SLUG) . '</span>',
 | 
				
			||||||
			'href'  => 'admin.php?page=kompass-groups',
 | 
								'href'  => get_admin_url() . 'admin.php?page=kompass-groups',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		];
 | 
							];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,16 +25,20 @@ foreach (glob($directoryPath . '*.php') as $file) {
 | 
				
			|||||||
	require_once $file;
 | 
						require_once $file;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$modules = ['KompassSettings', 'LimitLoginAttempts', 'PasswordStrength', 'seo', 'Gruppen'];
 | 
					 | 
				
			||||||
$subdirs = ['includes', 'Controllers', 'Views', 'Requests', 'Actions'];
 | 
					$subdirs = ['includes', 'Controllers', 'Views', 'Requests', 'Actions'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
foreach ($modules as $curModule) {
 | 
					foreach (scandir(BDP_LV_PLUGIN_DIR . 'modules/') as $curModule) {
 | 
				
			||||||
    foreach ($subdirs as $dir) {
 | 
						if ($curModule != '.' && $curModule != '..' && is_dir(BDP_LV_PLUGIN_DIR . 'modules/' . $curModule))
 | 
				
			||||||
        $directoryPath = BDP_LV_PLUGIN_DIR . 'modules/' . $curModule . '/' . $dir . '/';
 | 
						{
 | 
				
			||||||
        foreach (glob($directoryPath . '*.php') as $file) {
 | 
							if ($curModule == 'calendar') {
 | 
				
			||||||
            require_once $file;
 | 
								continue;
 | 
				
			||||||
        }
 | 
							}
 | 
				
			||||||
    }
 | 
					
 | 
				
			||||||
 | 
							foreach ($subdirs as $dir) {
 | 
				
			||||||
 | 
								$directoryPath = BDP_LV_PLUGIN_DIR . 'modules/' . $curModule . '/' . $dir . '/';
 | 
				
			||||||
 | 
								foreach (glob($directoryPath . '*.php') as $file) {
 | 
				
			||||||
 | 
									require_once $file;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -59,6 +59,13 @@ function kompass_print_gruppen_overview()
 | 
				
			|||||||
        <?php
 | 
					        <?php
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
	echo '</p>';
 | 
						echo '</p>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Gutenberg-Editor einbinden
 | 
				
			||||||
 | 
						wp_editor( '', 'gutenberg_content', array(
 | 
				
			||||||
 | 
							'textarea_name' => 'gutenberg_content',
 | 
				
			||||||
 | 
					//		'media_buttons' => false, // Deaktivieren der Medien-Upload-Schaltfläche
 | 
				
			||||||
 | 
						) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function kompass_get_group_actions(int $groupId, int $participantCount) : string
 | 
					function kompass_get_group_actions(int $groupId, int $participantCount) : string
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								modules/Mail/Controllers/MailCompose.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								modules/Mail/Controllers/MailCompose.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					namespace Bdp\Modules\Mail\Controllers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MailCompose
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						function __construct()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							kompass_print_mail_compose();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										153
									
								
								modules/Mail/Controllers/MailController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								modules/Mail/Controllers/MailController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,153 @@
 | 
				
			|||||||
 | 
					<?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
 | 
				
			||||||
 | 
						    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/*$mailCompose = new MailCompose();
 | 
				
			||||||
 | 
						    add_submenu_page(
 | 
				
			||||||
 | 
							    'kompass-mail',
 | 
				
			||||||
 | 
							    __('Templates', BDP_LV_PLUGIN_SLUG),
 | 
				
			||||||
 | 
							    __('Templates', BDP_LV_PLUGIN_SLUG),
 | 
				
			||||||
 | 
							    'send_mails',
 | 
				
			||||||
 | 
							    'kompass-mail-compose',
 | 
				
			||||||
 | 
							    [$mailCompose, '__construct'],
 | 
				
			||||||
 | 
							    1);*/
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function router()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
							if (isset($_REQUEST['action'])) {
 | 
				
			||||||
 | 
					            switch ($_REQUEST['action']) {
 | 
				
			||||||
 | 
					                case 'send-email':
 | 
				
			||||||
 | 
						                // SMTP-Konfiguration
 | 
				
			||||||
 | 
						                $smtp_host = 'bdp.mein-verein.online'; // SMTP-Host
 | 
				
			||||||
 | 
						                $smtp_port = 25; // SMTP-Port
 | 
				
			||||||
 | 
						                $smtp_username = 'noreply@mareike.sachsen.pfadfinden.de'; // SMTP-Benutzername
 | 
				
			||||||
 | 
						                $smtp_password = 'fwJ_wxbW9G45'; // SMTP-Passwort
 | 
				
			||||||
 | 
						                $smtp_secure = 'tls'; // Verschlüsselung (tls oder ssl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						                // Einstellungen für wp_mail ändern
 | 
				
			||||||
 | 
						                add_action( 'phpmailer_init', function( $phpmailer ) use ( $smtp_host, $smtp_port, $smtp_username, $smtp_password, $smtp_secure ) {
 | 
				
			||||||
 | 
							                $phpmailer->isSMTP();
 | 
				
			||||||
 | 
							                $phpmailer->Host = $smtp_host;
 | 
				
			||||||
 | 
							                $phpmailer->Port = $smtp_port;
 | 
				
			||||||
 | 
							                $phpmailer->SMTPAuth = true;
 | 
				
			||||||
 | 
							                $phpmailer->Username = $smtp_username;
 | 
				
			||||||
 | 
							                $phpmailer->Password = $smtp_password;
 | 
				
			||||||
 | 
											$phpmailer->setFrom('info@pfadfinden-halle.de', 'Pfadfinden - Halle');
 | 
				
			||||||
 | 
							                #$phpmailer->SMTPSecure = $smtp_secure;
 | 
				
			||||||
 | 
						                } );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						                // Senden Sie die E-Mail
 | 
				
			||||||
 | 
						                $sent = wp_mail($_REQUEST['mail-to'],$_REQUEST['mail-subject'],$_REQUEST['mail-text'],
 | 
				
			||||||
 | 
							                ['Reply-To: ' . $_REQUEST['mail-from'], 'Content-Type: text/html; charset=UTF-8']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						                // Überprüfen, ob die E-Mail erfolgreich gesendet wurde
 | 
				
			||||||
 | 
						                if ( $sent ) {
 | 
				
			||||||
 | 
							                echo '<p>E-Mail wurde erfolgreich gesendet!</p>';
 | 
				
			||||||
 | 
						                } else {
 | 
				
			||||||
 | 
							                echo '<p>Fehler beim Senden der E-Mail!</p>';
 | 
				
			||||||
 | 
						                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										echo $_REQUEST['mail-to'] . '<br />';
 | 
				
			||||||
 | 
										echo $_REQUEST['mail-text'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										echo 'mail gesendet';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						                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)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										34
									
								
								modules/Mail/Views/MailCompose.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								modules/Mail/Views/MailCompose.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function kompass_print_mail_compose()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						global $dbHandler;
 | 
				
			||||||
 | 
						?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <form method="post" action="admin.php?page=kompass-mail" style="width: 80%; margin: auto">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    <table style="width: 100%">
 | 
				
			||||||
 | 
							    <input type="hidden" name="action" value="send-email" />
 | 
				
			||||||
 | 
							    <tr>
 | 
				
			||||||
 | 
								    <td><?= __('From: ', BDP_LV_PLUGIN_SLUG); ?></td>
 | 
				
			||||||
 | 
								    <td><input type="text" name="mail-from" style="width: 100%"></td>
 | 
				
			||||||
 | 
							    </tr>
 | 
				
			||||||
 | 
							    <tr>
 | 
				
			||||||
 | 
								    <td><?= __('To: ', BDP_LV_PLUGIN_SLUG); ?></td>
 | 
				
			||||||
 | 
								    <td><input type="text" name="mail-to" style="width: 100%"></td>
 | 
				
			||||||
 | 
							    </tr>
 | 
				
			||||||
 | 
							    <tr>
 | 
				
			||||||
 | 
								    <td><?= __('Subject: ', BDP_LV_PLUGIN_SLUG); ?></td>
 | 
				
			||||||
 | 
								    <td><input type="text" name="mail-subject" style="width: 100%"></td>
 | 
				
			||||||
 | 
							    </tr>
 | 
				
			||||||
 | 
						    </table>
 | 
				
			||||||
 | 
						    <?php
 | 
				
			||||||
 | 
					        wp_editor( '', 'gutenberg_content', array(
 | 
				
			||||||
 | 
					            'textarea_name' => 'mail-text',
 | 
				
			||||||
 | 
					    //		'media_buttons' => false, // Deaktivieren der Medien-Upload-Schaltfläche
 | 
				
			||||||
 | 
					        ) );
 | 
				
			||||||
 | 
					        submit_button(__('Send email', BDP_LV_PLUGIN_SLUG));
 | 
				
			||||||
 | 
					        ?>
 | 
				
			||||||
 | 
					    </form>
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user