aboutsummaryrefslogtreecommitdiff
path: root/app/class/Modeltimeline.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/class/Modeltimeline.php')
-rw-r--r--app/class/Modeltimeline.php263
1 files changed, 129 insertions, 134 deletions
diff --git a/app/class/Modeltimeline.php b/app/class/Modeltimeline.php
index 3e8cf99..db9c4f5 100644
--- a/app/class/Modeltimeline.php
+++ b/app/class/Modeltimeline.php
@@ -6,138 +6,133 @@ use JamesMoss\Flywheel\Document;
class Modeltimeline extends Modeldb
{
- const EVENT_BASE = ['message'];
- const EVENT_ART = ['page_add', 'page_edit', 'page_delete'];
- const EVENT_MEDIA = ['media_add', 'media_delete'];
- const EVENT_FONT = ['font_add', 'font_delete'];
-
- public function __construct()
- {
- parent::__construct();
- $this->storeinit('timeline');
- }
-
- public function get(int $id)
- {
- $eventdata = $this->repo->findById($id);
- if ($eventdata !== false) {
- return new Event($eventdata);
- } else {
- return false;
- }
- }
-
- /**
- * Retrun a list of Event objects
- *
- * @return array array of Event where the key is the Event id.
- */
- public function getlister() : array
- {
- $eventlist = [];
- $datalist = $this->repo->findAll();
- foreach ($datalist as $eventdata) {
- $event = new Event($eventdata);
- $id = intval($event->id());
- $eventlist[$id] = $event;
- }
- return $eventlist;
- }
-
-
- public function pagelistbyid(array $idlist = []) : array
- {
- $eventdatalist = $this->repo->query()
- ->where('__id', 'IN', $idlist)
- ->execute();
-
- $eventlist = [];
- foreach ($eventdatalist as $id => $eventdata) {
- $eventlist[$id] = new Event($eventdata);
- }
- return $eventlist;
- }
-
-
- /**
- * Store event
- *
- * @param Event The event to be stored in the repositery
- *
- * @return bool retrun true if it works, false if it fails
- */
- public function add(Event $event) : bool
- {
- $eventdata = new Document($event->dry());
- $eventdata->setId($event->id());
- $result = $this->repo->store($eventdata);
- return $result;
- }
-
- /**
- * Return last free id
- *
- * @return int id
- */
- public function getlastfreeid() : int
- {
- $idlist = $this->list();
-
- if (!empty($idlist)) {
- $id = max($idlist);
- $id++;
- } else {
- $id = 1;
- }
- return $id;
- }
-
- public function group(array $events)
- {
- $id = 0;
- $subid = 0;
- $lastuser = null;
- foreach ($events as $event) {
- if($event->user() !== $lastuser) {
- $subid = 0;
- $id ++;
- $groupedevents[$id]['user'] = $event->user();
- } else {
- $subid ++;
- }
- $groupedevents[$id][$subid] = $event;
- $lastuser = $event->user();
- }
- return $groupedevents;
- }
-
- public function showlast(array $types, int $qty = 25, int $offset = 0)
- {
- $types = array_intersect($types, $this->types());
-
- $eventdatalist = $this->repo->query()
- ->where('type', 'IN', $types)
- ->orderBy('date DESC')
- ->limit($qty, $offset)
- ->execute();
-
- $eventlist = [];
- foreach ($eventdatalist as $id => $eventdata) {
- $eventlist[] = new Event($eventdata);
- }
-
- $eventlist = array_reverse($eventlist);
- return $eventlist;
- }
-
-
- public function types()
- {
- return array_merge(self::EVENT_ART, self::EVENT_BASE, self::EVENT_MEDIA, self::EVENT_MEDIA);
- }
-
-
+ protected const EVENT_BASE = ['message'];
+ protected const EVENT_ART = ['page_add', 'page_edit', 'page_delete'];
+ protected const EVENT_MEDIA = ['media_add', 'media_delete'];
+ protected const EVENT_FONT = ['font_add', 'font_delete'];
+
+ public function __construct()
+ {
+ parent::__construct();
+ $this->storeinit('timeline');
+ }
+
+ public function get(int $id)
+ {
+ $eventdata = $this->repo->findById($id);
+ if ($eventdata !== false) {
+ return new Event($eventdata);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Retrun a list of Event objects
+ *
+ * @return array array of Event where the key is the Event id.
+ */
+ public function getlister(): array
+ {
+ $eventlist = [];
+ $datalist = $this->repo->findAll();
+ foreach ($datalist as $eventdata) {
+ $event = new Event($eventdata);
+ $id = intval($event->id());
+ $eventlist[$id] = $event;
+ }
+ return $eventlist;
+ }
+
+
+ public function pagelistbyid(array $idlist = []): array
+ {
+ $eventdatalist = $this->repo->query()
+ ->where('__id', 'IN', $idlist)
+ ->execute();
+
+ $eventlist = [];
+ foreach ($eventdatalist as $id => $eventdata) {
+ $eventlist[$id] = new Event($eventdata);
+ }
+ return $eventlist;
+ }
+
+
+ /**
+ * Store event
+ *
+ * @param Event The event to be stored in the repositery
+ *
+ * @return bool retrun true if it works, false if it fails
+ */
+ public function add(Event $event): bool
+ {
+ $eventdata = new Document($event->dry());
+ $eventdata->setId($event->id());
+ $result = $this->repo->store($eventdata);
+ return $result;
+ }
+
+ /**
+ * Return last free id
+ *
+ * @return int id
+ */
+ public function getlastfreeid(): int
+ {
+ $idlist = $this->list();
+
+ if (!empty($idlist)) {
+ $id = max($idlist);
+ $id++;
+ } else {
+ $id = 1;
+ }
+ return $id;
+ }
+
+ public function group(array $events)
+ {
+ $id = 0;
+ $subid = 0;
+ $lastuser = null;
+ foreach ($events as $event) {
+ if ($event->user() !== $lastuser) {
+ $subid = 0;
+ $id++;
+ $groupedevents[$id]['user'] = $event->user();
+ } else {
+ $subid++;
+ }
+ $groupedevents[$id][$subid] = $event;
+ $lastuser = $event->user();
+ }
+ return $groupedevents;
+ }
+
+ public function showlast(array $types, int $qty = 25, int $offset = 0)
+ {
+ $types = array_intersect($types, $this->types());
+
+ $eventdatalist = $this->repo->query()
+ ->where('type', 'IN', $types)
+ ->orderBy('date DESC')
+ ->limit($qty, $offset)
+ ->execute();
+
+ $eventlist = [];
+ foreach ($eventdatalist as $id => $eventdata) {
+ $eventlist[] = new Event($eventdata);
+ }
+
+ $eventlist = array_reverse($eventlist);
+ return $eventlist;
+ }
+
+
+ public function types()
+ {
+ return array_merge(self::EVENT_ART, self::EVENT_BASE, self::EVENT_MEDIA, self::EVENT_MEDIA);
+ }
}
-
-
-?> \ No newline at end of file