-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScholasticGrading.php
115 lines (82 loc) · 4.2 KB
/
ScholasticGrading.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
/**
* ScholasticGrading extension for MediaWiki
*
* @package ScholasticGrading
* @author Jeffrey Gill <[email protected]>
*/
# Protect against web entry
if(!defined('MEDIAWIKI')) {
echo <<<EOT
To install the ScholasticGrading extension, put the following in LocalSettings.php:\n
require_once("\$IP/extensions/ScholasticGrading/ScholasticGrading.php");
\$wgGroupPermissions['grader']['editgrades'] = true;\n
EOT;
exit(1);
}
# List the extension credits on the Special:Version page
$wgExtensionCredits['specialpage'][] = array(
'path' => __FILE__,
'name' => 'ScholasticGrading',
'author' => array('Jeffrey Gill'),
'url' => 'https://github.com/CWRUChielLab/ScholasticGrading',
'descriptionmsg' => 'scholasticgrading-desc',
'version' => 0.0,
);
# Register classes and system messages
$wgAutoloadClasses['SpecialGrades'] = dirname(__FILE__) . '/SpecialGrades.php';
$wgExtensionMessagesFiles['ScholasticGrading'] = dirname(__FILE__) . '/ScholasticGrading.i18n.php';
$wgExtensionMessagesFiles['ScholasticGradingAlias'] = dirname(__FILE__) . '/ScholasticGrading.alias.php';
# Create the special page Special:Grades
$wgSpecialPages['Grades'] = 'SpecialGrades';
$wgSpecialPageGroups['Grades'] = 'scholastic';
# User right to create, modify, and delete grades
$wgAvailableRights[] = 'editgrades';
# Create the log Special:Log/grades
$wgLogTypes[] = 'grades';
$wgLogNames['grades'] = 'log-name-grades';
$wgLogHeaders['grades'] = 'log-description-grades';
$wgLogRestrictions['grades'] = 'editgrades';
$wgLogActionsHandlers['grades/*'] = 'LogFormatter';
# Register JavaScript and CSS resources
$wgResourceModules['ext.ScholasticGrading.SpecialGrades'] = array(
'localBasePath' => dirname(__FILE__),
'styles' => 'modules/ext.ScholasticGrading.SpecialGrades.css',
'scripts' => 'modules/ext.ScholasticGrading.SpecialGrades.js',
'dependencies' => array('jquery.ui.datepicker', 'jquery.ui.tabs'),
);
# Create database tables; triggered when maintenance/update.php is run
$wgHooks['LoadExtensionSchemaUpdates'][] = 'scholasticGradingSchemaUpdate';
function scholasticGradingSchemaUpdate ( $updater = null ) {
if ( $updater === null ) {
// <= 1.16 support
global $wgExtNewTables, $wgExtModifiedFields;
$wgExtNewTables[] = array( 'scholasticgrading_assignment',
dirname(__FILE__) . '/sql/scholasticgrading_assignment.sql');
$wgExtNewTables[] = array( 'scholasticgrading_evaluation',
dirname(__FILE__) . '/sql/scholasticgrading_evaluation.sql');
$wgExtNewTables[] = array( 'scholasticgrading_adjustment',
dirname(__FILE__) . '/sql/scholasticgrading_adjustment.sql');
$wgExtNewTables[] = array( 'scholasticgrading_group',
dirname(__FILE__) . '/sql/scholasticgrading_group.sql');
$wgExtNewTables[] = array( 'scholasticgrading_groupuser',
dirname(__FILE__) . '/sql/scholasticgrading_groupuser.sql');
$wgExtNewTables[] = array( 'scholasticgrading_groupassignment',
dirname(__FILE__) . '/sql/scholasticgrading_groupassignment.sql');
} else {
// >= 1.17 support
$updater->addExtensionUpdate( array( 'addTable', 'scholasticgrading_assignment',
dirname(__FILE__) . '/sql/scholasticgrading_assignment.sql', true ) );
$updater->addExtensionUpdate( array( 'addTable', 'scholasticgrading_evaluation',
dirname(__FILE__) . '/sql/scholasticgrading_evaluation.sql', true ) );
$updater->addExtensionUpdate( array( 'addTable', 'scholasticgrading_adjustment',
dirname(__FILE__) . '/sql/scholasticgrading_adjustment.sql', true ) );
$updater->addExtensionUpdate( array( 'addTable', 'scholasticgrading_group',
dirname(__FILE__) . '/sql/scholasticgrading_group.sql', true ) );
$updater->addExtensionUpdate( array( 'addTable', 'scholasticgrading_groupuser',
dirname(__FILE__) . '/sql/scholasticgrading_groupuser.sql', true ) );
$updater->addExtensionUpdate( array( 'addTable', 'scholasticgrading_groupassignment',
dirname(__FILE__) . '/sql/scholasticgrading_groupassignment.sql', true ) );
}
return true;
}