Browse Source

Image: load images from 'wikimedia_commons' categories

master
parent
commit
3cc9e92b88
  1. 1
      modulekit.php
  2. 13
      src/image.js
  3. 28
      src/wikimedia.php

1
modulekit.php

@ -15,6 +15,7 @@ $include = array(
'src/language.php',
'src/ip-location.php',
'src/wikipedia.php',
'src/wikimedia.php',
),
'css' => array(
'style.css',

13
src/image.js

@ -51,6 +51,19 @@ register_hook('show-details', function (data, category, dom, callback) {
})
}
if (!data.object.tags.wikidata && data.object.tags.wikimedia_commons) {
found++
ajax('wikimedia', { page: data.object.tags.wikimedia_commons }, function (result) {
if (result.images) {
result.images.forEach(function (d) {
showWikimediaImage(d, div)
})
}
})
}
if (found) {
h = document.createElement('h3')
h.appendChild(document.createTextNode(lang('images')))

28
src/wikimedia.php

@ -0,0 +1,28 @@
<?php
function ajax_wikimedia ($param) {
$ret = array();
$wm_url = "https://commons.wikimedia.org/wiki/" . urlencode(strtr($param['page'], array(" " => "_")));
$content = file_get_contents($wm_url);
$dom = new DOMDocument();
$dom->loadHTML($content);
$uls = $dom->getElementsByTagName('ul');//interlanguage-link interwiki-bar');
for ($i = 0; $i < $uls->length; $i++) {
$ul = $uls->item($i);
if ($ul->getAttribute('class') === 'gallery mw-gallery-traditional') {
$imgs = $ul->getElementsByTagName('img');
for ($j = 0; $j < $imgs->length; $j++) {
$ret[] = $imgs->item($j)->getAttribute('alt');
}
}
}
return array(
'images' => $ret,
);
}
Loading…
Cancel
Save