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