Esempio n. 1
0
 /**
  * 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);
 }
Esempio n. 2
0
 /**
  * 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;
 }