Pmiazga has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/375444 )

Change subject: [WIP] Introduce extension.json
......................................................................

[WIP] Introduce extension.json

Changes:
 - Moved all necessary config options from Collection.php to
 extension.json file

Change-Id: I96dea0f8987ccefdf357d631be407d92c7309239
---
M Collection.php
A extension.json
2 files changed, 214 insertions(+), 222 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection 
refs/changes/44/375444/1

diff --git a/Collection.php b/Collection.php
index 9f95178..41589a7 100644
--- a/Collection.php
+++ b/Collection.php
@@ -21,233 +21,18 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-# Not a valid entry point, skip unless MEDIAWIKI is defined
-if ( !defined( 'MEDIAWIKI' ) ) {
-       echo <<<EOT
-To install the Collection extension, put the following line in 
LocalSettings.php:
-require_once( "\$IP/extensions/Collection/Collection.php" );
-EOT;
-       exit( 1 );
+if ( function_exists( 'wfLoadExtension' ) ) {
+       wfLoadExtension( 'Collection' );
+       // Keep i18n globals so mergeMessageFileList.php doesn't break
+       $wgMessagesDirs['Collection'] = __DIR__ . '/i18n';
+       $wgExtensionMessagesFiles['CollectionAlias'] = __DIR__ . 
'/Collection.alias.php';
+} else {
+       die( 'This version of the MobileFrontend extension requires MediaWiki 
1.25+' );
 }
-
-$wgExtensionCredits['specialpage'][] = [
-       'path' => __FILE__,
-       'name' => 'Collection',
-       'version' => '1.7.0',
-       'author' => [ 'PediaPress GmbH', 'Siebrand Mazeland', 'Marcin Cieślak' 
],
-       'url' => 'https://www.mediawiki.org/wiki/Extension:Collection',
-       'descriptionmsg' => 'coll-desc',
-       'license-name' => 'GPL-2.0+',
-];
-
-# 
==============================================================================
-
-# Configuration:
-
-/** URL of mw-serve render server */
-$wgCollectionMWServeURL = 'https://tools.pediapress.com/mw-serve/';
-
-/** Login credentials to this MediaWiki as 'USERNAME:PASSWORD' string */
-$wgCollectionMWServeCredentials = null;
-
-/** PEM-encoded SSL certificate for the mw-serve render server to pass to CURL 
*/
-$wgCollectionMWServeCert = null;
-
-/** Array of namespaces that can be added to a collection */
-$wgCollectionArticleNamespaces = [
-       NS_MAIN,
-       NS_TALK,
-       NS_USER,
-       NS_USER_TALK,
-       NS_PROJECT,
-       NS_PROJECT_TALK,
-       NS_MEDIAWIKI,
-       NS_MEDIAWIKI_TALK,
-       100,
-       101,
-       102,
-       103,
-       104,
-       105,
-       106,
-       107,
-       108,
-       109,
-       110,
-       111,
-];
-
-/** Namespace for "community books" */
-$wgCommunityCollectionNamespace = NS_PROJECT;
-
-/** Maximum no. of articles in a book */
-$wgCollectionMaxArticles = 500;
-
-/** Name of license */
-$wgCollectionLicenseName = null;
-
-/** HTTP(s) URL pointing to license in wikitext format: */
-$wgCollectionLicenseURL = null;
-
-/** List of available download formats,
-               as mapping of mwlib writer to format name */
-$wgCollectionFormats = [
-       'rl' => 'PDF',
-];
-
-/** Additional renderer options for collections. Format is as for
- * HTMLForm::loadInputFromParameters. Note that fieldnames may only contain
- * [a-zA-Z0-9_-], and values may not contain pipes or newlines. If the
- * 'options' field is an array, keys will be interpreted as messages.
- */
-$wgCollectionRendererSettings = [
-       'papersize' => [
-               'type' => 'select',
-               'label-message' => 'coll-setting-papersize',
-               'default' => 'a4',
-               'options' => [
-                       'coll-setting-papersize-a4' => 'a4',
-                       'coll-setting-papersize-letter' => 'letter',
-               ],
-       ],
-       'toc' => [
-               'type' => 'select',
-               'label-message' => 'coll-setting-toc',
-               'default' => 'auto',
-               'options' => [
-                       'coll-setting-toc-auto' => 'auto',
-                       'coll-setting-toc-yes' => 'yes',
-                       'coll-setting-toc-no' => 'no',
-               ]
-       ],
-       'columns' => [
-               'type' => 'select',
-               'label-message' => 'coll-setting-columns',
-               'default' => '2',
-               'options' => [
-                       'coll-setting-columns-1' => '1',
-                       'coll-setting-columns-2' => '2',
-               ],
-       ],
-];
-
-/** Some commands require an external server
- */
-$wgCollectionCommandToServeURL = [];
-
-/** For formats which rendering depends on an external server
-*/
-$wgCollectionFormatToServeURL = [];
-
-$wgCollectionContentTypeToFilename = [
-       'application/pdf' => 'collection.pdf',
-       'application/vnd.oasis.opendocument.text' => 'collection.odt',
-       'text/plain' => 'collection.txt',
-];
-
-$wgCollectionPortletFormats = [ 'rl' ];
-
-$wgCollectionPortletForLoggedInUsersOnly = false;
-
-$wgCollectionMaxSuggestions = 10;
-
-$wgCollectionSuggestCheapWeightThreshhold = 50;
-
-$wgCollectionSuggestThreshhold = 100;
-
-$wgCollectionPODPartners = [
-       'pediapress' => [
-               'name' => 'PediaPress',
-               'url' => 'https://pediapress.com/',
-               'posturl' => 'https://pediapress.com/api/collections/',
-               'infopagetitle' => 'coll-order_info_article',
-       ],
-];
-
-# Optional notes that are displayed on the download screen for the rendered
-# document. Each entry is a message key.
-$wgCollectionShowRenderNotes = [
-       'coll-rendering_finished_note_not_satisfied',
-];
-
-# 
==============================================================================
-
-# register Special:Book:
-$wgAutoloadClasses['SpecialCollection'] = __DIR__ . '/Collection.body.php';
-$wgAutoloadClasses['CollectionSession'] = __DIR__ . '/Collection.session.php';
-$wgAutoloadClasses['CollectionHooks'] = __DIR__ . '/Collection.hooks.php';
-$wgAutoloadClasses['CollectionSuggest'] = __DIR__ . '/Collection.suggest.php';
-$wgAutoloadClasses['CollectionProposals'] = __DIR__ . 
'/Collection.suggest.php';
-
-$wgAutoloadClasses['CollectionPageTemplate'] = __DIR__ . 
'/templates/CollectionPageTemplate.php';
-$wgAutoloadClasses['CollectionListTemplate'] = __DIR__ . 
'/templates/CollectionListTemplate.php';
-$wgAutoloadClasses['CollectionLoadOverwriteTemplate'] =
-       __DIR__ . '/templates/CollectionLoadOverwriteTemplate.php';
-$wgAutoloadClasses['CollectionSaveOverwriteTemplate'] =
-       __DIR__ . '/templates/CollectionSaveOverwriteTemplate.php';
-$wgAutoloadClasses['CollectionRenderingTemplate'] =
-       __DIR__ . '/templates/CollectionRenderingTemplate.php';
-$wgAutoloadClasses['CollectionFinishedTemplate'] =
-       __DIR__ . '/templates/CollectionFinishedTemplate.php';
-$wgAutoloadClasses['CollectionFailedTemplate'] =
-       __DIR__ . '/templates/CollectionFailedTemplate.php';
-$wgAutoloadClasses['CollectionSuggestTemplate'] =
-       __DIR__ . '/templates/CollectionSuggestTemplate.php';
-
-$wgAutoloadClasses['CollectionRenderingAPI'] = __DIR__ . '/RenderingAPI.php';
-$wgAutoloadClasses['MWServeRenderingAPI'] = __DIR__ . '/RenderingAPI.php';
-$wgAutoloadClasses['CollectionAPIResult'] = __DIR__ . '/RenderingAPI.php';
-
-$wgMessagesDirs['Collection'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['CollectionAlias'] = __DIR__ . 
'/Collection.alias.php';
-
-$wgSpecialPages['Book'] = 'SpecialCollection';
-
-$wgHooks['SkinTemplateBuildNavUrlsNav_urlsAfterPermalink'][] = 
'CollectionHooks::buildNavUrls';
-$wgHooks['SidebarBeforeOutput'][] = 'CollectionHooks::buildSidebar';
-$wgHooks['SiteNoticeAfter'][] = 'CollectionHooks::siteNoticeAfter';
-$wgHooks['OutputPageCheckLastModified'][] = 
'CollectionHooks::checkLastModified';
-$wgExtensionFunctions[] = 'CollectionHooks::onSetup';
-
-$wgAvailableRights[] = 'collectionsaveasuserpage';
-$wgAvailableRights[] = 'collectionsaveascommunitypage';
 
 $collResourceTemplate = [
        'localBasePath' => __DIR__ . '/resources',
        'remoteExtPath' => 'Collection/resources'
-];
-
-$wgResourceModules += [
-       'ext.collection' => $collResourceTemplate + [
-               'scripts' => 'ext.collection/collection.js',
-               'dependencies' => [
-                       'ext.collection.bookcreator',
-                       'jquery.ui.sortable',
-                       'mediawiki.language',
-               ],
-       ],
-       'ext.collection.bookcreator.styles' => $collResourceTemplate + [
-               'styles' => 'ext.collection.bookcreator.styles/bookcreator.css',
-       ],
-       'ext.collection.bookcreator' => $collResourceTemplate + [
-               'scripts' => 'ext.collection.bookcreator/bookcreator.js',
-               'dependencies' => [ 'jquery.jStorage', 
'ext.collection.bookcreator.styles' ],
-       ],
-       'ext.collection.checkLoadFromLocalStorage' => $collResourceTemplate + [
-               'scripts' => 
'ext.collection.checkLoadFromLocalStorage/check_load_from_localstorage.js',
-               'dependencies' => [
-                       'ext.collection',
-                       'ext.collection.bookcreator.styles',
-                       'jquery.jStorage',
-               ],
-               'messages' => [
-                       'coll-load_local_book'
-               ]
-       ],
-       'ext.collection.suggest' => $collResourceTemplate + [
-               'scripts' => 'ext.collection.suggest/suggest.js',
-               'dependencies' => 'ext.collection.bookcreator'
-       ],
 ];
 
 # register global Ajax functions:
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..25f748b
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,207 @@
+{
+       "name": "Collection",
+       "version": "2.0.0",
+       "url": "https://www.mediawiki.org/wiki/Extension:Collection";,
+       "descriptionmsg": "coll-desc",
+       "authors": [
+               "PediaPress GmbH",
+               "Siebrand Mazeland",
+               "Marcin Cieślak"
+       ],
+       "type": "other",
+       "license-name": "GPL-2.0+",
+       "SpecialPages": {
+               "Book": "SpecialCollection"
+       },
+       "MessagesDirs": {
+               "Collection": [
+                       "i18n"
+               ]
+       },
+       "ExtensionFunctions": [
+               "CollectionHooks::onSetup"
+       ],
+       "ExtensionMessagesFiles": {
+               "CollectionAlias": "Collection.alias.php"
+       },
+       "AvailableRights": [
+               "collectionsaveasuserpage",
+               "collectionsaveascommunitypage"
+       ],
+       "AutoloadClasses": {
+               "SpecialCollection": "Collection.body.php",
+               "CollectionSession": "Collection.session.php",
+               "CollectionHooks": "Collection.hooks.php",
+               "CollectionSuggest": "/Collection.suggest.php",
+               "CollectionProposals": "Collection.suggest.php",
+               "CollectionPageTemplate": 
"templates/CollectionPageTemplate.php",
+               "CollectionListTemplate": 
"templates/CollectionListTemplate.php",
+               "CollectionLoadOverwriteTemplate": 
"templates/CollectionLoadOverwriteTemplate.php",
+               "CollectionSaveOverwriteTemplate": 
"templates/CollectionSaveOverwriteTemplate.php",
+               "CollectionRenderingTemplate": 
"templates/CollectionRenderingTemplate.php",
+               "CollectionFinishedTemplate": 
"templates/CollectionFinishedTemplate.php",
+               "CollectionFailedTemplate": 
"/templates/CollectionFailedTemplate.php",
+               "CollectionSuggestTemplate": 
"templates/CollectionSuggestTemplate.php",
+               "CollectionRenderingAPI": "RenderingAPI.php",
+               "MWServeRenderingAPI": "RenderingAPI.php",
+               "'CollectionAPIResult": "RenderingAPI.php"
+       },
+       "ResourceModules": {
+               "ext.collection": {
+                       "localBasePath": "resources/",
+                       "remoteExtPath": "Collection/resources",
+                       "scripts": "ext.collection/collection.js",
+                       "dependencies":[
+                               "ext.collection.bookcreator",
+                               "jquery.ui.sortable",
+                               "mediawiki.language"
+                       ]
+               },
+               "ext.collection.bookcreator.styles": {
+                       "localBasePath": "resources/",
+                       "remoteExtPath": "Collection/resources",
+                       "styles": 
"ext.collection.bookcreator.styles/bookcreator.css"
+               },
+               "ext.collection.bookcreator": {
+                       "localBasePath": "resources/",
+                       "remoteExtPath": "Collection/resources",
+                       "scripts":"ext.collection.bookcreator/bookcreator.js",
+                       "dependencies": [
+                               "jquery.jStorage",
+                               "ext.collection.bookcreator.styles"
+                       ]
+               },
+               "ext.collection.checkLoadFromLocalStorage": {
+                       "localBasePath": "resources/",
+                       "remoteExtPath": "Collection/resources",
+                       "scripts": 
"ext.collection.checkLoadFromLocalStorage/check_load_from_localstorage.js",
+                       "dependencies": [
+                               "ext.collection",
+                               "ext.collection.bookcreator.styles",
+                               "jquery.jStorage"
+                       ],
+                       "messages": [ "coll-load_local_book" ]
+               },
+               "ext.collection.suggest": {
+                       "localBasePath": "resources/",
+                       "remoteExtPath": "Collection/resources",
+                       "scripts": "ext.collection.suggest/suggest.js",
+                       "dependencies":"ext.collection.bookcreator"
+               }
+       },
+       "ResourceFileModulePaths": {},
+       "Hooks": {
+               "SkinTemplateBuildNavUrlsNav_urlsAfterPermalink": [
+                       "CollectionHooks::buildNavUrls"
+               ],
+               "SidebarBeforeOutput": [
+                       "CollectionHooks::buildSidebar"
+               ],
+               "SiteNoticeAfter": [
+                       "CollectionHooks::siteNoticeAfter"
+               ],
+               "OutputPageCheckLastModified": [
+                       "CollectionHooks::checkLastModified"
+               ]
+       },
+       "config": {
+               "@CollectionMWServeURL" : "URL of mw-serve render server",
+               "CollectionMWServeURL" : 
"https://tools.pediapress.com/mw-serve/";,
+               "@CollectionMWServeCredentials": " Login credentials to this 
MediaWiki as 'USERNAME:PASSWORD' string",
+               "CollectionMWServeCredentials": null,
+               "@CollectionMWServeCert": "PEM-encoded SSL certificate for the 
mw-serve render server to pass to CURL",
+               "CollectionMWServeCert": null,
+               "@CollectionArticleNamespaces": "Array of namespaces that can 
be added to a collection ",
+               "CollectionArticleNamespaces": [
+                       0,
+                       1,
+                       2,
+                       3,
+                       4,
+                       5,
+                       8,
+                       9,
+                       100,
+                       101,
+                       102,
+                       103,
+                       104,
+                       105,
+                       106,
+                       107,
+                       108,
+                       109,
+                       110,
+                       111
+               ],
+               "@CommunityCollectionNamespace": "Namespace for 'community 
books'",
+               "CommunityCollectionNamespace": 4,
+               "@CollectionMaxArticles": "Maximum no. of articles in a book ",
+               "CollectionMaxArticles": 500,
+               "@CollectionLicenseName": "Name of license",
+               "CollectionLicenseName": null,
+               "@CollectionLicenseURL": "v",
+               "CollectionLicenseURL": null,
+               "@CollectionFormats": "List of available download formats as 
mapping of mwlib writer to format name",
+               "CollectionFormats": {
+                       "rl": "PDF"
+               },
+               "@CollectionRendererSettings": "Additional renderer options for 
collections. Format is as for HTMLForm::loadInputFromParameters. Note that 
fieldnames may only contain [a-zA-Z0-9_-], and values may not contain pipes or 
newlines. If the 'options' field is an array, keys will be interpreted as 
messages.",
+               "CollectionRendererSettings": {
+                       "papersize": {
+                               "type": "select",
+                               "label-message": "coll-setting-papersize",
+                               "default": "a4",
+                               "options": {
+                                       "coll-setting-papersize-a4": "a4",
+                                       "coll-setting-papersize-letter": 
"letter"
+                               }
+                       },
+                       "toc": {
+                               "type": "select",
+                               "label-message": "coll-setting-toc",
+                               "default": "auto",
+                               "options": {
+                                       "coll-setting-toc-auto": "auto",
+                                       "coll-setting-toc-yes": "yes",
+                                       "coll-setting-toc-no": "no"
+                               }
+                       },
+                       "columns": {
+                               "type": "select",
+                               "label-message": "coll-setting-columns",
+                               "default": "2",
+                               "options": {
+                                       "coll-setting-columns-1": "1",
+                                       "coll-setting-columns-2": "2"
+                               }
+                       }
+               },
+               "@CollectionCommandToServeURL": "Some commands require an 
external server",
+               "CollectionCommandToServeURL": [],
+               "@CollectionFormatToServeURL": "For formats which rendering 
depends on an external server",
+               "CollectionFormatToServeURL": [],
+               "CollectionContentTypeToFilename": {
+                       "application/pdf" :"collection.pdf",
+                       "application/vnd.oasis.opendocument.text": 
"collection.odt",
+                       "text/plain": "collection.txt"
+               },
+
+               "CollectionPortletFormats": [ "rl" ],
+               "CollectionPortletForLoggedInUsersOnly" : false,
+               "CollectionMaxSuggestions": 10,
+               "CollectionSuggestCheapWeightThreshhold": 50,
+               "CollectionSuggestThreshhold": 100,
+               "CollectionPODPartners": {
+                       "pediapress": {
+                               "name": "PediaPress",
+                               "url": "https://pediapress.com/";,
+                               "posturl": 
"https://pediapress.com/api/collections/";,
+                               "infopagetitle": "coll-order_info_article"
+                       }
+               },
+               "@CollectionShowRenderNotes" : "Optional notes that are 
displayed on the download screen for the rendered document. Each entry is a 
message key.",
+               "CollectionShowRenderNotes": [ 
"coll-rendering_finished_note_not_satisfied" ]
+       },
+       "manifest_version": 1
+}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I96dea0f8987ccefdf357d631be407d92c7309239
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection
Gerrit-Branch: master
Gerrit-Owner: Pmiazga <pmia...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to