예제 #1
0
파일: class.ff.php 프로젝트: Kuzat/kofradia
 /**
  * Marker en endring utført i forumet slik at den blir synlig i menyen
  */
 public function forum_changed()
 {
     \Kofradia\DB::get()->beginTransaction();
     // hent og lås params for alle medlemmer
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT u_id, u_params\n\t\t\tFROM ff_members\n\t\t\t\tJOIN users_players ON ffm_up_id = up_id\n\t\t\t\tJOIN users ON u_id = up_u_id\n\t\t\tWHERE ffm_ff_id = {$this->id} AND ffm_status = 1\n\t\t\tFOR UPDATE");
     while ($u = $result->fetch()) {
         // hopp over den aktive brukeren
         if (login::$logged_in && $u['u_id'] == login::$user->id) {
             continue;
         }
         $params = new params($u['u_params']);
         if (!$params->exists("forums")) {
             continue;
         }
         $container = new container($params->get("forums"));
         foreach ($container->items as $key => $row) {
             if ($row[0] != "ff") {
                 continue;
             }
             if ($row[1] != $this->id) {
                 continue;
             }
             // oppdater
             if (!isset($row[4])) {
                 $row[4] = 0;
             }
             $row[4]++;
             // lagre
             $container->items[$key] = $row;
             $params->update("forums", $container->build());
             \Kofradia\DB::get()->exec("UPDATE users SET u_params = " . \Kofradia\DB::quote($params->build()) . " WHERE u_id = {$u['u_id']}");
             continue;
         }
     }
     // fullfør transaksjon
     \Kofradia\DB::get()->commit();
 }