/** * Sett opp triggers hos brukeren */ public function link_triggers() { if ($this->active) { // hent triggere kun for det aktive oppdraget $type = "active"; $oppdrag = array($this->active); } else { if (!$this->oppdrag_loaded) { $this->user_load_all(); return; } // kontroller at det ikke er satt noen params if ($this->up->params->exists("oppdrag")) { // fjern fra params $this->up->params->lock(); $this->up->params->remove("oppdrag_id"); $this->up->params->remove("oppdrag", true); } $type = "unlock"; $oppdrag = $this->oppdrag; } // hvilke triggere skal være tilgjengelige nå? $triggers = new container(); // gå gjennom oppdragene og sett opp triggerinformasjonen foreach ($oppdrag as $row) { // ingen triggere? if ($row['uo_locked'] == 0 && $row['uo_active'] == 0) { continue; } $o_params = $type == "active" ? $row['o_params'] : $row['o_unlock_params']; $o_params_object = $type == "active" ? $this->params[$row['o_id']]['o_params'] : $this->params[$row['o_id']]['o_unlock_params']; $uo_params = $row['uo_params']; // mangler navn? $name = $o_params_object->get("name"); if (empty($name)) { continue; } $trigger = array($name, $row['o_id'], $o_params, $type, $uo_params); $triggers->items[] = $trigger; } // endringer? $data = $triggers->build(); if ($this->up->params->get("oppdrag_triggers") !== $data) { // aktiv? if ($this->active) { $params = new params(); $params->params = $this->active; $this->up->params->lock(); $this->up->params->update("oppdrag", $params->build()); $this->up->params->update("oppdrag_id", $this->active['o_id'], true); } $this->up->params->update("oppdrag_triggers", $data, true); } $this->load_triggers($triggers); }
/** * Marker forumet som sett */ public function forum_seen() { $this->params_load(); $container = new container($this->params_user->get("forums")); foreach ($container->items as $key => $row) { if ($row[0] != "ff") { continue; } if ($row[1] != $this->ff->id) { continue; } // må oppdatere antallet? if (isset($row[4]) && $row[4] > 0) { $this->params_user->lock(); $forums = $this->params_user->get("forums"); $container = new container($forums); foreach ($container->items as $key => $row) { if ($row[0] != "ff" || $row[1] != $this->ff->id) { continue; } // fjern antallet og lagre unset($container->items[$key][4]); $this->params_user->update("forums", $container->build()); $this->params_user->commit(); return true; } $this->params_user->commit(); return NULL; } return false; } return NULL; }