mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/AJAXPoll
synced 2024-12-01 01:56:33 +00:00
19c0147d3f
Also added "composer fix" command. Change-Id: If26ece876524ff6e11f90c56c28282f135f296ac
111 lines
3.3 KiB
PHP
111 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* AJAX Poll extension for MediaWiki
|
|
* Created by Dariusz Siedlecki, based on the work by Eric David.
|
|
* Licensed under the GFDL.
|
|
*
|
|
* <poll>
|
|
* Question
|
|
* Answer 1
|
|
* Answer 2
|
|
* Answer ...
|
|
* Answer n
|
|
* </poll>
|
|
*
|
|
* to allow the viewing of the poll results even without having voted
|
|
* <poll show-results-before-voting>
|
|
* Question
|
|
* Answer 1
|
|
* Answer 2
|
|
* Answer ...
|
|
* Answer n
|
|
* </poll>
|
|
*
|
|
* If the first line after <poll> is "STATS",
|
|
* then some statistics about the wiki and its polls will be displayed.
|
|
* These statistics are not localizable and this whole feature will probably be
|
|
* removed (or at least refactored, but probably removed) in the future.
|
|
* <poll>
|
|
* STATS
|
|
* </poll>
|
|
*
|
|
* @file
|
|
* @ingroup Extensions
|
|
* @author Dariusz Siedlecki <datrio@gmail.com>
|
|
* @author Jack Phoenix <jack@countervandalism.net>
|
|
* @author Thomas Gries
|
|
* @maintainer Thomas Gries
|
|
* @link http://www.mediawiki.org/wiki/Extension:AJAX_Poll Documentation
|
|
*/
|
|
|
|
if ( !defined( 'MEDIAWIKI' ) ) {
|
|
die( "This is not a valid entry point.\n" );
|
|
}
|
|
|
|
// Extension credits that will show up on Special:Version
|
|
$wgExtensionCredits['parserhook'][] = [
|
|
'path' => __FILE__,
|
|
'name' => 'AJAX Poll',
|
|
'version' => '1.89.0 20150928',
|
|
'author' => [ 'Dariusz Siedlecki', 'Jack Phoenix', 'Thomas Gries' ],
|
|
'descriptionmsg' => 'ajaxpoll-desc',
|
|
'url' => 'https://www.mediawiki.org/wiki/Extension:AJAX_Poll',
|
|
];
|
|
|
|
// Internationalization + AJAX function
|
|
$wgMessagesDirs['AJAXPoll'] = __DIR__ . '/i18n';
|
|
$wgAutoloadClasses['AJAXPoll'] = __DIR__ . '/AJAXPoll_body.php';
|
|
$wgAjaxExportList[] = 'AJAXPoll::submitVote';
|
|
$wgHooks['ParserFirstCallInit'][] = 'AJAXPoll::onParserInit';
|
|
$wgHooks['LoadExtensionSchemaUpdates'][] = 'AJAXPoll::onLoadExtensionSchemaUpdates';
|
|
|
|
$myResourceTemplate = [
|
|
'localBasePath' => __DIR__ . '/resources',
|
|
'remoteExtPath' => 'AJAXPoll/resources',
|
|
'group' => 'ext.ajaxpoll',
|
|
];
|
|
$wgResourceModules['ext.ajaxpoll'] = $myResourceTemplate + [
|
|
'scripts' => [
|
|
'ajaxpoll.js',
|
|
],
|
|
'styles' => [
|
|
'ajaxpoll.css',
|
|
],
|
|
'dependencies' => [],
|
|
'messages' => [
|
|
'ajaxpoll-submitting',
|
|
]
|
|
];
|
|
|
|
# new user rights
|
|
$wgAvailableRights[] = 'ajaxpoll-vote';
|
|
$wgAvailableRights[] = 'ajaxpoll-view-results';
|
|
$wgAvailableRights[] = 'ajaxpoll-view-results-before-vote';
|
|
|
|
# The 'ajaxpoll-view-results-before-vote' group permission allows the specified
|
|
# group members to view poll results even without having voted
|
|
# but only if the high-level group permission 'ajaxpoll-vote' allows to view
|
|
# results in general.
|
|
|
|
# This 'ajaxpoll-view-results-before-vote' can be overwritten with the specific
|
|
# per-poll setting "show-results-before-voting" which takes precedence over the
|
|
# group permission.
|
|
|
|
# permission 'ajaxpoll-view-results' >>
|
|
# >> per-poll setting "show-results-before-voting" (if present)
|
|
# >> permission 'ajaxpoll-view-results-before-vote'
|
|
|
|
# anons
|
|
# default: anons cannot vote and will never see results
|
|
$wgGroupPermissions['*']['ajaxpoll-vote'] = false;
|
|
$wgGroupPermissions['*']['ajaxpoll-view-results'] = false;
|
|
$wgGroupPermissions['*']['ajaxpoll-view-results-before-vote'] = false;
|
|
|
|
# users
|
|
# default: users can vote and can see poll results - when they have voted
|
|
$wgGroupPermissions['user']['ajaxpoll-vote'] = true;
|
|
$wgGroupPermissions['user']['ajaxpoll-view-results'] = true;
|
|
|
|
# tracking category for Special:TrackingCategories
|
|
$wgTrackingCategories[] = 'ajaxpoll-tracking-category';
|