Pwirth has submitted this change and it was merged.

Change subject: AboutBlueSpice extension: initial commit
......................................................................


AboutBlueSpice extension: initial commit

This extension brings a special page which shows up-to-date information
about BlueSpice. Links to that page are rendered in several menus. There
is a preference setting to opt out of the menu links if needed.

Patch Set 4: Handled i18n comment

Change-Id: Iad8893e53b67b70b2cbf21b5b9ebafff395b45c0
---
A AboutBlueSpice/AboutBlueSpice.class.php
A AboutBlueSpice/AboutBlueSpice.setup.php
A AboutBlueSpice/i18n/de.json
A AboutBlueSpice/i18n/en.json
A AboutBlueSpice/i18n/qqq.json
A AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.alias.php
A AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.class.php
A AboutBlueSpice/resources/bluespice.aboutbluespice.js
M BlueSpiceExtensions.php.template
9 files changed, 309 insertions(+), 0 deletions(-)

Approvals:
  Pwirth: Looks good to me, approved
  Raimond Spekking: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/AboutBlueSpice/AboutBlueSpice.class.php 
b/AboutBlueSpice/AboutBlueSpice.class.php
new file mode 100644
index 0000000..3f25bc0
--- /dev/null
+++ b/AboutBlueSpice/AboutBlueSpice.class.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * BlueSpice for MediaWiki
+ * Extension: AboutBlueSpice
+ * Description: Show user additional options of the pro version.
+ * Authors: Markus Glaser
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * For further information visit http://www.bluespice.com
+ *
+ * @author     Markus Glaser <[email protected]>
+ * @version    2.23.2
+ * @package    BlueSpice_Extensions
+ * @subpackage AboutBlueSpice
+ * @copyright  Copyright (C) 2015 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+
+class AboutBlueSpice extends BsExtensionMW {
+
+       public function __construct() {
+               wfProfileIn( 'BS::'.__METHOD__ );
+
+               // Base settings
+               $this->mExtensionFile = __FILE__;
+               $this->mExtensionType = EXTTYPE::VARIABLE;
+               $this->mInfo = array(
+                       EXTINFO::NAME => 'AboutBlueSpice',
+                       EXTINFO::DESCRIPTION => 'bs-aboutbluespice-desc',
+                       EXTINFO::AUTHOR      => 'Markus Glaser',
+                       EXTINFO::VERSION     => 'default',
+                       EXTINFO::STATUS      => 'default',
+                       EXTINFO::PACKAGE     => 'default',
+                       EXTINFO::URL => 'http://www.hallowelt.com',
+                       EXTINFO::DEPS => array ( 'bluespice' => '2.23.1' )
+               );
+               $this->mExtensionKey = 'MW::AboutBluespice';
+               wfProfileOut( 'BS::'.__METHOD__ );
+       }
+
+       protected function initExt() {
+               wfProfileIn( 'BS::'.__METHOD__ );
+               // Hooks
+               $this->setHook( 'BeforePageDisplay' );
+               $this->setHook( 'BSWikiAdminMenuItems' );
+
+               BsConfig::registerVar( 'MW::AboutBlueSpice::ShowMenuLinks', 
true, BsConfig::LEVEL_PUBLIC | BsConfig::TYPE_BOOL, 
'bs-aboutbluespice-show-menu-links', 'toggle' );
+
+               wfProfileOut( 'BS::'.__METHOD__ );
+       }
+
+       /**
+        *
+        * @param OutputPage $out
+        * @param Skin $skin
+        * @return boolean
+        */
+       public static function onBeforePageDisplay( &$out, &$skin ) {
+               if ( BsConfig::get( 'MW::AboutBlueSpice::ShowMenuLinks' )) {
+                       $out->addModules( 'ext.bluespice.aboutbluespice' );
+               }
+               return true;
+       }
+
+       /**
+        * Returns a list item with a link to the "About BlueSpice" special page
+        * @param array $aOutSortable Indexed list of menu items. Add item in 
HTML form.
+        * @return string Link to the "About BlueSpice" special page
+        */
+       public static function onBSWikiAdminMenuItems( &$aOutSortable ) {
+               $oSpecialPage = SpecialPage::getTitleFor( 'AboutBlueSpice' );
+               $sLink = Html::element(
+                               'a',
+                               array (
+                                       'id' => 'bs-admin-aboutbluespice',
+                                       'href' => $oSpecialPage->getLocalURL(),
+                                       'title' => wfMessage( 
'bs-aboutbluespice-about-bluespice' )->plain()
+                               ),
+                               wfMessage( 'bs-aboutbluespice-about-bluespice' 
)->plain()
+               );
+               $aOutSortable[wfMessage( 'bs-aboutbluespice-about-bluespice' 
)->escaped()] = '<li>' . $sLink . '</li>';
+               return true;
+       }
+
+}
\ No newline at end of file
diff --git a/AboutBlueSpice/AboutBlueSpice.setup.php 
b/AboutBlueSpice/AboutBlueSpice.setup.php
new file mode 100644
index 0000000..6cac4f2
--- /dev/null
+++ b/AboutBlueSpice/AboutBlueSpice.setup.php
@@ -0,0 +1,27 @@
+<?php
+
+BsExtensionManager::registerExtension( 'AboutBlueSpice', BsRUNLEVEL::FULL | 
BsRUNLEVEL::REMOTE );
+
+$GLOBALS['wgAutoloadClasses']['AboutBlueSpice'] = __DIR__ . 
'/AboutBlueSpice.class.php';
+$wgAutoloadClasses['SpecialAboutBlueSpice'] = __DIR__ . 
'/includes/specials/SpecialAboutBlueSpice.class.php';
+
+$wgMessagesDirs['AboutBlueSpice'] = __DIR__ . '/i18n';
+
+$wgSpecialPages['AboutBlueSpice'] = 'SpecialAboutBlueSpice';
+$wgExtensionMessagesFiles['ExtendedStatisticsAlias'] = __DIR__ . 
'/includes/specials/SpecialAboutBlueSpice.alias.php';
+
+$aResourceModuleTemplate = array (
+       'localBasePath' => __DIR__ . '/resources',
+       'remoteExtPath' => 'BlueSpiceExtensions/AboutBlueSpice/resources'
+);
+
+$wgResourceModules['ext.bluespice.aboutbluespice'] = array (
+       'scripts' => array (
+               'bluespice.aboutbluespice.js'
+       ),
+       'messages' => array (
+               'bs-aboutbluespice-about-bluespice'
+       )
+) + $aResourceModuleTemplate;
+
+unset( $aResoureModuleTemplate );
diff --git a/AboutBlueSpice/i18n/de.json b/AboutBlueSpice/i18n/de.json
new file mode 100644
index 0000000..f9c9ad3
--- /dev/null
+++ b/AboutBlueSpice/i18n/de.json
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Markus Glaser <[email protected]>"
+               ]
+       },
+       "bs-aboutbluespice-desc": "Informationen über BlueSpice.",
+       "bs-aboutbluespice-about-bluespice": "Über BlueSpice",
+       "aboutbluespice": "Über BlueSpice",
+       "prefs-aboutbluespice": "Über BlueSpice",
+       "bs-aboutbluespice-show-menu-links": "Link 
\"{{int:bs-aboutbluespice-about-bluespice}}\" im Top- und Hauptmenü anzeigen"
+}
\ No newline at end of file
diff --git a/AboutBlueSpice/i18n/en.json b/AboutBlueSpice/i18n/en.json
new file mode 100644
index 0000000..18d2ceb
--- /dev/null
+++ b/AboutBlueSpice/i18n/en.json
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Markus Glaser <[email protected]>"
+               ]
+       },
+       "bs-aboutbluespice-desc": "Information about BlueSpice.",
+       "bs-aboutbluespice-about-bluespice": "About BlueSpice",
+       "aboutbluespice": "About BlueSpice",
+       "prefs-aboutbluespice": "About BlueSpice",
+       "bs-aboutbluespice-show-menu-links": "Show link 
\"{{int:bs-aboutbluespice-about-bluespice}}\" in top and main menu"
+}
diff --git a/AboutBlueSpice/i18n/qqq.json b/AboutBlueSpice/i18n/qqq.json
new file mode 100644
index 0000000..4222d05
--- /dev/null
+++ b/AboutBlueSpice/i18n/qqq.json
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Markus Glaser <[email protected]>"
+               ]
+       },
+       "bs-aboutbluespice-desc": "Used in 
[{{canonicalurl:Special:WikiAdmin|mode=ExtensionInfo}} 
Special:WikiAdmin?mode=ExtensionInfo], description of AboutBlueSpice extension",
+       "bs-aboutbluespice-about-bluespice": "Label for menu item in various 
menus",
+       "aboutbluespice": "Label for special page in list of special pages",
+       "prefs-aboutbluespice": "Header for extension's preferences settings",
+       "bs-aboutbluespice-show-menu-links": "Label for option to show the 
\"{{int:bs-aboutbluespice-about-bluespice}}\" link in top and main menu"
+}
\ No newline at end of file
diff --git a/AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.alias.php 
b/AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.alias.php
new file mode 100644
index 0000000..738bf01
--- /dev/null
+++ b/AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.alias.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Internationalisation file for About BlueSpice special page.
+ *
+ * Part of BlueSpice for MediaWiki
+ *
+ * @author     Markus Glaser <[email protected]>
+
+ * @package    BlueSpice_Extensions
+ * @subpackage AboutBlueSpice
+ * @copyright  Copyright (C) 2015 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+$specialPageAliases = array();
+
+/** English */
+$specialPageAliases['en'] = array(
+       'AboutBlueSpice' => array( 'About BlueSpice' ),
+);
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = array(
+       'AboutBlueSpice' => array( 'Über BlueSpice' ),
+);
\ No newline at end of file
diff --git a/AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.class.php 
b/AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.class.php
new file mode 100644
index 0000000..b5da6be
--- /dev/null
+++ b/AboutBlueSpice/includes/specials/SpecialAboutBlueSpice.class.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Renders the About BlueSpice special page.
+ *
+ * Part of BlueSpice for MediaWiki
+ *
+ * @author     Markus Glaser <[email protected]>
+
+ * @package    BlueSpice_Extensions
+ * @subpackage AboutBlueSpice
+ * @copyright  Copyright (C) 2015 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+
+class SpecialAboutBlueSpice extends BsSpecialPage {
+
+       /**
+        * Constructor of SpecialAboutBlueSpice class
+        */
+       public function __construct() {
+               wfProfileIn( 'BS::'.__METHOD__ );
+               parent::__construct( 'AboutBlueSpice' );
+               wfProfileOut( 'BS::'.__METHOD__ );
+       }
+
+       /**
+        * Renders special page output.
+        * @param string $sParameter Not used.
+        * @return bool Allow other hooked methods to be executed. Always true.
+        */
+       public function execute( $sParameter ) {
+               parent::execute( $sParameter );
+
+               $sLang = $this->getLanguage()->getCode();
+               switch ( substr( $sLang, 0, 2 ) ) {
+                       case "de" :
+                               $sUrl = "http://de.bluespice.com";;
+                               break;
+                       default :
+                               $sUrl = "http://www.bluespice.com";;
+               };
+
+               $sOutHTML = '<iframe src="' . $sUrl . '" 
id="aboutbluespiceremote" 
style="width:100%;border:0px;min-height:400px;"></iframe>';
+
+               $oOutputPage = $this->getOutput();
+
+               $oOutputPage->addHTML( $sOutHTML );
+
+               return true;
+       }
+
+       protected function getGroupName() {
+               return 'bluespice';
+       }
+
+}
\ No newline at end of file
diff --git a/AboutBlueSpice/resources/bluespice.aboutbluespice.js 
b/AboutBlueSpice/resources/bluespice.aboutbluespice.js
new file mode 100644
index 0000000..6911919
--- /dev/null
+++ b/AboutBlueSpice/resources/bluespice.aboutbluespice.js
@@ -0,0 +1,62 @@
+/**
+ * About BlueSpice extension
+ *
+ * @author     Markus Glaser <[email protected]>
+ * @version    1.0.0 beta
+
+ * @package    Bluespice_Extensions
+ * @subpackage AboutBlueSpice
+ * @copyright  Copyright (C) 2015 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+
+/**
+* Adds items for About BlueSpice to top and main menu.
+*/
+
+$(function () {
+       // Add About BlueSpice link to top menu
+       var sAboutBlueSpiceTopLink = mw.html.element(
+                       'a',
+                       {
+                               href: mw.util.getUrl('Special:AboutBlueSpice'),
+                               class: 'menu-item-single level-1'
+                       },
+                       mw.message('bs-aboutbluespice-about-bluespice').plain()
+               );
+       var sAboutBlueSpiceTopMenuItem = mw.html.element(
+                       'li',
+                       {},
+                       new mw.html.Raw( sAboutBlueSpiceTopLink )
+               );
+       $('#bs-apps').find('ul').append( sAboutBlueSpiceTopMenuItem );
+
+       // Add About BlueSpice link to main navigation
+       var sAboutBlueSpiceMainLink = mw.html.element(
+                       'a',
+                       {
+                               href: mw.util.getUrl('Special:AboutBlueSpice'),
+                               class: 'menu-item-single level-1'
+                       },
+                       new mw.html.Raw(
+                                       mw.html.element(
+                                               'span',
+                                               {class: 'icon24'}
+                                       ) +
+                                       mw.html.element(
+                                               'span',
+                                               {class: 'bs-nav.item-text'},
+                                               
mw.message('bs-aboutbluespice-about-bluespice').plain()
+                                       )
+                               )
+               );
+       var sAboutBlueSpiceMainMenuItem = mw.html.element(
+                       'li',
+                       {
+                               class: 'clearfix'
+                       },
+                       new mw.html.Raw( sAboutBlueSpiceMainLink )
+               );
+       $('#p-navigation').find('ul').append( sAboutBlueSpiceMainMenuItem );
+});
\ No newline at end of file
diff --git a/BlueSpiceExtensions.php.template b/BlueSpiceExtensions.php.template
index 9db77ba..ac11c4b 100644
--- a/BlueSpiceExtensions.php.template
+++ b/BlueSpiceExtensions.php.template
@@ -12,6 +12,7 @@
 //Other Extendsions
 require_once( __DIR__."/StateBar/StateBar.setup.php" );
 require_once( __DIR__."/RSSFeeder/RSSFeeder.setup.php" );
+require_once( __DIR__."/AboutBlueSpice/AboutBlueSpice.setup.php" );
 require_once( __DIR__."/ArticleInfo/ArticleInfo.setup.php" );
 require_once( __DIR__."/Authors/Authors.setup.php" );
 require_once( __DIR__."/Blog/Blog.setup.php" );

-- 
To view, visit https://gerrit.wikimedia.org/r/249764
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iad8893e53b67b70b2cbf21b5b9ebafff395b45c0
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Mglaser <[email protected]>
Gerrit-Reviewer: Mglaser <[email protected]>
Gerrit-Reviewer: Pwirth <[email protected]>
Gerrit-Reviewer: Raimond Spekking <[email protected]>
Gerrit-Reviewer: Robert Vogel <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to