196 строки
7.3 KiB
PHP
Executable File
196 строки
7.3 KiB
PHP
Executable File
<?php
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
/**
|
|
* This is the configuration file for mediawiki-bugzilla. It contains important
|
|
* settings that should be reviewed and customized for your environment. Please
|
|
* see the instructions on each line for details about what should be
|
|
* customized and how to properly install the application.
|
|
*
|
|
* For maximum commpatibility with Mediawiki, settings modifications should be
|
|
* made in the mediawiki/LocalSettings.php file. See the README for
|
|
* instructions.
|
|
*/
|
|
|
|
/**
|
|
* Application metadata and credits. Should not be changed.
|
|
*/
|
|
|
|
$wgBugzillaExtVersion = '1.0.0';
|
|
|
|
$wgExtensionCredits['other'][] = array(
|
|
'name' => 'Bugzilla',
|
|
'author' => 'Christian Legnitto',
|
|
'url' => 'https://github.com/LegNeato/mediawiki-bugzilla',
|
|
'descriptionmsg' => 'bugzilla-desc',
|
|
'license-name' => 'MPL2',
|
|
'version' => $wgBugzillaExtVersion,
|
|
);
|
|
|
|
$wgResourceModules['ext.Bugzilla'] = array(
|
|
'scripts' => array( 'web/js/jquery.dataTables.js' ),
|
|
'styles' => array( 'web/css/demo_page.css', 'web/css/demo_table.css', 'web/css/bugzilla.css' ),
|
|
'messages' => array( 'bugzilla-hello-world', 'bugzilla-goodbye-world' ),
|
|
'dependencies' => array( 'jquery.ui.core' ),
|
|
'position' => 'top', // jquery.dataTables.js errors otherwise :(
|
|
'localBasePath' => __DIR__,
|
|
'remoteExtPath' => 'Bugzilla'
|
|
);
|
|
|
|
/**
|
|
* Classes to be autoloaded by mediawiki. Should you add any cache options, you
|
|
* should include them in this list.
|
|
*/
|
|
|
|
$cwd = dirname(__FILE__); // We don't need to do this more than once!
|
|
|
|
$wgExtensionMessagesFiles['Bugzilla'] = "$cwd/Bugzilla.i18n.php";
|
|
|
|
$wgAutoloadClasses['Bugzilla'] = $cwd . '/Bugzilla.class.php';
|
|
$wgAutoloadClasses['BugzillaQuery'] = $cwd . '/BugzillaQuery.class.php';
|
|
$wgAutoloadClasses['BugzillaOutput'] = $cwd . '/BugzillaOutput.class.php';
|
|
|
|
/**
|
|
* These hooks are used by mediawiki to properly display the plugin information
|
|
* and properly interpret the tags used.
|
|
*/
|
|
|
|
$wgHooks['BeforePageDisplay'][] = 'BugzillaIncludeHTML';
|
|
$wgHooks['ParserFirstCallInit'][] = 'BugzillaParserInit';
|
|
|
|
// Add content to page HTML
|
|
function BugzillaIncludeHTML( &$out, &$sk ) {
|
|
|
|
global $wgScriptPath;
|
|
global $wgVersion;
|
|
global $wgBugzillaJqueryTable;
|
|
global $wgBugzillaTable;
|
|
|
|
if( $wgBugzillaJqueryTable ) {
|
|
if( version_compare( $wgVersion, '1.17', '<') ) {
|
|
// Use local jquery
|
|
$out->addScriptFile("$wgScriptPath/extensions/Bugzilla/web/jquery/1.6.2/jquery.min.js");
|
|
|
|
// Use local jquery ui
|
|
$out->addScriptFile("$wgScriptPath/extensions/Bugzilla/web/jqueryui/1.8.14/jquery-ui.min.js");
|
|
|
|
// Add a local jquery css file
|
|
$out->addStyle("$wgScriptPath/extensions/Bugzilla/web/jqueryui/1.8.14/themes/base/jquery-ui.css");
|
|
|
|
// Add a local jquery UI theme css file
|
|
$out->addStyle("$wgScriptPath/extensions/Bugzilla/web/jqueryui/1.8.14/themes/smoothness/jquery-ui.css");
|
|
|
|
// Add a local script file for the datatable
|
|
$out->addScriptFile("$wgScriptPath/extensions/Bugzilla/web/js/jquery.dataTables.js");
|
|
|
|
// Add local datatable styles
|
|
$out->addStyle("$wgScriptPath/extensions/Bugzilla/web/css/demo_page.css");
|
|
$out->addStyle("$wgScriptPath/extensions/Bugzilla/web/css/demo_table.css");
|
|
|
|
// Add local bugzilla extension styles
|
|
$out->addStyle("$wgScriptPath/extensions/Bugzilla/web/css/bugzilla.css");
|
|
|
|
}
|
|
|
|
// Add the script to do table magic
|
|
$out->addInlineScript('$(document).ready(function() {
|
|
$("table.bugzilla").dataTable({
|
|
"bJQueryUI": true,
|
|
"aLengthMenu": ' . $wgBugzillaTable['lengthMenu'] . ',
|
|
"iDisplayLength" : ' . $wgBugzillaTable['pageSize'] . ',
|
|
/* Disable initial sort */
|
|
"aaSorting": [],
|
|
})});'
|
|
);
|
|
}
|
|
|
|
// Let the user optionally override bugzilla extension styles
|
|
if( file_exists("$wgScriptPath/extensions/Bugzilla/web/css/custom.css") ) {
|
|
$out->addStyle("$wgScriptPath/extensions/Bugzilla/web/css/custom.css");
|
|
}
|
|
|
|
$out->addModules('ext.Bugzilla');
|
|
|
|
// Let the other hooks keep processing
|
|
return TRUE;
|
|
}
|
|
|
|
// Hook our callback function into the parser
|
|
function BugzillaParserInit( Parser &$parser ) {
|
|
global $wgBugzillaTagName;
|
|
|
|
// Register the desired tag
|
|
$parser->setHook( $wgBugzillaTagName, 'BugzillaRender' );
|
|
|
|
// Let the other hooks keep processing
|
|
return true;
|
|
}
|
|
|
|
// Function to be called when our tag is found by the parser
|
|
function BugzillaRender($input, array $args, Parser $parser, $frame=null ) {
|
|
global $wgBugzillaRESTURL;
|
|
|
|
// We don't want the page to be cached
|
|
// TODO: Not sure if we need this
|
|
# $parser->disableCache(); # Disabled since it is deprecated and no longer working
|
|
# $parser->getOutput()->updateCacheExpiry(0); # might be an alternative
|
|
|
|
// TODO: Figure out to have the parser not do anything to our output
|
|
// mediawiki docs are wrong :-(
|
|
// error_log(print_r($parser->mStripState, true));
|
|
// $parser->mStripState->addItem( 'nowiki', 'NOWIKI', true);
|
|
// 'noparse' => true, 'isHTML' => true, 'markerType' => 'nowiki' );
|
|
|
|
$input = $parser->recursiveTagParse($input, $frame);
|
|
|
|
// Create a new bugzilla object
|
|
$bz = Bugzilla::create($args, $input, $parser->getTitle());
|
|
|
|
// Show the desired output (or an error if there was one)
|
|
$bz->fetch();
|
|
return $bz->render();
|
|
}
|
|
|
|
/**
|
|
* This configuration is the default configuration for mediawiki-bugzilla.
|
|
* Please feel free to customize it for your environment. Be sure to make
|
|
* changes in the mediawiki/LocalSettings.php file, to ensure upgrade
|
|
* compatibility.
|
|
*/
|
|
|
|
// Remote API
|
|
$wgBugzillaRESTURL = 'https://bugzilla.mozilla.org/bzapi'; // The URL for your Bugzilla API installation
|
|
$wgBugzillaURL = 'https://bugzilla.mozilla.org'; // The URL for your Bugzilla installation
|
|
$wgBugzillaTagName = 'bugzilla'; // The tag name for your Bugzilla installation (default: 'bugzilla')
|
|
$wgBugzillaMethod = 'REST'; // XML-RPC and JSON-RPC may be supported later
|
|
|
|
// Cache
|
|
// NOTE: $wgBugzillaUseCache has been removed. Use $wgBugzillaCacheType below only:
|
|
// NOTE: $wgBugzillaUseCache has been removed. $wgBugzillaCacheType has been removed as well.
|
|
// NOTE: This extension now relies on what cache is available through MediaWiki directly;
|
|
// NOTE: see $wgMainCacheType in LocalSettings.php
|
|
|
|
$wgBugzillaCacheTimeOut = 5; // Minutes to cache results (default: 5)
|
|
|
|
$wgBugzillaJqueryTable = true; // Use a jQuery table for display (default: true)
|
|
|
|
// Charts
|
|
$wgBugzillaChartStorage = __DIR__ . '/charts'; // Location to store generated bug charts
|
|
$wgBugzillaFontStorage = __DIR__ . '/pchart/fonts'; // Path to font directory for font data
|
|
$wgBugzillaChartUrl = $wgScriptPath . '/extensions/Bugzilla/charts'; // The URL to use to display charts
|
|
|
|
// The default fields to display
|
|
$wgBugzillaDefaultFields = array(
|
|
'id',
|
|
'summary',
|
|
'priority',
|
|
'status',
|
|
);
|
|
|
|
$wgBugzillaTable = array(
|
|
'pageSize' => 10, //default pagination count
|
|
'lengthMenu' => '[[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]]', //default length set
|
|
);
|