Extension:ViewFiles

The ViewFiles extension allows users to view the contents of a limited set of files made available by the system administrator. A possible use for this extension would be to enable your users to see the current contents of your configuration files (e.g. LocalSettings.php and InitialiseSettings.php) or customized skin files so that they could better assist with troubleshooting and make recommendations for configuration changes. Don't forget, if you're going to use this to display files such as LocalSettings.php that contain sensitive data, you'll want to get that data out of webroot before exposing those files to the world.

Download SyntaxHighlight_GeSHi

 * Download the latest version of SyntaxHighlight GeSHi
 * Create a folder in the extensions folder named SyntaxHighlight_GeSHi
 * Move the files to the extensions/SyntaxHighlight_GeSHi/ folder

Download ViewFiles

 * Download the latest version of ViewFiles
 * Create a folder in the extensions folder named ViewFiles
 * Move the files to the extensions/ViewFiles/ folder

Install SyntaxHighlight_GeSHi and ViewFiles
See Extension:SyntaxHighlight_GeSHi for information on how to set a default source language (optional; will not affect how files are displayed by ViewFiles).
 * Edit LocalSettings.php in the root of your MediaWiki installation, and add the following line near the bottom:

Configuration
The only required configuration setting is $wgViewFilesFilePathList.

$wgViewFilesIntro
What to begin the page with; e.g.

$wgViewFilesBegin
What to begin each file listing with; defaults to: $wgViewFilesBegin = ' '. "\n";

$wgViewFilesFileLangList
This list of filenames and associated languages overrides GeSHi's extension lookup. Defaults to:

$wgViewFilesFilePathList
Create a list of files and their paths, e.g.:

ViewFiles.php
<?php /** * ViewFiles MediaWiki extension. * * This extension allows users to view the contents of a limited set of files. * * Written by Leucosticte * http://www.mediawiki.org/wiki/User:Leucosticte * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html * * @file * @ingroup Extensions */ if (!defined('MEDIAWIKI')) { die( 'This file is a MediaWiki extension. It is not a valid entry point' ); } $wgExtensionCredits['specialpage'][] = array(  'path' => __FILE__,   'name' => 'ViewFiles',   'author' => 'Leucosticte',   'url' => 'https://www.mediawiki.org/wiki/Extension:ViewFiles',   'descriptionmsg' => 'viewfiles-desc',   'version' => '1.0.2', ); $dir = dirname(__FILE__). '/'; $wgAutoloadClasses['SpecialViewFiles'] = $dir. 'SpecialViewFiles.php'; $wgExtensionMessagesFiles['ViewFiles'] = $dir. 'ViewFiles.i18n.php'; $wgExtensionMessagesFiles['ViewFilesAlias'] = $dir. 'ViewFiles.alias.php'; $wgSpecialPages['ViewFiles'] = 'SpecialViewFiles'; $wgSpecialPageGroups['ViewFiles'] = 'other'; // Display this before any of the files $wgViewFilesIntro = ''; // Display this before each file $wgViewFilesBegin = ' '. "\n"; // This list of filenames and associated languages overrides GeSHi's extension lookup $wgViewFilesFileLangList = array (  '.htaccess' => 'apache',   'robots.txt' => 'robots', ); // Change this to an array with 'filenames' as keys and 'paths/to/filenames' as values $wgViewFilesFilePathList = array;
 * 1) Alert the user that this is not a valid entry point to MediaWiki if the user tries to access the
 * 2) extension file directly.