public function Execute()
 {
     $viewData = array();
     $errors = array();
     // no user specified - redirect to user list page
     if (!getCurrentUser()) {
         Helper::Redirect("users.php");
     }
     if (!Helper::IsLoggedInUser()) {
         Helper::Redirect("users.php");
     }
     if (isset($_GET["map"])) {
         $mapID = $_GET["map"];
     }
     foreach ($_GET as $variable => $value) {
         ${$variable} = stripslashes($value);
     }
     foreach ($_POST as $variable => $value) {
         ${$variable} = stripslashes($value);
     }
     if (isset($cancel)) {
         Helper::Redirect("index.php?" . Helper::CreateQuerystring(getCurrentUser()));
     }
     if (isset($save) || isset($delete) || isset($deleteConfirmed)) {
         $map = new Map();
         if (isset($mapID)) {
             $map->Load($mapID);
             if ($map->UserID != getCurrentUser()->ID) {
                 die("Access denied");
             }
             $isNewMap = false;
         } else {
             $isNewMap = true;
         }
         $map->UserID = getCurrentUser()->ID;
         $map->CategoryID = $categoryID;
         $map->Date = $date;
         $map->Name = $name;
         if (__("SHOW_ORGANISER")) {
             $map->Organiser = $organiser;
         }
         if (__("SHOW_COUNTRY")) {
             $map->Country = $country;
         }
         if (__("SHOW_DISCIPLINE")) {
             $map->Discipline = $discipline;
         }
         if (__("SHOW_RELAY_LEG")) {
             $map->RelayLeg = $relayLeg;
         }
         if (__("SHOW_MAP_AREA_NAME")) {
             $map->MapName = $mapName;
         }
         if (__("SHOW_RESULT_LIST_URL")) {
             $map->ResultListUrl = $resultListUrl;
         }
         if (__("SHOW_COMMENT")) {
             $map->Comment = $comment;
         }
         $map->ProtectedUntil = $protectedUntil;
     } else {
         // first page load
         if (isset($_GET["map"])) {
             $map = new Map();
             $map->Load($mapID);
             if ($map->UserID != getCurrentUser()->ID) {
                 die("Access denied");
             }
             $isNewMap = false;
         } else {
             $map = new Map();
             $map->Date = date("Y-m-d");
             $map->CategoryID = getCurrentUser()->DefaultCategoryID;
             $isNewMap = true;
         }
     }
     if (isset($save)) {
         // validate
         // name
         if (trim($map->Name) == "") {
             $errors[] = __("NO_MAP_NAME_ENTERED");
         }
         // date
         if (trim($map->Date) == "") {
             $errors[] = __("NO_DATE_ENTERED");
         }
         if (!Helper::LocalizedStringToTime($map->Date, false)) {
             $errors[] = __("INVALID_DATE");
         } else {
             $map->Date = gmdate("Y-m-d H:i:s", Helper::LocalizedStringToTime($map->Date, false));
         }
         // protected until
         if (trim($map->ProtectedUntil) == "") {
             $map->ProtectedUntil = null;
         } else {
             if (!Helper::LocalizedStringToTime($map->ProtectedUntil, false)) {
                 $errors[] = __("INVALID_PROTECTED_UNTIL");
             } else {
                 $map->ProtectedUntil = gmdate("Y-m-d H:i:s", Helper::LocalizedStringToTime($map->ProtectedUntil, false));
             }
         }
         // images
         $validMimeTypes = array("image/jpeg", "image/gif", "image/png");
         // map image
         $mapImageUploaded = $_FILES["mapImage"]["tmp_name"] != "";
         if ($mapImageUploaded) {
             $mapImageInfo = getimagesize($_FILES["mapImage"]["tmp_name"]);
         }
         if ($mapImageUploaded && !in_array($mapImageInfo["mime"], $validMimeTypes)) {
             $errors[] = sprintf(__("INVALID_MAP_IMAGE_FORMAT"), $_FILES["mapImage"]["name"]);
         }
         // map image
         $blankMapImageUploaded = $_FILES["blankMapImage"]["tmp_name"] != "";
         if ($blankMapImageUploaded) {
             $blankMapImageInfo = getimagesize($_FILES["blankMapImage"]["tmp_name"]);
         }
         if ($blankMapImageUploaded && !in_array($blankMapImageInfo["mime"], $validMimeTypes)) {
             $errors[] = sprintf(__("INVALID_BLANK_MAP_IMAGE_FORMAT"), $_FILES["mapImage"]["name"]);
         }
         if ($isNewMap && !$mapImageUploaded && !$blankMapImageUploaded) {
             $errors[] = __("NO_MAP_FILE_ENTERED");
         }
         // thumbnail image
         $thumbnailImageUploaded = $_FILES["thumbnailImage"]["tmp_name"] != "";
         if ($thumbnailImageUploaded) {
             $thumbnailImageInfo = getimagesize($_FILES["thumbnailImage"]["tmp_name"]);
         }
         if ($thumbnailImageUploaded && !in_array($thumbnailImageInfo["mime"], $validMimeTypes)) {
             $errors[] = sprintf(__("INVALID_THUMBNAIL_IMAGE_FORMAT"), $_FILES["thumbnailImage"]["name"]);
         }
         if (count($errors) == 0) {
             $thumbnailCreatedSuccessfully = false;
             $mapImageData = Helper::SaveTemporaryFileFromUploadedFile($_FILES["mapImage"]);
             if ($mapImageData["error"] == "couldNotCopyUploadedFile") {
                 $errors[] = sprintf(__("MAP_IMAGE_COULD_NOT_BE_UPLOADED"), $_FILES["mapImage"]["name"]);
             }
             $blankMapImageData = Helper::SaveTemporaryFileFromUploadedFile($_FILES["blankMapImage"]);
             if ($blankMapImageData["error"] == "couldNotCopyUploadedFile") {
                 $errors[] = sprintf(__("BLANK_MAP_IMAGE_COULD_NOT_BE_UPLOADED"), $_FILES["blankMapImage"]["name"]);
             }
             $thumbnailImageData = Helper::SaveTemporaryFileFromUploadedFile($_FILES["thumbnailImage"]);
             if ($thumbnailImageData["error"] == "couldNotCopyUploadedFile") {
                 $errors[] = sprintf(__("THUMBNAIL_IMAGE_COULD_NOT_BE_UPLOADED"), $_FILES["thumbnailImage"]["name"]);
             }
             $error = null;
             if (count($errors) == 0) {
                 DataAccess::SaveMapAndThumbnailImage($map, $mapImageData["fileName"], $blankMapImageData["fileName"], $thumbnailImageData["fileName"], $error, $thumbnailCreatedSuccessfully);
             }
             if ($error) {
                 $errors[] = $error;
             }
             if ($mapImageData["fileName"] && file_exists($mapImageData["fileName"])) {
                 unlink($mapImageData["fileName"]);
             }
             if ($blankMapImageData["fileName"] && file_exists($blankMapImageData["fileName"])) {
                 unlink($blankMapImageData["fileName"]);
             }
             if ($thumbnailImageData["fileName"] && file_exists($thumbnailImageData["fileName"])) {
                 unlink($thumbnailImageData["fileName"]);
             }
             if (count($errors) == 0) {
                 Helper::Redirect("index.php?" . Helper::CreateQuerystring(getCurrentUser()) . (!$thumbnailCreatedSuccessfully ? "&error=thumbnailCreationFailure" : ""));
             }
         }
     } elseif (isset($deleteConfirmed)) {
         DataAccess::DeleteMap($map);
         Helper::Redirect("index.php?" . Helper::CreateQuerystring(getCurrentUser()));
     }
     $viewData["Errors"] = $errors;
     $viewData["Categories"] = getCurrentUser()->GetCategories();
     $viewData["Map"] = $map;
     if (isset($mapID)) {
         $viewData["MapID"] = $mapID;
     }
     $viewData["ConfirmDeletionButtonVisible"] = isset($delete);
     $viewData["Title"] = isset($mapID) ? sprintf(__("EDIT_MAP_X"), $map->Name) : __("ADD_MAP");
     return $viewData;
 }
Example #2
0
function PublishMapHelper($username, $password, $mapInfo, $mapImageFileName, $blankMapImageFileName, $thumbnailImageFileName)
{
    $success = false;
    // validate username and password
    $user = DataAccess::GetUserByUsernameAndPassword($username, $password);
    if (!$user) {
        $errorMessage = "Invalid username and/or password.";
    } else {
        $map = new Map();
        $map->ID = $mapInfo["ID"];
        $map->UserID = $user->ID;
        $map->CategoryID = $mapInfo["CategoryID"];
        $map->Date = gmdate("Y-m-d H:i:s", Helper::StringToTime($mapInfo["Date"], true));
        $map->Name = $mapInfo["Name"];
        $map->Organiser = $mapInfo["Organiser"];
        $map->Country = $mapInfo["Country"];
        $map->Discipline = $mapInfo["Discipline"];
        $map->RelayLeg = $mapInfo["RelayLeg"];
        $map->MapName = $mapInfo["MapName"];
        $map->ResultListUrl = $mapInfo["ResultListUrl"];
        $map->Comment = $mapInfo["Comment"];
        $map->LastChangedTime = gmdate("Y-m-d H:i:s");
        if (!$mapInfo["ID"]) {
            $map->CreatedTime = gmdate("Y-m-d H:i:s");
        }
        $thumbnailCreatedSuccessfully = false;
        $error = null;
        DataAccess::SaveMapAndThumbnailImage($map, $mapImageFileName, $blankMapImageFileName, $thumbnailImageFileName, $error, $thumbnailCreatedSuccessfully);
        if ($mapImageFileName) {
            unlink($mapImageFileName);
        }
        if ($blankMapImageFileName) {
            unlink($blankMapImageFileName);
        }
        if ($thumbnailImageFileName) {
            unlink($thumbnailImageFileName);
        }
        if (!$mapInfo["ID"]) {
            Helper::LogUsage("addMapWS", "user="******"&map=" . $map->ID);
        }
        $errorMessage = mysql_error();
        $success = $errorMessage == "";
        $url = Helper::GlobalPath("show_map.php?user="******"&map=" . $map->ID);
    }
    return array('Success' => $success, 'ErrorMessage' => $errorMessage, 'URL' => $url);
}