summaryrefslogtreecommitdiff
path: root/includes/model
diff options
context:
space:
mode:
authorPhilip Häusler <msquare@notrademark.de>2014-01-05 19:30:06 +0100
committerPhilip Häusler <msquare@notrademark.de>2014-01-05 19:30:06 +0100
commit5e8453992810181facf168d6aaede9d2dcd61dba (patch)
treec6aad1564d86ed5789c25b7bab0b36047f0fbaac /includes/model
parentd921cf903eedd98fce74114d43f7c98ed8baabdc (diff)
rewritten angeltypes and user angeltypes
Diffstat (limited to 'includes/model')
-rw-r--r--includes/model/AngelType_model.php134
-rw-r--r--includes/model/UserAngelTypes_model.php69
-rw-r--r--includes/model/User_model.php20
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");