+ public static function add_usermeta(&$meta)
+ {
+ $meta = $meta['meta'];
+ $conn = sqlnew();
+ /* check if it exists first, update it if it does */
+ $query = "SELECT * FROM " . SQL_PREFIX . "user_meta WHERE user_id = :id AND meta_key = :key";
+ $stmt = $conn->prepare($query);
+ $stmt->execute(["id" => $meta['id'], "key" => $meta['key']]);
+ if ($stmt->rowCount()) // it exists, update instead of insert
+ {
+ $query = "UPDATE " . SQL_PREFIX . "user_meta SET meta_value = :value WHERE user_id = :id AND meta_key = :key";
+ $stmt = $conn->prepare($query);
+ $stmt->execute($meta);
+ if ($stmt->rowCount())
+ return true;
+ return false;
+ }
+
+ else
+ {
+ $query = "INSERT INTO " . SQL_PREFIX . "user_meta (user_id, meta_key, meta_value) VALUES (:id, :key, :value)";
+ $stmt = $conn->prepare($query);
+ $stmt->execute($meta);
+ if ($stmt->rowCount())
+ return true;
+ return false;
+ }
+ }
+ public static function del_usermeta(&$u)
+ {
+ $conn = sqlnew();
+ $query = "DELETE FROM " . SQL_PREFIX . "user_meta WHERE user_id = :id AND meta_key = :key";
+ $stmt = $conn->prepare($query);
+ $stmt->execute($u['meta']);
+ if ($stmt->rowCount())
+ return true;
+ return false;
+ }
+ public static function user_create(&$u)
+ {
+ $username = $u['user_name'];
+ $first_name = $u['fname'] ?? NULL;
+ $last_name = $u['lname'] ?? NULL;
+ $password = $u['user_pass'] ?? NULL;
+ $user_bio = $u['user_bio'] ?? NULL;
+ $user_email = $u['user_email'] ?? NULL;
+ $conn = sqlnew();
+ $prep = $conn->prepare("INSERT INTO " . SQL_PREFIX . "users (user_name, user_pass, user_fname, user_lname, user_bio, user_email, created) VALUES (:name, :pass, :fname, :lname, :user_bio, :user_email, :created)");
+ $prep->execute(["name" => $username, "pass" => $password, "fname" => $first_name, "lname" => $last_name, "user_bio" => $user_bio, "user_email" => $user_email, "created" => date("Y-m-d H:i:s")]);
+ if ($prep->rowCount())
+ $u['success'] = true;
+ else
+ $u['errmsg'][] = "Could not add user";
+ }
+
+ public static function get_user_list(&$list)
+ {
+ $conn = sqlnew();
+ $result = $conn->query("SELECT user_id FROM " . SQL_PREFIX . "users");
+ if (!$result) // impossible
+ {
+ die("Something went wrong.");
+ }
+ $userlist = [];
+ while($row = $result->fetch())
+ {
+ $userlist[] = new PanelUser(NULL, $row['user_id']);
+ }
+ if (!empty($userlist))
+ $list = $userlist;
+
+ }
+ public static function user_delete(&$u)
+ {
+ $user = $u['user'];
+ $query = "DELETE FROM " . SQL_PREFIX . "users WHERE user_id = :id";
+ $conn = sqlnew();
+ $stmt = $conn->prepare($query);
+ $stmt->execute(["id" => $user->id]);
+ $deleted = $stmt->rowCount();
+ if ($deleted)
+ {
+ $u['info'][] = "Successfully deleted user \"$user->username\"";
+ $u['boolint'] = 1;
+ } else {
+ $u['info'][] = "Unknown error";
+ $u['boolint'] = 0;
+ }
+ }
+
+ public static function edit_core($arr)