diff options
Diffstat (limited to 'includes/model')
-rw-r--r-- | includes/model/AngelType_model.php | 134 | ||||
-rw-r--r-- | includes/model/UserAngelTypes_model.php | 69 | ||||
-rw-r--r-- | includes/model/User_model.php | 20 |
3 files changed, 192 insertions, 31 deletions
diff --git a/includes/model/AngelType_model.php b/includes/model/AngelType_model.php index 49d1c702..22baa4a4 100644 --- a/includes/model/AngelType_model.php +++ b/includes/model/AngelType_model.php @@ -1,29 +1,107 @@ -<?php
-
-/**
- * Returns AngelType id array
- */
-function mAngelTypeList() {
- $angelType_source = sql_select("SELECT `id` FROM `AngelTypes`");
- if ($angelType_source === false)
- return false;
- if (count($angelType_source) > 0)
- return $angelType_source;
- return null;
-}
-
-/**
- * Returns angelType by id.
- *
- * @param $id angelType ID
- */
-function mAngelType($id) {
- $angelType_source = sql_select("SELECT * FROM `AngelTypes` WHERE `id`=" . sql_escape($id) . " LIMIT 1");
- if ($angelType_source === false)
- return false;
- if (count($angelType_source) > 0)
- return $angelType_source[0];
- return null;
-}
-
+<?php + +function AngelType_delete($angeltype) { + sql_query("DELETE FROM `NeededAngelTypes` WHERE `angel_type_id`=" . sql_escape($angeltype['id']) . " LIMIT 1"); + sql_query("DELETE FROM `ShiftEntry` WHERE `TID`=" . sql_escape($angeltype['id']) . " LIMIT 1"); + sql_query("DELETE FROM `UserAngelTypes` WHERE `angeltype_id`=" . sql_escape($angeltype['id']) . " LIMIT 1"); + return sql_query("DELETE FROM `AngelTypes` WHERE `id`=" . sql_escape($angeltype['id']) . " LIMIT 1"); +} + +function AngelType_update($angeltype_id, $name, $restricted) { + return sql_query(" + UPDATE `AngelTypes` SET + `name`='" . sql_escape($name) . "', + `restricted`=" . sql_escape($restricted) . " + WHERE `id`=" . sql_escape($angeltype_id) . " + LIMIT 1"); +} + +function AngelType_create($name, $restricted) { + $result = sql_query(" + INSERT INTO `AngelTypes` SET + `name`='" . sql_escape($name) . "', + `restricted`=" . sql_escape($restricted)); + if ($result === false) + return false; + return sql_id(); +} + +/** + * Validates a name for angeltypes. + * Returns array containing validation success and validated name. + * + * @param string $name + * @param AngelType $angeltype + */ +function AngelType_validate_name($name, $angeltype) { + $name = strip_item($name); + if ($name == "") + return array( + false, + $name + ); + if (isset($angeltype) && isset($angeltype['id'])) + return array( + sql_num_query(" + SELECT * + FROM `AngelTypes` + WHERE `name`='" . sql_escape($name) . "' + AND NOT `id`=" . sql_escape($angeltype['id']) . " + LIMIT 1") == 0, + $name + ); + else + return array( + sql_num_query(" + SELECT `id` + FROM `AngelTypes` + WHERE `name`='" . sql_escape($name) . "' + LIMIT 1") == 0, + $name + ); +} + +/** + * Returns all angeltypes and subscription state to each of them for given user. + * + * @param User $user + */ +function AngelTypes_with_user($user) { + return sql_select(" + SELECT `AngelTypes`.*, + `UserAngelTypes`.`id` as `user_angeltype_id`, + `UserAngelTypes`.`confirm_user_id` + FROM `AngelTypes` + LEFT JOIN `UserAngelTypes` ON `AngelTypes`.`id`=`UserAngelTypes`.`angeltype_id` + AND `UserAngelTypes`.`user_id`=" . $user['UID'] . " + ORDER BY `name`"); +} + +/** + * Returns AngelType id array + */ +function mAngelTypeList() { + $angelType_source = sql_select("SELECT `id` FROM `AngelTypes`"); + if ($angelType_source === false) + return false; + if (count($angelType_source) > 0) + return $angelType_source; + return null; +} + +/** + * Returns angelType by id. + * + * @param $id angelType + * ID + */ +function mAngelType($id) { + $angelType_source = sql_select("SELECT * FROM `AngelTypes` WHERE `id`=" . sql_escape($id) . " LIMIT 1"); + if ($angelType_source === false) + return false; + if (count($angelType_source) > 0) + return $angelType_source[0]; + return null; +} + ?>
\ No newline at end of file diff --git a/includes/model/UserAngelTypes_model.php b/includes/model/UserAngelTypes_model.php new file mode 100644 index 00000000..e931e04b --- /dev/null +++ b/includes/model/UserAngelTypes_model.php @@ -0,0 +1,69 @@ +<?php + +function UserAngelTypes_delete_all($angeltype_id) { + return sql_query(" + DELETE FROM `UserAngelTypes` + WHERE `angeltype_id`=" . sql_escape($angeltype_id) . " + AND `confirm_user_id` IS NULL"); +} + +function UserAngelTypes_confirm_all($angeltype_id, $confirm_user) { + return sql_query(" + UPDATE `UserAngelTypes` + SET `confirm_user_id`=" . sql_escape($confirm_user['UID']) . " + WHERE `angeltype_id`=" . sql_escape($angeltype_id) . " + AND `confirm_user_id` IS NULL"); +} + +function UserAngelType_confirm($user_angeltype_id, $confirm_user) { + return sql_query(" + UPDATE `UserAngelTypes` + SET `confirm_user_id`=" . sql_escape($confirm_user['UID']) . " + WHERE `id`=" . sql_escape($user_angeltype_id) . " + LIMIT 1"); +} + +function UserAngelType_delete($user_angeltype) { + return sql_query(" + DELETE FROM `UserAngelTypes` + WHERE `id`=" . sql_escape($user_angeltype['id']) . " + LIMIT 1"); +} + +function UserAngelType_create($user, $angeltype) { + $result = sql_query(" + INSERT INTO `UserAngelTypes` SET + `user_id`=" . sql_escape($user['UID']) . ", + `angeltype_id`=" . sql_escape($angeltype['id'])); + if ($result === false) + return false; + return sql_id(); +} + +function UserAngelType($user_angeltype_id) { + $angeltype = sql_select(" + SELECT * + FROM `UserAngelTypes` + WHERE `id`=" . sql_escape($user_angeltype_id) . " + LIMIT 1"); + if ($angeltype === false) + return false; + if (count($angeltype) == 0) + return null; + return $angeltype[0]; +} + +function UserAngelType_by_User_and_AngelType($user, $angeltype) { + $angeltype = sql_select(" + SELECT * + FROM `UserAngelTypes` + WHERE `user_id`=" . sql_escape($user['UID']) . " + AND `angeltype_id`=" . sql_escape($angeltype['id']) . " + LIMIT 1"); + if ($angeltype === false) + return false; + if (count($angeltype) == 0) + return null; + return $angeltype[0]; +} +?>
\ No newline at end of file diff --git a/includes/model/User_model.php b/includes/model/User_model.php index 6b23f74b..84097333 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -1,6 +1,19 @@ <?php /** + * Returns all members of given angeltype. + * @param Angeltype $angeltype + */ +function Users_by_angeltype($angeltype) { + return sql_select(" + SELECT `User`.*, `UserAngelTypes`.`id` as `user_angeltype_id`, `UserAngelTypes`.`confirm_user_id` + FROM `User` + JOIN `UserAngelTypes` ON `User`.`UID`=`UserAngelTypes`.`user_id` + WHERE `UserAngelTypes`.`angeltype_id`=" . sql_escape($angeltype['id']) . " + ORDER BY `Nick`"); +} + +/** * Returns User id array */ function mUserList() { @@ -14,7 +27,8 @@ function mUserList() { /** * Strip unwanted characters from a users nick. - * @param string $nick + * + * @param string $nick */ function User_validate_Nick($nick) { return preg_replace("/([^a-z0-9üöäß. _+*-]{1,})/ui", '', $nick); @@ -23,7 +37,7 @@ function User_validate_Nick($nick) { /** * Returns user by id. * - * @param $id UID + * @param $id UID */ function User($id) { $user_source = sql_select("SELECT * FROM `User` WHERE `UID`=" . sql_escape($id) . " LIMIT 1"); @@ -37,7 +51,7 @@ function User($id) { /** * Returns user by id (limit informations. * - * @param $id UID + * @param $id UID */ function mUser_Limit($id) { $user_source = sql_select("SELECT `UID`, `Nick`, `Name`, `Vorname`, `Telefon`, `DECT`, `Handy`, `email`, `ICQ`, `jabber`, `Avatar` FROM `User` WHERE `UID`=" . sql_escape($id) . " LIMIT 1"); |