@@ -4,73 +4,73 @@ |
||
| 4 | 4 | |
| 5 | 5 | class WorkItem extends Item { |
| 6 | 6 | |
| 7 | - const ITEM_WORK = 'Q386724'; |
|
| 8 | - const PROP_SUBTITLE = 'P1680'; |
|
| 9 | - const PROP_GENRE = 'P136'; |
|
| 10 | - const PROP_SUBJECT = 'P921'; |
|
| 7 | + const ITEM_WORK = 'Q386724'; |
|
| 8 | + const PROP_SUBTITLE = 'P1680'; |
|
| 9 | + const PROP_GENRE = 'P136'; |
|
| 10 | + const PROP_SUBJECT = 'P921'; |
|
| 11 | 11 | |
| 12 | - public static function getBookTypes($lang = 'en', $cache) { |
|
| 13 | - $sparql = "SELECT ?item WHERE { |
|
| 12 | + public static function getBookTypes($lang = 'en', $cache) { |
|
| 13 | + $sparql = "SELECT ?item WHERE { |
|
| 14 | 14 | ?item wdt:P279 wd:Q571 . |
| 15 | 15 | ?item rdfs:label ?label . |
| 16 | 16 | FILTER(LANG(?label) = '$lang') . |
| 17 | 17 | } ORDER BY ?label "; |
| 18 | - $query = new Query($sparql, $lang); |
|
| 19 | - $query->setCache($cache); |
|
| 20 | - $bookType = Item::factory(self::ITEM_WORK, $lang, $cache); |
|
| 21 | - return [$bookType] + $query->getItems(); |
|
| 22 | - } |
|
| 18 | + $query = new Query($sparql, $lang); |
|
| 19 | + $query->setCache($cache); |
|
| 20 | + $bookType = Item::factory(self::ITEM_WORK, $lang, $cache); |
|
| 21 | + return [$bookType] + $query->getItems(); |
|
| 22 | + } |
|
| 23 | 23 | |
| 24 | - public function getSubtitle() { |
|
| 25 | - return $this->getPropertyOfTypeText(self::PROP_SUBTITLE); |
|
| 26 | - } |
|
| 24 | + public function getSubtitle() { |
|
| 25 | + return $this->getPropertyOfTypeText(self::PROP_SUBTITLE); |
|
| 26 | + } |
|
| 27 | 27 | |
| 28 | - public function setSubtitle( $subtitle ) { |
|
| 29 | - $this->setPropertyOfTypeText( self::PROP_SUBTITLE, $subtitle ); |
|
| 30 | - } |
|
| 28 | + public function setSubtitle( $subtitle ) { |
|
| 29 | + $this->setPropertyOfTypeText( self::PROP_SUBTITLE, $subtitle ); |
|
| 30 | + } |
|
| 31 | 31 | |
| 32 | - public function getPropertyOfTypeItems( $property ) { |
|
| 33 | - $entity = $this->getEntity( $this->id ); |
|
| 34 | - if ( ! isset( $entity['claims'][ $property ] ) ) { |
|
| 35 | - return []; |
|
| 36 | - } |
|
| 37 | - $items = []; |
|
| 38 | - foreach ( $entity['claims'][ $property ] as $authorClaim ) { |
|
| 39 | - $item_id = $authorClaim['mainsnak']['datavalue']['value']['id']; |
|
| 40 | - $items[] = Item::factory( $item_id, $this->lang, $this->cache ); |
|
| 41 | - } |
|
| 32 | + public function getPropertyOfTypeItems( $property ) { |
|
| 33 | + $entity = $this->getEntity( $this->id ); |
|
| 34 | + if ( ! isset( $entity['claims'][ $property ] ) ) { |
|
| 35 | + return []; |
|
| 36 | + } |
|
| 37 | + $items = []; |
|
| 38 | + foreach ( $entity['claims'][ $property ] as $authorClaim ) { |
|
| 39 | + $item_id = $authorClaim['mainsnak']['datavalue']['value']['id']; |
|
| 40 | + $items[] = Item::factory( $item_id, $this->lang, $this->cache ); |
|
| 41 | + } |
|
| 42 | 42 | |
| 43 | - return $items; |
|
| 44 | - } |
|
| 43 | + return $items; |
|
| 44 | + } |
|
| 45 | 45 | |
| 46 | - public function getAuthors() { |
|
| 47 | - return $this->getPropertyOfTypeItems( self::PROP_AUTHOR ); |
|
| 48 | - } |
|
| 46 | + public function getAuthors() { |
|
| 47 | + return $this->getPropertyOfTypeItems( self::PROP_AUTHOR ); |
|
| 48 | + } |
|
| 49 | 49 | |
| 50 | - /** |
|
| 51 | - * @return Item[] |
|
| 52 | - */ |
|
| 53 | - public function getSubjects() { |
|
| 54 | - return $this->getPropertyOfTypeItems( self::PROP_SUBJECT ); |
|
| 55 | - } |
|
| 50 | + /** |
|
| 51 | + * @return Item[] |
|
| 52 | + */ |
|
| 53 | + public function getSubjects() { |
|
| 54 | + return $this->getPropertyOfTypeItems( self::PROP_SUBJECT ); |
|
| 55 | + } |
|
| 56 | 56 | |
| 57 | - public function getEditions() { |
|
| 58 | - $sparql = "SELECT ?item WHERE { ?item wdt:" . self::PROP_EDITION_OR_TRANSLATION_OF . " wd:" . $this->getId() . " }"; |
|
| 59 | - $query = new Query( $sparql, $this->lang ); |
|
| 60 | - $query->setCache($this->cache); |
|
| 61 | - $editions = $query->getItems(); |
|
| 62 | - usort( $editions, function ( Item $a, Item $b ) { |
|
| 63 | - if ( $a instanceof EditionItem and $b instanceof EditionItem ) { |
|
| 64 | - return $a->getPublicationYear() - $b->getPublicationYear(); |
|
| 65 | - } |
|
| 66 | - return 0; |
|
| 67 | - } ); |
|
| 57 | + public function getEditions() { |
|
| 58 | + $sparql = "SELECT ?item WHERE { ?item wdt:" . self::PROP_EDITION_OR_TRANSLATION_OF . " wd:" . $this->getId() . " }"; |
|
| 59 | + $query = new Query( $sparql, $this->lang ); |
|
| 60 | + $query->setCache($this->cache); |
|
| 61 | + $editions = $query->getItems(); |
|
| 62 | + usort( $editions, function ( Item $a, Item $b ) { |
|
| 63 | + if ( $a instanceof EditionItem and $b instanceof EditionItem ) { |
|
| 64 | + return $a->getPublicationYear() - $b->getPublicationYear(); |
|
| 65 | + } |
|
| 66 | + return 0; |
|
| 67 | + } ); |
|
| 68 | 68 | |
| 69 | - return $editions; |
|
| 70 | - } |
|
| 69 | + return $editions; |
|
| 70 | + } |
|
| 71 | 71 | |
| 72 | - public function newEdition() { |
|
| 72 | + public function newEdition() { |
|
| 73 | 73 | |
| 74 | - } |
|
| 74 | + } |
|
| 75 | 75 | |
| 76 | 76 | } |
| 77 | 77 | \ No newline at end of file |
@@ -25,42 +25,42 @@ |
||
| 25 | 25 | return $this->getPropertyOfTypeText(self::PROP_SUBTITLE); |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | - public function setSubtitle( $subtitle ) { |
|
| 29 | - $this->setPropertyOfTypeText( self::PROP_SUBTITLE, $subtitle ); |
|
| 28 | + public function setSubtitle($subtitle) { |
|
| 29 | + $this->setPropertyOfTypeText(self::PROP_SUBTITLE, $subtitle); |
|
| 30 | 30 | } |
| 31 | 31 | |
| 32 | - public function getPropertyOfTypeItems( $property ) { |
|
| 33 | - $entity = $this->getEntity( $this->id ); |
|
| 34 | - if ( ! isset( $entity['claims'][ $property ] ) ) { |
|
| 32 | + public function getPropertyOfTypeItems($property) { |
|
| 33 | + $entity = $this->getEntity($this->id); |
|
| 34 | + if (!isset($entity['claims'][$property])) { |
|
| 35 | 35 | return []; |
| 36 | 36 | } |
| 37 | 37 | $items = []; |
| 38 | - foreach ( $entity['claims'][ $property ] as $authorClaim ) { |
|
| 39 | - $item_id = $authorClaim['mainsnak']['datavalue']['value']['id']; |
|
| 40 | - $items[] = Item::factory( $item_id, $this->lang, $this->cache ); |
|
| 38 | + foreach ($entity['claims'][$property] as $authorClaim) { |
|
| 39 | + $item_id = $authorClaim['mainsnak']['datavalue']['value']['id']; |
|
| 40 | + $items[] = Item::factory($item_id, $this->lang, $this->cache); |
|
| 41 | 41 | } |
| 42 | 42 | |
| 43 | 43 | return $items; |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | 46 | public function getAuthors() { |
| 47 | - return $this->getPropertyOfTypeItems( self::PROP_AUTHOR ); |
|
| 47 | + return $this->getPropertyOfTypeItems(self::PROP_AUTHOR); |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | /** |
| 51 | 51 | * @return Item[] |
| 52 | 52 | */ |
| 53 | 53 | public function getSubjects() { |
| 54 | - return $this->getPropertyOfTypeItems( self::PROP_SUBJECT ); |
|
| 54 | + return $this->getPropertyOfTypeItems(self::PROP_SUBJECT); |
|
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | public function getEditions() { |
| 58 | 58 | $sparql = "SELECT ?item WHERE { ?item wdt:" . self::PROP_EDITION_OR_TRANSLATION_OF . " wd:" . $this->getId() . " }"; |
| 59 | - $query = new Query( $sparql, $this->lang ); |
|
| 59 | + $query = new Query($sparql, $this->lang); |
|
| 60 | 60 | $query->setCache($this->cache); |
| 61 | 61 | $editions = $query->getItems(); |
| 62 | - usort( $editions, function ( Item $a, Item $b ) { |
|
| 63 | - if ( $a instanceof EditionItem and $b instanceof EditionItem ) { |
|
| 62 | + usort($editions, function(Item $a, Item $b) { |
|
| 63 | + if ($a instanceof EditionItem and $b instanceof EditionItem) { |
|
| 64 | 64 | return $a->getPublicationYear() - $b->getPublicationYear(); |
| 65 | 65 | } |
| 66 | 66 | return 0; |
@@ -112,10 +112,10 @@ discard block |
||
| 112 | 112 | */ |
| 113 | 113 | public function getLabel() |
| 114 | 114 | { |
| 115 | - $entity = $this->getEntity( $this->id ); |
|
| 116 | - if ( ! empty( $entity['labels'][ $this->lang ]['value'] ) ) { |
|
| 115 | + $entity = $this->getEntity($this->id); |
|
| 116 | + if (!empty($entity['labels'][$this->lang]['value'])) { |
|
| 117 | 117 | // Use the label if there is one. |
| 118 | - return $entity['labels'][ $this->lang ]['value']; |
|
| 118 | + return $entity['labels'][$this->lang]['value']; |
|
| 119 | 119 | } |
| 120 | 120 | // Or just use the ID. |
| 121 | 121 | return $entity['id']; |
@@ -123,7 +123,7 @@ discard block |
||
| 123 | 123 | |
| 124 | 124 | public function getWikidataUrl() |
| 125 | 125 | { |
| 126 | - return $this->wikidataUrlBase.$this->id; |
|
| 126 | + return $this->wikidataUrlBase . $this->id; |
|
| 127 | 127 | } |
| 128 | 128 | |
| 129 | 129 | public function getStandardProperties($type = 'work') |
@@ -139,7 +139,7 @@ discard block |
||
| 139 | 139 | $domCrawler->addHtmlContent(file_get_contents('https://www.wikidata.org/wiki/Wikidata:WikiProject_Books')); |
| 140 | 140 | $propCells = $domCrawler->filterXPath("//h3/span[@id='" . ucfirst($type) . "_item_properties']/../following-sibling::table[1]//td[2]/a"); |
| 141 | 141 | $propIds = []; |
| 142 | - $propCells->each(function (Crawler $node, $i) use (&$propIds) { |
|
| 142 | + $propCells->each(function(Crawler $node, $i) use (&$propIds) { |
|
| 143 | 143 | $propId = $node->text(); |
| 144 | 144 | $propIds[] = $propId; |
| 145 | 145 | }); |
@@ -337,7 +337,7 @@ discard block |
||
| 337 | 337 | } |
| 338 | 338 | foreach ($entity['claims'][$property] as $t) { |
| 339 | 339 | $quantity = $t['mainsnak']['datavalue']['value']; |
| 340 | - $unitId = substr($quantity['unit'], strlen($this->wikidataUrlBase)+1); |
|
| 340 | + $unitId = substr($quantity['unit'], strlen($this->wikidataUrlBase) + 1); |
|
| 341 | 341 | $quantity['unit'] = Item::factory($unitId, $this->lang, $this->cache); |
| 342 | 342 | $quantities[] = $quantity; |
| 343 | 343 | } |
@@ -44,7 +44,7 @@ |
||
| 44 | 44 | $lang = substr($sitelink['site'], 0, strpos($sitelink['site'], 'wikisource')); |
| 45 | 45 | return [ |
| 46 | 46 | 'title' => $sitelink['title'], |
| 47 | - 'url' => "https://$lang.wikisource.org/wiki/".$sitelink['title'], |
|
| 47 | + 'url' => "https://$lang.wikisource.org/wiki/" . $sitelink['title'], |
|
| 48 | 48 | 'lang' => $lang, |
| 49 | 49 | ]; |
| 50 | 50 | } |
@@ -13,9 +13,9 @@ |
||
| 13 | 13 | foreach ($hills as $hill) { |
| 14 | 14 | $heights = $hill->getPropertyOfTypeQuantity('P2044'); |
| 15 | 15 | if (!$heights) { |
| 16 | - echo "No heights found for ".$hill->getLabel()."\n"; |
|
| 16 | + echo "No heights found for " . $hill->getLabel() . "\n"; |
|
| 17 | 17 | continue; |
| 18 | 18 | } |
| 19 | 19 | $height = array_shift($heights); |
| 20 | - echo $hill->getLabel()." is ".$height['amount']." ".$height['unit']->getLabel()." high.\n"; |
|
| 20 | + echo $hill->getLabel() . " is " . $height['amount'] . " " . $height['unit']->getLabel() . " high.\n"; |
|
| 21 | 21 | } |