diff --git a/_class/class_camp.php b/_class/class_camp.php index e799966..0b6f067 100644 --- a/_class/class_camp.php +++ b/_class/class_camp.php @@ -229,6 +229,19 @@ class camp return $sql->num_of_rows("select * from camp join camp_apply on capp_camp_id = camp_id where capp_status = 5 AND camp_id = " . $this->get_camp_id()); } + public function get_camp_applies() { + //visszaadja az elfogadott jelentkezéseket ABC sorrendben + global $sql; + $apply_assoc_array = $sql->assoc_array("SELECT * FROM camp_apply JOIN camp_kid ON ck_id = capp_camp_kid_ck_id WHERE capp_status = 3 AND capp_camp_id = " . $this->get_camp_id() . " ORDER BY ck_name ASC;"); + $apply_array = array(); + foreach ($apply_assoc_array as $apply) { + $new_apply = new camp_apply(); + $new_apply->set_capp_data_by_id($apply['capp_id']); + $apply_array[] = $new_apply; + } + return $apply_array; + } + public function set_camp_data_by_id($_camp_id) { global $sql; diff --git a/_class/class_log.php b/_class/class_log.php index 0bc62b3..2c1b41e 100644 --- a/_class/class_log.php +++ b/_class/class_log.php @@ -19,6 +19,7 @@ class log { if (get_class($user) == 'user') $function_name = 'get_ua_id'; elseif(get_class($user) == 'user_kid') $function_name = 'get_uk_id'; elseif(get_class($user) == 'camp_user') $function_name = 'get_cu_id'; + elseif(get_class($user) == 'user_camp_leader') $function_name = 'get_ucl_id'; } $sql->insert_into('log', array( diff --git a/_class/class_login.php b/_class/class_login.php index 1f43de7..7e82e03 100755 --- a/_class/class_login.php +++ b/_class/class_login.php @@ -108,6 +108,21 @@ class login { return null; } + public function check_camp_leader_login($_user_name, $_user_password) { + global $sql; + $check_query = + " + SELECT ucl_id FROM user_camp_leader WHERE + (ucl_name = '" . $_user_name . "' AND + ucl_password = '" . md5($_user_password ) . "') AND ucl_deleted = 0"; + + //echo $check_query; + + if ($sql->num_of_rows($check_query)) return $sql->single_variable($check_query); + + return null; + } + public function login_user($_user_id, $_cookie_name, $_user_type) { //beállítja a belépett user adatait cookieba (ha még nincs) global $sql; @@ -126,6 +141,9 @@ class login { elseif ($_user_type == 4) { $user_login = new camp_user(); } + elseif ($_user_type == 5) { + $user_login = new user_camp_leader(); + } $user_login->set_user_data_by_id($_user_id); $user_login->update_login_time(); setcookie($_cookie_name, $_user_id, time()+60*60*168, '/'); diff --git a/_class/class_page.php b/_class/class_page.php index 8b70410..0c18425 100755 --- a/_class/class_page.php +++ b/_class/class_page.php @@ -43,6 +43,11 @@ class page { $menu_assoc_array = $sql->assoc_array($menus_query); $smarty->assign('menus', $menu_assoc_array); } + elseif ($this->get_page() == 'taborvezeto') { + $menus_query = "SELECT * FROM subpage WHERE spage_page_id = 5;"; + $menu_assoc_array = $sql->assoc_array($menus_query); + $smarty->assign('menus', $menu_assoc_array); + } $smarty->assign('page', $this->get_page()); $smarty->display('nav.tpl'); @@ -206,6 +211,14 @@ class page { # TÁBORI JELENTKEZŐ ADATAINAK MEGTEKINTÉSE include('include_apply.php'); break; + case 'camp_user': + # táborvezetők + include('include_user_camp_leader.php'); + break; + case 'camp_details': + # turnusok + include('include_camp_details.php'); + break; case 'delete_training_type': # EDZÉS TÍPUS TÖRLÉS include('include_delete_training_type.php'); @@ -258,6 +271,10 @@ class page { # TÁBORI PÓLÓ TÖRLÉS include('include_delete_camp_shirt.php'); break; + case 'delete_camp_leader': + # TÁBORVEZETŐ TÖRLÉS + include('include_delete_camp_leader.php'); + break; case 'logout': # kijelentkezés $from = "admin"; @@ -364,7 +381,7 @@ class page { break; case 'move_next': # továbblépés mentés nélkül - include('include_move_next.php'); + include('include_move_next.php'); break; case 'logout': # kijelentkezés @@ -380,6 +397,27 @@ class page { break; } break; + case 'taborvezeto': + # TÁBORVEZETŐI NÉZET + switch ($this->get_subpage()) { + case 'taborok': + # turnusok + include('include_camp_details.php'); + break; + case 'jelentkezes': + # turnusok + include('include_apply.php'); + break; + case 'logout': + # kijelentkezés + $from = "taborvezeto"; + include('include_logout.php'); + break; + default: + include('include_camp_details.php'); + break; + } + break; default: break; } diff --git a/_class/class_user_camp_leader.php b/_class/class_user_camp_leader.php new file mode 100644 index 0000000..c767596 --- /dev/null +++ b/_class/class_user_camp_leader.php @@ -0,0 +1,193 @@ +ucl_id; + } + + /** + * sets the value of ucl_id. + * + * @param mixed $ucl_id the ucl id + * + * @return self + */ + private function set_ucl_id($ucl_id) + { + $this->ucl_id = $ucl_id; + + return $this; + } + + /** + * gets the value of ucl_name. + * + * @return mixed + */ + public function get_ucl_name() + { + return $this->ucl_name; + } + + /** + * sets the value of ucl_name. + * + * @param mixed $ucl_name the ucl name + * + * @return self + */ + private function set_ucl_name($ucl_name) + { + $this->ucl_name = $ucl_name; + + return $this; + } + + /** + * gets the value of ucl_password. + * + * @return mixed + */ + public function get_ucl_password() + { + return $this->ucl_password; + } + + /** + * sets the value of ucl_password. + * + * @param mixed $ucl_password the ucl password + * + * @return self + */ + private function set_ucl_password($ucl_password) + { + $this->ucl_password = $ucl_password; + + return $this; + } + + /** + * gets the value of ucl_last_login. + * + * @return mixed + */ + public function get_ucl_last_login() + { + return $this->ucl_last_login; + } + + /** + * sets the value of ucl_last_login. + * + * @param mixed $ucl_last_login the ucl last login + * + * @return self + */ + private function set_ucl_last_login($ucl_last_login) + { + $this->ucl_last_login = $ucl_last_login; + + return $this; + } + + /** + * gets the value of ucl_deleted. + * + * @return mixed + */ + public function get_ucl_deleted() + { + return $this->ucl_deleted; + } + + /** + * sets the value of ucl_deleted. + * + * @param mixed $ucl_deleted the ucl deleted + * + * @return self + */ + private function set_ucl_deleted($ucl_deleted) + { + $this->ucl_deleted = $ucl_deleted; + + return $this; + } + + public function update_login_time($_ucl_id = null) { + global $sql; + //az adott user_id-n updateli a login_time-ot + $sql->update_table('user_camp_leader', array('ucl_last_login' => date('Y-m-d')), array('ucl_id' => (empty($_ucl_id)?$this->get_ucl_id():$_ucl_id))); + } + + public function is_logged_in() { + //leellenőrzi cookie alapján h be vagyunk-e jelentkezve + //JAVÍTVA: adja vissza az adattag igazságértékét + return $this->logged_in; + } + + public function set_login($_login) { + //bool-t kap paraméterül + $this->logged_in = $_login; + } + + public function set_user_data_by_id($_user_id) { + global $sql; + $ucl_assoc_array = $sql->assoc_array("select * from user_camp_leader where ucl_id = " . $_user_id); + $ucl_array = $ucl_assoc_array[0]; + //alapadatok + foreach ($ucl_array as $field => $value) { + $function_name = "set_" . $field; + $this->$function_name($value); + $this->set_login(true); + } + } + + public static function create_camp_leader($_name, $_password) { + global $sql; + return $sql->insert_into('user_camp_leader', array( + 'ucl_name' => $_name, + 'ucl_password' => md5($_password) + )); + } + + public static function update_camp_leader($_name, $_password, $_ucl_id) { + global $sql; + if ($_password) { + $sql->update_table('user_camp_leader', array( + 'ucl_name' => $_name, + 'ucl_password' => md5($_password) + ), array( + 'ucl_id' => $_ucl_id + )); + } + else { + $sql->update_table('user_camp_leader', array( + 'ucl_name' => $_name + ), array( + 'ucl_id' => $_ucl_id + )); + } + } +} + +?> \ No newline at end of file diff --git a/_css/camp_leader.css b/_css/camp_leader.css new file mode 100644 index 0000000..d81c7e8 --- /dev/null +++ b/_css/camp_leader.css @@ -0,0 +1,118 @@ +nav { + box-shadow: none; + width: 100%; +} + +ul.topnav { + background-color: #419012; +} + +main #main_content, main #loading { + width: 100%; + box-shadow: none; +} + +.info { + padding: 0px 8%; +} + +#cct_extra_row { + margin-top: 10px; + display: none; +} + +#add_more_cct, #move_next { + margin-bottom: 15px; +} + +h1, p { + text-align: center; +} + +.info p, .info h1{ + text-align: unset; +} + +form table { + margin: 0px auto; + border-collapse: collapse; + border: 2px solid black; + background: #e7d6d6; + min-width: 400px; +} + +form table td { + font-size: 20px; + padding: 5px 10px; +} + +form table tr:hover td { + background-color: #602f2f; + color: #fff; +} + +.danger { + width: 64%; + display: block; + margin: 20px auto; + padding: 15px; +} + +.middle { + display: block; + margin: 20px auto; +} + +h2 { + text-align: center; + margin-top: 50px; +} + +.apply_table img:hover { + cursor: pointer; +} + +.reset img { + width: 15px; + display: inline-block; + position: relative; + top: 2px; + left: 5px; +} + +.reset a { + color: #000; +} + +.reset a:hover { + text-decoration: underline; +} + +.apply_table a, .apply_table a:link, .apply_table a:visited, .apply_table a:active { + color: #000; +} + +.apply_table a:hover { + text-decoration: underline; +} + +.accept_terms_box { + width: 80%; + border: 0; + border-left: 2px solid black; + margin: 30px auto 20px auto; +} + + +.accept_terms_box a, .accept_terms_box a:link, .accept_terms_box a:visited, .accept_terms_box a:active { + color: #000; +} + +.accept_terms_box a:hover { + text-decoration: underline; +} + +input.apply { + font-size: 20px; + font-weight: bold; +} \ No newline at end of file diff --git a/_include/include_camp_details.php b/_include/include_camp_details.php new file mode 100644 index 0000000..afe45a5 --- /dev/null +++ b/_include/include_camp_details.php @@ -0,0 +1,22 @@ +is_id()) { + # empty +} + +else { + + # TURNUS LISTA, LEGÖRDÜLŐ GYEREKEKKEL + + $camps_assoc_array = $sql->assoc_array("SELECT * FROM camp WHERE camp_deleted = 0 ORDER BY camp_from ASC;"); + $camps = array(); + foreach ($camps_assoc_array as $camp_array) { + $new_camp = new camp(); + $new_camp->set_camp_data_by_id($camp_array['camp_id']); + $camps[] = $new_camp; + } + + $smarty->assign('camps', $camps); + $smarty->display('camp_details.tpl'); +} +?> diff --git a/_include/include_create.php b/_include/include_create.php index 7859bad..b103efb 100755 --- a/_include/include_create.php +++ b/_include/include_create.php @@ -201,6 +201,10 @@ switch ($this->get_id()) { # CAMP SHIRT létrehozása $smarty->display('camp_shirt_create.tpl'); break; + case 'user_camp_leader': + # táborvezető létrehozása + $smarty->display('user_camp_leader_create.tpl'); + break; default: # code... break; diff --git a/_include/include_delete_camp_leader.php b/_include/include_delete_camp_leader.php new file mode 100644 index 0000000..2396a4c --- /dev/null +++ b/_include/include_delete_camp_leader.php @@ -0,0 +1,10 @@ +is_id()) { + $sql->update_table('user_camp_leader', array('ucl_deleted' => 1), array('ucl_id' => $this->get_id())); + log::register('delete_camp_leader', $this->get_id()); + header("Location: /admin/camp_user"); +} + + +?> \ No newline at end of file diff --git a/_include/include_logout.php b/_include/include_logout.php index 61fe440..22c1c40 100644 --- a/_include/include_logout.php +++ b/_include/include_logout.php @@ -1,27 +1,43 @@ is_id()) { + + # TÁBORVEZETŐ SZERKESZTÉSE + + $ucl = new user_camp_leader(); + $ucl->set_user_data_by_id($this->get_id()); + + $smarty->assign('user', $ucl); + $smarty->display('user_camp_leader_data_edit.tpl'); +} + +else { + + # TÁBORVEZETŐ LISTA + + $ucl_assoc_array = $sql->assoc_array("SELECT * FROM user_camp_leader WHERE ucl_deleted = 0 ORDER BY ucl_name ASC;"); + $ucl_array = array(); + foreach ($ucl_assoc_array as $ucl) { + $new_ucl = new user_camp_leader(); + $new_ucl->set_user_data_by_id($ucl['ucl_id']); + $ucl_array[] = $new_ucl; + } + + $smarty->assign('ucl_array', $ucl_array); + $smarty->display('user_camp_leader_list.tpl'); +} + +?> \ No newline at end of file diff --git a/common.php b/common.php index e12c811..e849539 100644 --- a/common.php +++ b/common.php @@ -159,6 +159,13 @@ elseif ($_GET['page'] == 'tabor' && (isset($_COOKIE['badminton_camp_user']))) { $smarty->assign('user_login', $user); //var_dump($user); } +elseif ($_GET['page'] == 'taborvezeto' && (isset($_COOKIE['badminton_camp_leader']))) { + $user = new user_camp_leader(); + $user->set_user_data_by_id($_COOKIE['badminton_camp_leader']); + $logout = true; + $smarty->assign('user_login', $user); + //var_dump($user); +} $smarty->assign('can_logout', $logout); diff --git a/event_handler.php b/event_handler.php index 226e160..a3642b3 100644 --- a/event_handler.php +++ b/event_handler.php @@ -37,6 +37,7 @@ if (isset($_POST['action'])) { if ($_REQUEST['page'] == 'view') $user_kid_id = $login->check_kid_login($_POST['user_name'], $_POST['user_password']); if ($_REQUEST['page'] == 'coach') $user_coach_id = $login->check_coach_login($_POST['user_name'], $_POST['user_password']); if ($_REQUEST['page'] == 'tabor') $user_camp_id = $login->check_camp_login($_POST['user_name'], $_POST['user_password']); + if ($_REQUEST['page'] == 'taborvezeto') $user_camp_leader_id = $login->check_camp_leader_login($_POST['user_name'], $_POST['user_password']); if ($user_admin_id) { //sikeres bejelentkezés adminként @@ -62,6 +63,12 @@ if (isset($_POST['action'])) { log::register('camp_user_login', $user_camp_id, null, $user_camp_id); header("Location: " . $actual_link); } + elseif ($user_camp_leader_id) { + //sikeres bejelentkezés szülőként + $login->login_user($user_camp_leader_id, 'badminton_camp_leader', 5); + log::register('camp_leader_login', $user_camp_leader_id, null, $user_camp_leader_id); + header("Location: " . $actual_link); + } else { //die($user_coach_id); //sikertelen bejelentkezés @@ -485,6 +492,21 @@ if (isset($_POST['action'])) { camp_apply::update_camp_apply($_POST['camp_apply_id'], 2, $_POST['camp_accomodation'], $_POST['camp_shuttle'], date('Y-m-d H:i:s'), 'null', $_POST['camp_id']); header('Location: /tabor/jelentkezes/5'); break; + case 'user_camp_leader_create': + # táborvezető létrehozása + $new_ucl_id = user_camp_leader::create_camp_leader($_POST['ucl_name'], $_POST['ucl_password']); + log::register('new_camp_leader', $new_ucl_id); + header('Location: /admin/camp_user'); + break; + case 'user_camp_leader_update': + # táborvezető update + if (empty($_POST['ucl_password'])) { + $_POST['ucl_password'] = null; + } + $new_ucl_id = user_camp_leader::update_camp_leader($_POST['ucl_name'], $_POST['ucl_password'], $_POST['ucl_id']); + log::register('update_camp_leader', $_POST['ucl_id']); + header('Location: /admin/camp_user'); + break; default: # code... break; diff --git a/index.php b/index.php index 6a2478e..6697619 100644 --- a/index.php +++ b/index.php @@ -49,6 +49,10 @@ setlocale(LC_ALL, 'hu_HU'); echo ''; } + if ($page->is_page() && ($page->get_page() == 'taborvezeto')) { + echo ''; + } + ?> diff --git a/template/templates/apply.tpl b/template/templates/apply.tpl index e57c329..fab6ef3 100644 --- a/template/templates/apply.tpl +++ b/template/templates/apply.tpl @@ -115,7 +115,7 @@ {$apply->get_capp_camp_id()->get_camp_to()|date_format:"%e"}. -{if $page == 'admin' || $page == 'taborvezeto'} +{if $page != "tabor"}
{/if} -

Visszaigazolt jelentkezések ({count($apply_array)} fő)

+

Visszaigazolt jelentkezések ({count($camp->get_camp_applies())} fő)

diff --git a/template/templates/camp_details.tpl b/template/templates/camp_details.tpl new file mode 100644 index 0000000..d6e56be --- /dev/null +++ b/template/templates/camp_details.tpl @@ -0,0 +1,65 @@ +
+{foreach $camps as $camp} + + + {$camp->get_camp_from()|substr:0:4}. + {$months[$camp->get_camp_from()|date_format:"%m"]} {$camp->get_camp_from()|date_format:"%e"}. - + {if $camp->get_camp_from()|date_format:"%m" != $camp->get_camp_to()|date_format:"%m"} + {$months[$camp->get_camp_to()|date_format:"%m"]}. + {/if} + {$camp->get_camp_to()|date_format:"%e"}., {$camp->get_camp_type()->get_ct_name()} + + + ({$camp->get_camp_city()}) + +
+ {count($camp->get_camp_applies())} fő    +
+
+ +
+ {foreach $camp->get_camp_applies() as $apply} + + +
+ + {$apply->get_capp_camp_kid_ck_id()->get_ck_name()} +
+
+ {/foreach} +
+{/foreach} + +
+ + \ No newline at end of file diff --git a/template/templates/camp_list.tpl b/template/templates/camp_list.tpl index fc08b3d..cc5d431 100644 --- a/template/templates/camp_list.tpl +++ b/template/templates/camp_list.tpl @@ -3,6 +3,8 @@ Új tábor létrehozásaTábor típusokPólók + Táborvezetők + Turnus lista
diff --git a/template/templates/log.tpl b/template/templates/log.tpl index 5c25bba..c204c05 100644 --- a/template/templates/log.tpl +++ b/template/templates/log.tpl @@ -50,6 +50,8 @@ {$log->get_log_user()->get_uk_name()} {elseif $log->get_log_category()->get_logc_type() == 3} {$log->get_log_user()->get_cu_email()} + {elseif $log->get_log_category()->get_logc_type() == 4} + {$log->get_log_user()->get_ucl_name()} {/if}
diff --git a/template/templates/nav.tpl b/template/templates/nav.tpl index 86e9d76..2701e24 100755 --- a/template/templates/nav.tpl +++ b/template/templates/nav.tpl @@ -11,6 +11,8 @@ {$user_login->get_uk_name()} {elseif $page == 'tabor'} {$user_login->get_cu_email()} + {elseif $page == 'taborvezeto'} + {$user_login->get_ucl_name()} {/if} @@ -25,7 +27,7 @@ {else} -
  • {if $page == 'tabor'}Tollaslabda táborok 2017. nyár{else}Badminton Coach{/if}
  • +
  • {if $page == 'tabor' || $page == 'taborvezeto'}Tollaslabda táborok 2017. nyár{else}Badminton Coach{/if}
  • {/if} @@ -39,6 +41,8 @@ {$user_login->get_uk_name()} {elseif $page == 'tabor'} {$user_login->get_cu_email()} + {elseif $page == 'taborvezeto'} + {$user_login->get_ucl_name()} {/if} diff --git a/template/templates/user_camp_leader_create.tpl b/template/templates/user_camp_leader_create.tpl new file mode 100644 index 0000000..50b9746 --- /dev/null +++ b/template/templates/user_camp_leader_create.tpl @@ -0,0 +1,22 @@ +
    +
    + + +
    + +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + +
    diff --git a/template/templates/user_camp_leader_data_edit.tpl b/template/templates/user_camp_leader_data_edit.tpl new file mode 100644 index 0000000..2472720 --- /dev/null +++ b/template/templates/user_camp_leader_data_edit.tpl @@ -0,0 +1,26 @@ +
    +
    + + + + +
    + +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + +
    diff --git a/template/templates/user_camp_leader_list.tpl b/template/templates/user_camp_leader_list.tpl new file mode 100644 index 0000000..871a0a9 --- /dev/null +++ b/template/templates/user_camp_leader_list.tpl @@ -0,0 +1,17 @@ +
    + + Új táborvezető hozzáadása + +
    + +
    + {foreach $ucl_array as $ucl} + +
    + + {$ucl->get_ucl_name()} +
    +
    + {/foreach} + +
    {$log->get_log_category()->get_logc_title()}