public static function loadTemplateByRemote($folder)
 {
     $path = Core::GetConfig("templateProvider") . "?do=download&folderName=" . $folder;
     $remoteFileURL = Utils::getWebContent($path);
     $localFile = Core::GetConfig("dirIntScripts") . "installing.zip";
     $tempDirectory = Core::GetConfig("dirIntScripts") . "installing/";
     if (file_exists($localFile)) {
         unlink($localFile);
     }
     if (is_dir($tempDirectory)) {
         Utils::rmdir_recursive($tempDirectory);
     }
     // Download and prepare
     Utils::downloadFile($localFile, $remoteFileURL);
     Utils::unzip($localFile, $tempDirectory);
     // XML and Data
     if (file_exists($tempDirectory . "info.xml")) {
         $xmltext = file_get_contents($tempDirectory . "info.xml");
         $xml = simplexml_load_string($xmltext);
         $data = TemplateManager::_validateTemplateInformation(Utils::xmlToArray($xml));
         // Create Template
         $t = new Template();
         $t->setSetting("scriptVersion", $data["scriptVersion"]);
         $t->setSetting("gameName", $data["gameName"]);
         $t->setSetting("iconFile", $data["iconFile"]);
         $t->setSetting("folderName", $folder);
         $t->setSetting("infoxml", $xmltext);
         if (isset($data["settingsFile"])) {
             $t->setSetting("settingsxml", Template::replaceVariablesWithValues(file_get_contents($tempDirectory . $data["settingsFile"])));
         }
         // Base Template (One-Time-Install. No Gameserver)
         if (isset($data['isBaseTemplate'])) {
             if ($data['isBaseTemplate'] == "True") {
                 $t->setSetting("baseTemplate", 1);
             } else {
                 $t->setSetting("baseTemplate", 0);
             }
         } else {
             $t->setSetting("baseTemplate", 0);
         }
         $t->saveToDatabase();
         // Move Icon File
         $tempIcon = $tempDirectory . $t->getData("iconFile");
         $newIcon = $t->getIconFile();
         copy($tempIcon, $newIcon);
         Utils::rmdir_recursive($tempDirectory);
         if ($t->getData("id") != 0) {
             rename($localFile, $t->getZipFile());
         } else {
             unlink($localFile);
         }
         return $t;
     } else {
         throw new Exception("Info.xml doesnt exists in downloaded script. Aborting.");
     }
 }