86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Bdp\Modules\Gruppen\Controllers;
 | 
						|
 | 
						|
use Bdp\Libs\FileAccess;
 | 
						|
 | 
						|
class MainController
 | 
						|
{
 | 
						|
    public const KOMPASS_STAMMESGRUPPEN_GRUPPEN = 'kompass_stammesgruppen_gruppen';
 | 
						|
	public const KOMPASS_STAMMESGRUPPEN_TEILIS = 'kompass_stammesgruppen_teilis';
 | 
						|
 | 
						|
    public static function setup()
 | 
						|
    {
 | 
						|
	    global $wpdb;
 | 
						|
 | 
						|
        $charset = $wpdb->get_charset_collate();
 | 
						|
        $fileReader = new FileAccess();
 | 
						|
        foreach ([self::KOMPASS_STAMMESGRUPPEN_GRUPPEN, self::KOMPASS_STAMMESGRUPPEN_TEILIS] as $table) {
 | 
						|
	        $sqlTable = $wpdb->prefix . $table;
 | 
						|
	        $sql      = "SHOW TABLES LIKE '$sqlTable'";
 | 
						|
 | 
						|
	        $result = $wpdb->get_var( $sql );
 | 
						|
	        if ( $result == $sqlTable ) {
 | 
						|
		        continue;
 | 
						|
	        }
 | 
						|
 | 
						|
	        $sqlSetup = str_replace(
 | 
						|
		        '%tablename%',
 | 
						|
		        $sqlTable,
 | 
						|
		        $fileReader->get_contents( WP_PLUGIN_DIR . '/' . BDP_LV_PLUGIN_SLUG . '/lib/database/' . $table . '.sql' ) );
 | 
						|
 | 
						|
	        $sqlSetup = str_replace('%charset%', $charset, $sqlSetup);
 | 
						|
	        $sqlSetup = str_replace('%prefix%', $wpdb->prefix, $sqlSetup);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	        dbDelta( $sqlSetup );
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
    public function __construct()
 | 
						|
    {
 | 
						|
        add_submenu_page(
 | 
						|
                BDP_LV_PLUGIN_DIR . '/modules/index.php',
 | 
						|
                __('Groups', BDP_LV_PLUGIN_SLUG),
 | 
						|
	            __('Groups', BDP_LV_PLUGIN_SLUG),
 | 
						|
                'show_groups',
 | 
						|
                'kompass-groups',
 | 
						|
                [$this, 'router'],
 | 
						|
                1);
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    public function router()
 | 
						|
    {
 | 
						|
        if (isset($_REQUEST['action'])) {
 | 
						|
            switch ($_REQUEST['action']) {
 | 
						|
                case 'searchmember':
 | 
						|
                    $this->searchMember();
 | 
						|
                    break;
 | 
						|
 | 
						|
                default:
 | 
						|
	                kompass_print_gruppen_overview();
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
	        kompass_print_gruppen_overview();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    private function searchMember()
 | 
						|
    {
 | 
						|
	    global $dbHandler;
 | 
						|
        $members = $dbHandler->readSqlFromDb(self::KOMPASS_STAMMESGRUPPEN_TEILIS,
 | 
						|
        'SELECT * FROM %tablename% WHERE CONCAT(`vorname`, " " , `nachname`) LIKE "%' . $_POST['member_name'] . '%"');
 | 
						|
        $this->printMembers($members);
 | 
						|
    }
 | 
						|
 | 
						|
    private function printMembers(array $memberList)
 | 
						|
    {
 | 
						|
        if (count($memberList) === 0) {
 | 
						|
            exit;
 | 
						|
        }
 | 
						|
        kompass_print_gruppen_members($memberList);
 | 
						|
    }
 | 
						|
 | 
						|
} |