From 7717795fb5ba1ea823ce42595cc679dfc0a6e19a Mon Sep 17 00:00:00 2001 From: Ricsi Date: Thu, 3 Oct 2019 13:46:37 +0200 Subject: [PATCH] show users in presence list based on trt array --- _class/class_user_kid.php | 47 ++++++++++++++++++++++++- _include/include_create.php | 4 +++ _include/include_members.php | 5 +++ _include/include_presence.php | 13 +++++++ event_handler.php | 2 +- queries/20191002_uktt.sql | 17 +++++++++ template/templates/user_data_create.tpl | 9 +++-- template/templates/user_data_edit.tpl | 9 +++-- 8 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 queries/20191002_uktt.sql diff --git a/_class/class_user_kid.php b/_class/class_user_kid.php index e3621bb..d2c9f44 100644 --- a/_class/class_user_kid.php +++ b/_class/class_user_kid.php @@ -455,7 +455,27 @@ class user_kid extends user_parent { if (!isset($_user_value_array['uk_is_active'])) $_user_value_array['uk_is_active'] = 0; if (!isset($_user_value_array['uk_lease'])) $_user_value_array['uk_lease'] = 0; - return $sql->insert_into('user_kid', $_user_value_array); + $trt_ids = array(); + if (isset($_user_value_array['level']) && is_array($_user_value_array['level'])) { + foreach ($_user_value_array['level'] as $key => $trt_id) { + $trt_ids[] = $trt_id; + } + unset($_user_value_array['level']); + } + + $kidId = $sql->insert_into('user_kid', $_user_value_array); + + if (!empty($trt_ids)) { + foreach ($trt_ids as $key => $trt_id) { + $sql->insert_into('user_kid_training_type', array( + 'uktt_user_kid_uk_id' => $kidId, + 'uktt_training_type_tt_id' => $trt_id, + ) + ); + } + } + + return $kidId; } public static function update_user($_user_value_array, $_user_id) { @@ -535,6 +555,25 @@ class user_kid extends user_parent { if (!isset($_user_value_array['uk_balance_expires'])) $_user_value_array['uk_balance_expires'] = 0; if (!isset($_user_value_array['uk_lease'])) $_user_value_array['uk_lease'] = 0; + $trt_ids = array(); + if (isset($_user_value_array['level']) && is_array($_user_value_array['level'])) { + foreach ($_user_value_array['level'] as $key => $trt_id) { + $trt_ids[] = $trt_id; + } + unset($_user_value_array['level']); + } + + $sql->execute_query("DELETE FROM user_kid_training_type WHERE uktt_user_kid_uk_id = {$_user_id}"); + if (!empty($trt_ids)) { + foreach ($trt_ids as $key => $trt_id) { + $sql->insert_into('user_kid_training_type', array( + 'uktt_user_kid_uk_id' => $_user_id, + 'uktt_training_type_tt_id' => $trt_id, + ) + ); + } + } + $sql->update_table('user_kid', $_user_value_array, array('uk_id' => $_user_id)); } @@ -757,5 +796,11 @@ class user_kid extends user_parent { ) ); } + + public static function has_training_type($_uk_id, $_trt_id) { + global $sql; + + return $sql->num_of_rows("SELECT DISTINCT uktt_id FROM user_kid_training_type WHERE uktt_user_kid_uk_id = {$_uk_id} AND uktt_training_type_tt_id = {$_trt_id};"); + } } ?> diff --git a/_include/include_create.php b/_include/include_create.php index 1b31935..8eb6e7c 100644 --- a/_include/include_create.php +++ b/_include/include_create.php @@ -32,11 +32,15 @@ switch ($this->get_id()) { $region_query = "SELECT * FROM region WHERE reg_deleted = 0 ORDER BY reg_name ASC;"; $region_assoc_array = $sql->assoc_array($region_query); + //training type array + $tt_assoc_array = $sql->assoc_array("SELECT * FROM training_type WHERE trt_deleted = 0 ORDER by trt_name ASC;"); + $smarty->assign('region_assoc_array', $region_assoc_array); $smarty->assign('shirt_size_assoc_array', $shirt_size_assoc_array); $smarty->assign('school_assoc_array', $schools); $smarty->assign('school_city_assoc_array', $school_cities); $smarty->assign('parent_assoc_array', $parent_assoc_array); + $smarty->assign('tt_assoc_array', $tt_assoc_array); $smarty->assign('today', date("Y-m-d")); $smarty->display('user_data_create.tpl'); diff --git a/_include/include_members.php b/_include/include_members.php index 44e6cd3..a89d1d9 100644 --- a/_include/include_members.php +++ b/_include/include_members.php @@ -34,6 +34,10 @@ if ($this->is_id()) { //REGION ARRAY $region_query = "SELECT * FROM region WHERE reg_deleted = 0 ORDER BY reg_name ASC;"; $region_assoc_array = $sql->assoc_array($region_query); + + //training type array + $tt_assoc_array = $sql->assoc_array("SELECT * FROM training_type WHERE trt_deleted = 0 ORDER by trt_name ASC;"); + //smarty thingz $smarty->assign('school_assoc_array', $schools); $smarty->assign('school_city_assoc_array', $school_cities); @@ -41,6 +45,7 @@ if ($this->is_id()) { $smarty->assign('user_data', $user_data_assoc_array[0]); $smarty->assign('shirt_size_assoc_array', $shirt_size_assoc_array); $smarty->assign('parent_assoc_array', $parent_assoc_array); + $smarty->assign('tt_assoc_array', $tt_assoc_array); $smarty->display('user_data_'.$tpl.'.tpl'); } else { diff --git a/_include/include_presence.php b/_include/include_presence.php index 5999605..bdfabe3 100644 --- a/_include/include_presence.php +++ b/_include/include_presence.php @@ -72,6 +72,7 @@ if ($this->is_id()) { $exeptions[] = $user->get_uk_id(); } + /* $rest_user_query = " SELECT * @@ -92,6 +93,18 @@ if ($this->is_id()) { GROUP BY uk_id ORDER BY uk_name; "; + */ + $rest_user_query = " + SELECT + DISTINCT uktt_user_kid_uk_id uk_id + FROM + user_kid + JOIN + user_kid_training_type ON uktt_user_kid_uk_id = uk_id + WHERE + uktt_training_type_tt_id = {$training->get_tr_training_type_trt_id()}; + "; + //var_dump($rest_user_query); $rest_user_assoc_array = $sql->assoc_array($rest_user_query); foreach ($rest_user_assoc_array as $rest_user) { diff --git a/event_handler.php b/event_handler.php index 1c9f241..d589b6c 100644 --- a/event_handler.php +++ b/event_handler.php @@ -83,7 +83,7 @@ if (isset($_POST['action'])) { unset($_POST['uk_id']); user_kid::update_user($_POST, $uid); log::register('update_member', $uid); - header("Location: /admin/members"); + header("Location: /admin/members/{$uid}"); break; default: diff --git a/queries/20191002_uktt.sql b/queries/20191002_uktt.sql new file mode 100644 index 0000000..15ee279 --- /dev/null +++ b/queries/20191002_uktt.sql @@ -0,0 +1,17 @@ +CREATE TABLE `user_kid_training_type` ( + `uktt_id` INT NOT NULL AUTO_INCREMENT, + `uktt_user_kid_uk_id` INT NOT NULL, + `uktt_training_type_tt_id` INT NOT NULL, + PRIMARY KEY (`uktt_id`), + INDEX `fk_user_kid_training_type_1_idx` (`uktt_user_kid_uk_id` ASC), + INDEX `fk_user_kid_training_type_2_idx` (`uktt_training_type_tt_id` ASC), + CONSTRAINT `fk_user_kid_training_type_1` + FOREIGN KEY (`uktt_user_kid_uk_id`) + REFERENCES `user_kid` (`uk_id`) + ON DELETE CASCADE + ON UPDATE CASCADE, + CONSTRAINT `fk_user_kid_training_type_2` + FOREIGN KEY (`uktt_training_type_tt_id`) + REFERENCES `training_type` (`trt_id`) + ON DELETE CASCADE + ON UPDATE CASCADE); diff --git a/template/templates/user_data_create.tpl b/template/templates/user_data_create.tpl index 6330b0e..5546a82 100644 --- a/template/templates/user_data_create.tpl +++ b/template/templates/user_data_create.tpl @@ -86,8 +86,13 @@
- -
+ + {foreach $tt_assoc_array as $tt} +
+ + {$tt['trt_name']} +
+ {/foreach}
diff --git a/template/templates/user_data_edit.tpl b/template/templates/user_data_edit.tpl index 3449d6e..91934d9 100644 --- a/template/templates/user_data_edit.tpl +++ b/template/templates/user_data_edit.tpl @@ -121,8 +121,13 @@
- -
+ + {foreach $tt_assoc_array as $tt} +
+ + {$tt['trt_name']} +
+ {/foreach}