Browse Source

wikidata/wikipedia: function to load a wikidata item

master
parent
commit
161ee85ec9
  1. 1
      modulekit.php
  2. 19
      src/wikidata.php
  3. 10
      src/wikipedia.php

1
modulekit.php

@ -15,6 +15,7 @@ $include = array(
'src/options.php',
'src/language.php',
'src/ip-location.php',
'src/wikidata.php',
'src/wikipedia.php',
'src/ImageLoader.php',
'src/RepositoryBase.php',

19
src/wikidata.php

@ -0,0 +1,19 @@
<?php
$wikidataCache = array();
function wikidataLoad ($id) {
global $wikidataCache;
if (!array_key_exists($id, $wikidataCache)) {
$body = file_get_contents("https://www.wikidata.org/wiki/Special:EntityData/{$id}.json");
$body = $body ? json_decode($body, true) : false;
if (!array_key_exists('entities', $body) || !array_key_exists($id, $body['entities'])) {
return false;
}
$wikidataCache[$id] = $body['entities'][$id];
}
return $wikidataCache[$id];
}

10
src/wikipedia.php

@ -5,15 +5,7 @@ function ajax_wikipedia ($param) {
$wp_page = $m[2];
}
elseif (preg_match("/^Q\d+$/", $param['page'])) {
$id = $param['page'];
$body = file_get_contents("https://www.wikidata.org/wiki/Special:EntityData/{$id}.json");
$body = json_decode($body, true);
if (!array_key_exists('entities', $body) || !array_key_exists($id, $body['entities'])) {
return false;
}
$data = $body['entities'][$id];
$data = wikidataLoad($param['page']);
if (array_key_exists('sitelinks', $data)) {
if (array_key_exists($param['lang'] . 'wiki', $data['sitelinks'])) {

Loading…
Cancel
Save