Ejemplo n.º 1
0
 public function updateRequirementAndPackage($pack)
 {
     if (!$pack || !$pack->game_id || !$pack->requirement_and_package_id) {
         return;
     }
     Module::query("UPDATE requirement_and_packages SET " . "game_id = '" . addslashes($pack->game_id) . "'" . ($pack->name ? ", name = '" . addslashes($pack->name) . "'" : "") . " WHERE requirement_and_package_id = '" . addslashes($pack->requirement_and_package_id) . "'");
     $sql_currentAtoms = Module::queryArray("SELECT * FROM requirement_atoms WHERE requirement_and_package_id = '{$pack->requirement_and_package_id}'");
     for ($i = 0; $i < count($sql_currentAtoms); $i++) {
         $matchingAtom = null;
         for ($j = 0; $pack->atoms && $j < count($pack->atoms); $j++) {
             if ($sql_currentAtoms[$i]->requirement_atom_id == $pack->atoms[$j]->requirement_atom_id) {
                 $matchingAtom = $pack->atoms[$j];
                 //remove from array so I can just add all remaining later
                 array_splice($pack->atoms, $j, 1);
                 $j--;
             }
         }
         if ($matchingAtom) {
             $matchingAtom->requirement_atom_id = $pack->atoms[$j]->requirement_atom_id;
             $matchingAtom->game_id = $pack->game_id;
             Requirements::updateRequirementAtom($matchingAtom);
         } else {
             Requirements::deleteRequirementAtom($sql_currentAtoms[$i]->requirement_atom_id);
         }
     }
     for ($i = 0; $pack->atoms && $i < count($pack->atoms); $i++) {
         $pack->atoms[$i]->requirement_atom_id = $pack->atoms[$j]->requirement_atom_id;
         $pack->atoms[$i]->game_id = $pack->game_id;
         Requirements::createRequirementAtom($pack->atoms[$i]);
     }
 }