summaryrefslogtreecommitdiffstats
path: root/app/class/object.class.php
diff options
context:
space:
mode:
authorMalf Furious <m@lfurio.us>2018-02-07 21:28:08 -0500
committerMalf Furious <m@lfurio.us>2018-02-07 21:28:08 -0500
commit977e4271c6f27ed2d42fab6bb2706f4a59bf0237 (patch)
tree2b0e4a5e68769a4a94117b9cddf503f38c44531d /app/class/object.class.php
parentc283905537ffb770c2b7e85529238cca9aa96869 (diff)
downloadscrott-977e4271c6f27ed2d42fab6bb2706f4a59bf0237.tar.gz
scrott-977e4271c6f27ed2d42fab6bb2706f4a59bf0237.zip
Rename object.class.php to reflect name of its class
Diffstat (limited to 'app/class/object.class.php')
-rw-r--r--app/class/object.class.php286
1 files changed, 0 insertions, 286 deletions
diff --git a/app/class/object.class.php b/app/class/object.class.php
deleted file mode 100644
index 5be9ac3..0000000
--- a/app/class/object.class.php
+++ /dev/null
@@ -1,286 +0,0 @@
-<?php
-
-/*
- * SCROTT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * For more information, please refer to UNLICENSE
- */
-
-require_once "class/table.class.php";
-require_once "class/image.php";
-
-/*
- * This is a generic database object. This is a supertype of all Scrott
- * datatypes and defines fields common to all of them.
- */
-class obj extends table
-{
- /*
- * Constants used for uploading images
- */
- public const HEAD_MAXSIZE = 1048576; // 1Mb
- public const BG_MAXSIZE = 1048576; // 1Mb
- public const IMAGE_MIME = array(
- "image/jpeg",
- "image/jpg",
- "image/png",
- );
-
- /*
- * Constructor
- */
- public function __construct(?string $guid = NULL)
- {
- $this->fields['objects'] = array(
- "guid",
- "owner",
- "parent",
- "name",
- "created",
- "updated",
-
- "membModify",
- "membMemb",
- "membAccs",
- "membCres",
- "membModifys",
- "membMembs",
- "pubAcc",
- "pubAccs",
- "pubCres",
-
- "objtype",
- );
-
- parent::__construct($guid);
- }
-
- /*
- * Get the object type for the given GUID
- */
- public static function typeOf(string $guid) : string
- {
- $obj = new obj($guid);
- return $obj->objtype;
- }
-
- /*
- * Remove duplicate elements from an array of Scrott objects. This
- * function compares object GUIDs to check for uniqueness. Array
- * keys are preserved. NULL elements are removed. Resulting array
- * is returned.
- */
- public static function arrayUnique(array $arr) : array
- {
- $guids = array();
- $ret = array();
-
- foreach ($arr as $k => $v)
- {
- if ($v === NULL)
- continue;
-
- if (in_array($v->guid, $guids))
- continue;
-
- $guids[] = $v->guid;
- $ret[$k] = $v;
- }
-
- return $ret;
- }
-
- /*
- * Get the owner of this object. Either a user object or a group
- * object will be returned. If this object does not have an owner,
- * NULL will be returned.
- */
- public function getOwner() : ?agent
- {
- if (!isset($this->owner) || $this->owner == "")
- return NULL;
-
- if (self::typeOf($this->owner) == "group")
- return new group($this->owner);
-
- return new user($this->owner);
- }
-
- /*
- * Update the owner of this object
- */
- public function setOwner(agent $owner) : void
- {
- $this->owner = $owner->guid;
- $this->saveObj();
- }
-
- /*
- * Get the parent of this object. If this object does not have a
- * parent, NULL will be returned.
- */
- public function getParent() : ?obj
- {
- if (!isset($this->parent) || $this->parent == "")
- return NULL;
-
- $parent = new obj($this->parent);
- return new $parent->objtype($parent->guid);
- }
-
- /*
- * Update the parent of this object
- */
- public function setParent(obj $parent) : void
- {
- $this->parent = $parent->guid;
- $this->saveObj();
- }
-
- /*
- * Get an array of all members of this object
- */
- public function getMembers() : array
- {
- $memb = array();
- $query = "SELECT member FROM members WHERE guid = '" . database::esc($this->guid) . "'";
- $res = database::query($query);
-
- foreach ($res as $m)
- $memb[] = new user($m['member']);
-
- return $memb;
- }
-
- /*
- * Add a user as a member of this object. Returns false if user is
- * already a member, or if another error occurs; true otherwise.
- */
- public function addMember(user $user) : bool
- {
- if ($user->isMemberOf($this) || !isset($user->guid))
- return false;
-
- $query = "INSERT INTO members (guid, member) VALUES ('" . database::esc($this->guid) . "', '" .
- database::esc($user->guid) . "')";
- database::query($query);
- return true;
- }
-
- /*
- * Remove a user as a member of this object. Returns false if user
- * is not a member, or if another error occurs; true otherwise.
- */
- public function remMember(user $user) : bool
- {
- if (!$user->isMemberOf($this) || !isset($user->guid))
- return false;
-
- $query = "DELETE FROM members WHERE guid = '" . database::esc($this->guid) . "' AND " .
- "member = '" . database::esc($user->guid) . "'";
- database::query($query);
- return true;
- }
-
- /*
- * Get all messages on this object. Messages are sorted by date
- * created.
- */
- public function getMesgs_ordByDatetime() : array
- {
- $query = "SELECT guid FROM objects WHERE objtype = 'mesg' AND " .
- "parent = '" . database::esc($this->guid) . "' ORDER BY created";
- $res = database::query($query);
-
- $mesgs = array();
-
- foreach ($res as $m)
- $mesgs[] = new mesg($m['guid']);
-
- return $mesgs;
- }
-
- /*
- * Get the URL to the head image resource for this object
- */
- public function getHeadImg() : string
- {
- return ar() . "/df.php?d=heads&f=" . $this->guid;
- }
-
- /*
- * Set the head image for this object, overwriting any existing
- * image. $image should be an uploaded file to PHP, still
- * unhandled.
- */
- public function setHeadImg(array $image) : bool
- {
- $path = "dynmic/heads/" . $this->guid;
-
- if (!saveFile($image, $path, self::HEAD_MAXSIZE, self::IMAGE_MIME))
- return false;
-
- if (!imageSquareCrop($path))
- {
- $this->rmHeadImg();
- return false;
- }
-
- return true;
- }
-
- /*
- * Remove the head image for this object. This deletes the image
- * on disk.
- */
- public function rmHeadImg() : bool
- {
- if (!is_file("dynmic/heads/" . $this->guid))
- return true;
-
- return unlink("dynmic/heads/" . $this->guid);
- }
-
- /*
- * Get the URL to the background image resource for this
- * object. If no image is set, NULL is returned.
- */
- public function getBgImg() : ?string
- {
- if (!is_file("dynmic/bgs/" . $this->guid))
- return NULL;
-
- return ar() . "/df.php?d=bgs&f=" . $this->guid;
- }
-
- /*
- * Set the background image for this object, overwriting any
- * existing image. $image should be an uploaded file to PHP,
- * still unhandled.
- */
- public function setBgImg(array $image) : bool
- {
- $path = "dynmic/bgs/" . $this->guid;
- return saveFile($image, $path, self::BG_MAXSIZE, self::IMAGE_MIME);
- }
-
- /*
- * Remove the background image for this object. This deletes
- * the image on disk.
- */
- public function rmBgImg() : bool
- {
- if (!is_file("dynmic/bgs/" . $this->guid))
- return true;
-
- return unlink("dynmic/bgs/" . $this->guid);
- }
-}
-
-?>