Example #1
0
 public static function updateRequirementPackage($pack)
 {
     $pack->auth->game_id = dbconnection::queryObject("SELECT * FROM requirement_root_packages WHERE requirement_root_package_id = '{$pack->requirement_root_package_id}'")->game_id;
     $pack->auth->permission = "read_write";
     if (!editors::authenticateGameEditor($pack->auth)) {
         return new return_package(6, NULL, "Failed Authentication");
     }
     if (!$pack->requirement_root_package_id) {
         return;
     }
     dbconnection::query("UPDATE requirement_root_packages SET " . (isset($pack->name) ? "name = '" . addslashes($pack->name) . "', " : "") . "last_active = CURRENT_TIMESTAMP " . "WHERE requirement_root_package_id = '" . addslashes($pack->requirement_root_package_id) . "'");
     $sql_currentAndPacks = dbconnection::queryArray("SELECT * FROM requirement_and_packages WHERE requirement_root_package_id = '{$pack->requirement_root_package_id}'");
     for ($i = 0; $i < count($sql_currentAndPacks); $i++) {
         $matchingAndPack = null;
         for ($j = 0; $pack->and_packages && $j < count($pack->and_packages); $j++) {
             if ($sql_currentAndPacks[$i]->requirement_and_package_id == $pack->and_packages[$j]->requirement_and_package_id) {
                 $matchingAndPack = $pack->and_packages[$j];
                 //remove from array so I can just add all remaining later
                 array_splice($pack->and_packages, $j, 1);
                 $j--;
             }
         }
         if ($matchingAndPack) {
             $matchingAndPack->requirement_root_package_id = $pack->requirement_root_package_id;
             $matchingAndPack->game_id = $pack->game_id;
             $matchingAndPack->auth = $pack->auth;
             requirements::updateRequirementAndPackage($matchingAndPack);
         } else {
             $sql_currentAndPacks[$i]->auth = $pack->auth;
             requirements::deleteRequirementAndPackage($sql_currentAndPacks[$i]);
         }
     }
     for ($i = 0; $pack->and_packages && $i < count($pack->and_packages); $i++) {
         $pack->and_packages[$i]->requirement_root_package_id = $pack->requirement_root_package_id;
         $pack->and_packages[$i]->game_id = $pack->game_id;
         $pack->and_packages[$i]->auth = $pack->auth;
         requirements::createRequirementAndPackage($pack->and_packages[$i]);
     }
     games::bumpGameVersion($pack);
     return requirements::getRequirementPackage($pack);
 }