if (array_key_exists('award', $parameters) && array_key_exists($parameters['award'], $awardAbbrs)) { $cat = $awardAbbrs[$parameters['award']]; } global $gProfilePageUrl; $row['url'] = sprintf($gProfilePageUrl, $row['id'], $cat); global $gImageAPI; $row['image'] = sprintf($gImageAPI, $row['id']); array_walk($row["awards"], function (&$v, $k) { $v['award'] = str_replace("_", " ", $v['award']); }); } unset($row); // PHP is weird, but see http://php.net/manual/en/control-structures.foreach.php if (array_key_exists('popularity', $parameters) && $parameters['popularity'] === 'wikipedia') { /* Get all WP ids from dbPedia */ $dbPediaQuery = new Toplist\DbPediaQuery(); $wpNames = $dbPediaQuery->getWikipediaNames($lids); /* Get most viewed list for this subset of laureates */ $popularityList = new Toplist\WikipediaPopularityList($wpNames); $orderedList = $popularityList->getOrdered(); usort($list, function ($a, $b) use($orderedList) { $ida = $a['dbPedia']; $idb = $b['dbPedia']; $posa = array_search($ida, $orderedList); $posb = array_search($idb, $orderedList); return $posa > $posb ? 1 : -1; }); /* Truncate list to max length */ global $maxListItems; $maxListLength = @$parameters['length'] ?: $maxListItems; $list = array_values(array_slice($list, 0, $maxListLength));
require $baseDir . 'vendor/autoload.php'; require $baseDir . 'lib/db.php'; require $baseDir . 'lib/dbpedia.php'; require $baseDir . 'lib/wikidata.php'; require $baseDir . 'lib/popularity.php'; $api = new Toplist\Api(); $validationRules = array('id' => 'integer|min_numeric,0|max_numeric,9999', 'popularity' => 'alpha_dash'); $filterRules = array('id' => 'trim|sanitize_numbers', 'popularity' => 'trim|sanitize_string'); $parameters = $api->getParameters($validationRules, $filterRules); $laureate = @$parameters['id'] ?: 1; /* Get dbPedia url */ $simpleSPARQLQuery = new Toplist\SimpleSPARQLQuery($laureate); $dbPediaLink = $simpleSPARQLQuery->getDbpedia(); if (array_key_exists('popularity', $parameters) && $parameters['popularity'] === 'wikipedia') { /* Get all WP ids from dbPedia */ $dbPediaQuery = new Toplist\DbPediaQuery(); $wpName = $dbPediaQuery->getWikipediaNames($dbPediaLink); /* get iw links */ $wikiDataQuery = new Toplist\WikiDataQuery(); $iwLinks = $wikiDataQuery->getSitelinks(array_pop($wpName)); global $gStatsInterval; global $gStatsStart; if (preg_match('/^\\d{8}/', $gStatsStart)) { /* A date */ } else { /* Assume an offset */ global $gTimezone; $date = new \DateTime('now', new DateTimeZone($gTimezone)); $date->add(\DateInterval::createFromDateString('-' . $gStatsStart)); $gStatsStart = $date->format('Ymd'); }
require_once $baseDir . 'lib/wikipedia.php'; $api = new Toplist\Api(); $validationRules = array('id' => 'required|integer', 'width' => 'integer', 'height' => 'integer'); $filterRules = array('id' => 'trim|sanitize_numbers', 'width' => 'trim|sanitize_numbers', 'height' => 'trim|sanitize_numbers'); $parameters = $api->getParameters($validationRules, $filterRules); $laureate = $parameters['id']; $width = @$parameters['width'] ?: null; $height = @$parameters['height'] ?: null; if (!($height || $width)) { $height = '300'; } /* Get dbPedia url */ $simpleSPARQLQuery = new Toplist\SimpleSPARQLQuery($laureate); $dbPediaLink = $simpleSPARQLQuery->getDbpedia(); /* Query DbPedia for enwp link */ $dbPediaQuery = new Toplist\DbPediaQuery(); $response = $dbPediaQuery->getWikipediaNames($dbPediaLink); if (!array_key_exists($dbPediaLink, $response)) { /* No such dbPedia article, or invalid laureate id */ $api->write_headers(); $api->write_json(array($laureate => array())); exit; } $enWikipediaName = $response[$dbPediaLink]; /* Get language links */ $wikiDataQuery = new Toplist\WikiDataQuery(); $iwLinks = $wikiDataQuery->getSitelinks($enWikipediaName); $allWikipediaNames = array(); global $gImageSourceWPEditions; foreach ($gImageSourceWPEditions as $wpEdition) { if (array_key_exists($wpEdition . 'wiki', $iwLinks)) {