diff --git "a/include/class-wb\\DataValueMonolingualText.php" "b/include/class-wb\\DataValueMonolingualText.php" new file mode 100644 index 0000000..0a7fc66 --- /dev/null +++ "b/include/class-wb\\DataValueMonolingualText.php" @@ -0,0 +1,67 @@ +. + +# Wikibase +namespace wb; + +/** + * A DataValue for a monolingual text + * + * @see https://www.mediawiki.org/wiki/Wikibase/DataModel#Monolingual_texts + */ +class DataValueMonolingualText extends DataValue { + + /** + * Constructor + * + * @param string $language Language (e.g. 'it', 'en', ...) + * @param string $text Text + */ + public function __construct( $language, $text ) { + parent::__construct( DataType::MONOLINGUAL_TEXT, [ + 'text' => $text, + 'language' => $language, + ] ); + } + + /** + * Get the text + * + * @return string + */ + public function getText() { + return $this->getValue()->text; + } + + /** + * Get the language + * + * @return string + */ + public function getLanguage() { + return $this->getValue()->language; + } + + /** + * @return string + */ + public function __toString() { + $text = $this->getText(); + $language = $this->getLanguage(); + return "$text [$language]"; + } +} diff --git "a/include/class-wb\\SnakMonolingualText.php" "b/include/class-wb\\SnakMonolingualText.php" new file mode 100644 index 0000000..ac4d273 --- /dev/null +++ "b/include/class-wb\\SnakMonolingualText.php" @@ -0,0 +1,43 @@ +. + +# Wikibase +namespace wb; + +/** + * A Snak for a monolingual text + * + * @see https://www.mediawiki.org/wiki/Wikibase/DataModel#Monolingual_texts + */ +class SnakMonolingualText extends Snak { + + /** + * Constructor + * + * @param string $property Wikidata property as 'P123' + * @param string $lang Language (e.g. 'it', 'en') + * @param string $text Text + */ + public function __construct( $property, $lang, $text ) { + return parent::__construct( + 'value', + $property, + DataType::MONOLINGUAL_TEXT, + new DataValueMonolingualText( $lang, $text ) + ); + } +} diff --git "a/include/class-wb\\StatementMonolingualText.php" "b/include/class-wb\\StatementMonolingualText.php" new file mode 100644 index 0000000..73efeb5 --- /dev/null +++ "b/include/class-wb\\StatementMonolingualText.php" @@ -0,0 +1,39 @@ +. + +# Wikibase +namespace wb; + +/** + * Statement suitable for a monolingual text + * + * @see https://www.mediawiki.org/wiki/Wikibase/DataModel#Monolingual_text + */ +class StatementMonolingualText extends Statement { + + /** + * Constructor + * + * @param string $property Wikidata property as 'P123' + * @param string $lang Language (e.g. 'it', 'en') + * @param string $text Text + */ + public function __construct( $property, $language, $text ) { + parent::__construct( new SnakMonolingualText( $property, $language, $text ) ); + } + +}