mediawiki-extensions-AJAXPoll/AJAXPoll.php
Kunal Mehta 19c0147d3f build: Updating mediawiki/mediawiki-codesniffer to 0.7.1
Also added "composer fix" command.

Change-Id: If26ece876524ff6e11f90c56c28282f135f296ac
2016-05-09 16:15:51 -07:00

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';