public static function parse($xmlpath) { libxml_use_internal_errors(true); $xml = simplexml_load_file($xmlpath, 'SimpleXMLElement', LIBXML_NOCDATA); foreach (libxml_get_errors() as $error) { ErrorHelper::logError('XML Error on line ' . $error->line . ' column ' . $error->column . ': ' . $error->message); } if (!$xml) { return null; } $data = XMLHelper::xml2array($xml); XMLHelper::collapse($data, 'socials', 'social'); XMLHelper::collapse($data, 'histories', 'history'); XMLHelper::collapse($data, 'trailers', 'trailer'); XMLHelper::collapse($data, 'awards', 'award'); XMLHelper::collapse($data, 'quotes', 'quote'); XMLHelper::collapse($data, 'additionals', 'additional'); XMLHelper::collapse($data, 'credits', 'credit'); XMLHelper::collapse($data, 'contacts', 'contact'); XMLHelper::collapse($data, 'platforms', 'platform'); XMLHelper::collapse($data, 'features', 'feature'); XMLHelper::collapse($data, 'prices', 'price'); // transforms the pricing data to be indexed by the optional platform-tag if (isset($data['prices'])) { $priceByPlatform = array(); foreach ($data['prices'] as $price) { if (!isset($price['platform'])) { $price['platform'] = ''; } $priceByPlatform[$price['platform']][] = $price; } $data['prices'] = $priceByPlatform; } return $data; }
public function __construct($directory) { parent::__construct($directory, XMLHelper::parse('data/' . $directory . '/data.xml')); if ($this->data == null) { ErrorHelper::logError('Failed to load game data in ' . $directory); } $this->directory = $directory; }
public function __construct() { parent::__construct('', XMLHelper::parse('data/data.xml')); $this->isDeveloper = true; if ($this->data == null) { ErrorHelper::logError('Failed to load developer data'); return; } $gamedirs = FileHelper::getGames('data'); foreach ($gamedirs as $gamedir) { $this->games[$gamedir] = new Game($gamedir); } // sorts the games according to the sort_order property // if no value is set, zero is assumed uasort($this->games, 'Developer::_sort'); }
public function game($directory) { if (!isset($this->developer->games[$directory])) { ErrorHelper::logError('Could not find game data in directory or incorrect BASE_PATH set in config.php'); } $game = $this->developer->games[$directory]; if (isset($game->promoter['product'])) { PromoterHelper::getData($game); } ViewHelper::$title = 'presskit for ' . $game->title . ' by ' . $this->developer->title; ViewHelper::$header = $game->title; ViewHelper::render('gamefacts', array('data' => $game, 'developer' => $this->developer)); ViewHelper::render('historydescription', array('data' => $game)); ViewHelper::render('images', array('data' => $game)); ViewHelper::render('trailers', array('trailers' => $game->trailers, 'directory' => $directory)); ViewHelper::render('awardspress', array('data' => $game)); ViewHelper::render('presscopy', array('data' => $game)); ViewHelper::render('about', array('data' => $this->developer)); ViewHelper::render('teamcontact', array('data' => $game, 'developer' => $this->developer)); }
<?php ini_set('display_errors', 'On'); error_reporting(-1); define('VERSION', '0.1.0'); require 'controllers/presskit.php'; require 'helpers/errorhelper.php'; require 'helpers/updatehelper.php'; // convienience function to set constants if not defined, used in config files function set($const, $value) { defined($const) || define($const, $value); } // loads config file if (!file_exists('config.php')) { ErrorHelper::logError('Missing config.php, make a copy of config-defaults.php to get started.'); } else { require 'config.php'; } // load defaults require 'config-defaults.php'; // detects if mod_rewrite is available (or if force flag is set) ViewHelper::$mod_rewrite = FORCE_MOD_REWRITE == 'true' || getenv('HTTP_MOD_REWRITE') == 'On'; $requestUrl = $_SERVER['REQUEST_URI']; // support for presskit legacy urls, also used when mod_rewrite is unavailable if (isset($_GET['p']) && $_GET['p'] != '') { $requestUrl = $_GET['p']; } else { // strip GET variables from URL if (($pos = strpos($requestUrl, '?')) !== false) { $requestUrl = substr($requestUrl, 0, $pos);