Robert Vogel has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/394306 )
Change subject: BSFoundation: Added basic ArticlePreviewImage module
......................................................................
BSFoundation: Added basic ArticlePreviewImage module
Change-Id: I92b35f29d753a35907a5e949d08de7f9a6ba4f84
---
M extension.json
A resources/assets/article-preview-images/dummy.png
A src/DynamicFileDispatcher/ArticlePreviewImage.php
A src/DynamicFileDispatcher/ArticlePreviewImage/Image.php
M src/DynamicFileDispatcher/Factory.php
5 files changed, 109 insertions(+), 1 deletion(-)
Approvals:
Robert Vogel: Verified; Looks good to me, approved
diff --git a/extension.json b/extension.json
index aca2f07..e800179 100644
--- a/extension.json
+++ b/extension.json
@@ -21,7 +21,8 @@
}
},
"DynamicFileRegistry": {
- "userprofileimage":
"\\BlueSpice\\DynamicFileDispatcher\\UserProfileImage"
+ "userprofileimage":
"\\BlueSpice\\DynamicFileDispatcher\\UserProfileImage",
+ "articlepreviewimage":
"\\BlueSpice\\DynamicFileDispatcher\\ArticlePreviewImage"
},
"EntityRegistry": {}
}
diff --git a/resources/assets/article-preview-images/dummy.png
b/resources/assets/article-preview-images/dummy.png
new file mode 100644
index 0000000..048b952
--- /dev/null
+++ b/resources/assets/article-preview-images/dummy.png
Binary files differ
diff --git a/src/DynamicFileDispatcher/ArticlePreviewImage.php
b/src/DynamicFileDispatcher/ArticlePreviewImage.php
new file mode 100644
index 0000000..192a6d5
--- /dev/null
+++ b/src/DynamicFileDispatcher/ArticlePreviewImage.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace BlueSpice\DynamicFileDispatcher;
+
+class ArticlePreviewImage extends Module {
+ const TITLETEXT = 'titletext';
+ const WIDTH = 'width';
+ const HEIGHT = 'height';
+
+ public function getParamDefinition() {
+ return array_merge( parent::getParamDefinition(), [
+ static::TITLETEXT => [
+ Params::PARAM_TYPE => Params::TYPE_STRING,
+ Params::PARAM_DEFAULT => '',
+ ],
+ static::WIDTH => [
+ Params::PARAM_TYPE => Params::TYPE_INT,
+ Params::PARAM_DEFAULT => 40, //TODO: config
+ ],
+ static::HEIGHT => [
+ Params::PARAM_TYPE => Params::TYPE_INT,
+ Params::PARAM_DEFAULT => 40, //TODO: config
+ ],
+ ]);
+ }
+
+ /**
+ *
+ * @param Params $params
+ */
+ protected function extractParams( $params ) {
+ parent::extractParams( $params );
+ if( !\Title::newFromText( $this->params[static::TITLETEXT] ) ) {
+ throw new \MWException(
+ "Invalid titletext:
{$this->params[static::TITLETEXT]}"
+ );
+ }
+ }
+
+ /**
+ * @return File
+ */
+ public function getFile() {
+ return new
\BlueSpice\DynamicFileDispatcher\ArticlePreviewImage\Image(
+ $this,
+ \Title::newFromText( $this->params[static::TITLETEXT] )
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/DynamicFileDispatcher/ArticlePreviewImage/Image.php
b/src/DynamicFileDispatcher/ArticlePreviewImage/Image.php
new file mode 100644
index 0000000..85e0dc5
--- /dev/null
+++ b/src/DynamicFileDispatcher/ArticlePreviewImage/Image.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace BlueSpice\DynamicFileDispatcher\ArticlePreviewImage;
+use \BlueSpice\DynamicFileDispatcher\Module;
+
+class Image extends \BlueSpice\DynamicFileDispatcher\File {
+
+ /**
+ *
+ * @var \Title
+ */
+ protected $title = null;
+
+ /**
+ *
+ * @param Module $dfd
+ * @param \Title $title
+ */
+ public function __construct( Module $dfd, \Title $title ) {
+ parent::__construct( $dfd );
+ $this->title = $title;
+ }
+
+ protected function getSourcePath() {
+ return $GLOBALS['wgExtensionDirectory']
+
."/BlueSpiceFoundation/resources/assets/article-preview-images/dummy.png";
+ }
+
+ /**
+ * Sets the headers for given \WebResponse
+ * @param \WebResponse $response
+ * @return void
+ */
+ public function setHeaders( \WebResponse $response ) {
+ $response->header(
+ 'Content-type: '.$this->getMimeType(),
+ true
+ );
+
+ $path = \BsFileSystemHelper::normalizePath(
+ $this->getSourcePath()
+ );
+
+ readfile( $path );
+ }
+
+ public function getMimeType() {
+ return 'image/png';
+ }
+}
\ No newline at end of file
diff --git a/src/DynamicFileDispatcher/Factory.php
b/src/DynamicFileDispatcher/Factory.php
index fc054a5..5b64577 100644
--- a/src/DynamicFileDispatcher/Factory.php
+++ b/src/DynamicFileDispatcher/Factory.php
@@ -77,6 +77,14 @@
$this->modules = $extRegistry->getAttribute(
'BlueSpiceFoundationDynamicFileRegistry'
);
+ foreach( $this->modules as $key => $module ) {
+ if( !is_array( $module ) ) {
+ continue;
+ }
+ //Attributes get merged together instead of
overwritten, so just take the
+ //last one
+ $this->modules[$key] = end( $module );
+ }
return $this->modules;
}
--
To view, visit https://gerrit.wikimedia.org/r/394306
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I92b35f29d753a35907a5e949d08de7f9a6ba4f84
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/BlueSpiceFoundation
Gerrit-Branch: master
Gerrit-Owner: Pwirth <[email protected]>
Gerrit-Reviewer: Ljonka <[email protected]>
Gerrit-Reviewer: Mglaser <[email protected]>
Gerrit-Reviewer: Robert Vogel <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits