public static function generateUniqueName($title, $year) { $name_base = str_replace(array_keys(self::$TRANSLITERATABLE_CHARACTERS), array_values(self::$TRANSLITERATABLE_CHARACTERS), $title); $name_base = strtolower($name_base); $name_base = preg_replace("/[']/", '', $name_base); $name_base = preg_replace("/[^a-z0-9]/", '_', $name_base); $name_base = preg_replace('/_+/', '_', $name_base); if (strlen($year) > 4) { $year = date_parse($year); $year = $year["year"]; } $approved = false; $try = 0; while (!$approved) { $number_length = 0; if ($try > 0) { $number_length = strlen($try) + 1; } $name = substr($name_base, 0, 254 - strlen($year) - $number_length); $name .= '_' . $year; if ($try > 0) { $name .= '_' . $try; } $result = null; $query = new GameQuery(); $result = $query->findOneByName($name); if ($result != null) { $try++; } else { return $name; } } }
<?php require "res/include.php"; if (!array_key_exists("name", $_GET)) { header("Location: /"); /* Redirect browser */ exit; } else { $query = new GameQuery(); $game = $query->findOneByName($_GET["name"]); if ($game == null) { header("Location: /"); /* Redirect browser */ exit; } } if (!array_key_exists("platform", $_GET)) { $platform = "windows"; } else { $platform = $_GET["platform"]; } $query = new PlatformQuery(); $platform = $query->findOneByName($platform); if ($platform == null) { throw new Exception("Invalid platform specified"); } // Getting the rating queries the database each time, so we do it once here: $header = $game->getRatingHeaderForPlatform($platform); $rating = $game->getRatingForPlatform($platform); $user = Auth::getCurrentUser(); if (Auth::checkIfAuthenticated() && array_key_exists("submit_game_review", $_POST) && array_key_exists("submit_game_rating", $_POST)) {