summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/DownloadLinksWidget.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/DownloadLinksWidget.php')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/DownloadLinksWidget.php98
1 files changed, 98 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/DownloadLinksWidget.php b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/DownloadLinksWidget.php
new file mode 100644
index 00000000..e46f26aa
--- /dev/null
+++ b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Ask/DownloadLinksWidget.php
@@ -0,0 +1,98 @@
+<?php
+
+namespace SMW\MediaWiki\Specials\Ask;
+
+use Html;
+use SMW\Message;
+use SMWInfolink as Infolink;
+
+/**
+ * @license GNU GPL v2+
+ * @since 3.0
+ *
+ * @author mwjames
+ */
+class DownloadLinksWidget {
+
+ /**
+ * @since 3.0
+ *
+ * @param Infolink|null $infolink
+ *
+ * @return string
+ */
+ public static function downloadLinks( Infolink $infolink = null ) {
+
+ if ( $infolink === null ) {
+ return '';
+ }
+
+ // Avoid modifying the original object
+ $infolink = clone $infolink;
+ $downloadLinks = [];
+
+ $infolink->setParameter( 'true', 'prettyprint' );
+ $infolink->setParameter( 'true', 'unescape' );
+ $infolink->setParameter( 'json', 'format' );
+ $infolink->setParameter( 'JSON', 'searchlabel' );
+ $infolink->setCaption( 'JSON' );
+
+ $infolink->setLinkAttributes(
+ [
+ 'title' => Message::get( [ 'smw-ask-download-link-desc', 'JSON' ], Message::TEXT, Message::USER_LANGUAGE ),
+ 'class' => 'page-link'
+ ]
+ );
+
+ $downloadLinks[] = $infolink->getHtml();
+
+ $infolink->setCaption( 'CSV' );
+ $infolink->setParameter( 'csv', 'format' );
+ $infolink->setParameter( 'CSV', 'searchlabel' );
+
+ $infolink->setLinkAttributes(
+ [
+ 'title' => Message::get( [ 'smw-ask-download-link-desc', 'CSV' ], Message::TEXT, Message::USER_LANGUAGE ),
+ 'class' => 'page-link'
+ ]
+ );
+
+ $downloadLinks[] = $infolink->getHtml();
+
+ $infolink->setCaption( 'RSS' );
+ $infolink->setParameter( 'rss', 'format' );
+ $infolink->setParameter( 'RSS', 'searchlabel' );
+
+ $infolink->setLinkAttributes(
+ [
+ 'title' => Message::get( [ 'smw-ask-download-link-desc', 'RSS' ], Message::TEXT, Message::USER_LANGUAGE ),
+ 'class' => 'page-link'
+ ]
+ );
+
+ $downloadLinks[] = $infolink->getHtml();
+
+ $infolink->setCaption( 'RDF' );
+ $infolink->setParameter( 'rdf', 'format' );
+ $infolink->setParameter( 'RDF', 'searchlabel' );
+
+ $infolink->setLinkAttributes(
+ [
+ 'title' => Message::get( [ 'smw-ask-download-link-desc', 'RDF' ], Message::TEXT, Message::USER_LANGUAGE ),
+ 'class' => 'page-link'
+ ]
+ );
+
+ $downloadLinks[] = $infolink->getHtml();
+
+ return Html::rawElement(
+ 'div',
+ [
+ 'id' => 'ask-export-links',
+ 'class' => 'smw-ask-downloadlinks export-links'
+ ],
+ '<div class="smw-ui-pagination">' . implode( '', $downloadLinks ) . '</div>'
+ );
+ }
+
+}