My Wiki talk:Administrators

From My Wiki
Revision as of 02:55, 13 July 2009 by imported>Tlosk
Jump to navigation Jump to search

Wiki Customizations

Documentation of tweaks and customizations made to ACC Wiki that differ from a default installation of the Mediawiki Software with special emphasis on changes that are either not documented or poorly documented elsewhere and would be difficult to reproduce without significant research or experimentation.

Extensions

  • Autoincrement - A variable hook that adds an autoincrementing variable, {{AUTOINCREMENT}}.
  • CategoryTree - Displays a collapsable tree for navigating categories/subcategories/articles. See How To Use Category Trees.
  • Cite - Basic foot note functionality. See How To Make Footnotes.
  • DynamicPageList - Allows creation of a list of pages that are listed in a set of categories with various sorting options. Usage details can be found here and details of a modification that allows last edit dates to be displayed can be found here.
  • EditCount - In-line or query based enumeration of a User's edits.
  • ParserFunctions - A set of logical and arithmetic expressions.
  • ReplaceText - Site wide text find and replace, in many cases changes cannot be undone so great care must be exercised. Restricted to Bot accounts. Contact a bot owner to request a job run.
  • Variables - Limited use of variables within templates.
  • YouTubeTag - Allows embedded YouTube videos. This extension has been modified slightly to allow the width to be specified. Usage details can be found here and details of the modification can be found here.

Message and Special Pages

For a complete list (and defaults for modified pages) see Special:AllMessages.

Backups

A full backup of the site is performed regularly that creates an offsite copy of all database tables (MySQL), image files, extensions/configuration files, and mediawiki software files. During a backup the database is locked to avoid conflicts that could be created if the wiki were edited. It is in your interest to make a personal backup of any pages that you have completed significant work on since the last backup. Go to Special:Export, in the large text box you can enter an article/page title on each line. In general it is best to leave the "Include only the current revision" box checked, especially if you are exporting more than one page. Every single edit that is made saves a complete version of the page, so a page with many edits can be very large to export. And since the page would be reverted to the last backup, most of the history would already be preserved. Importing a page requires Sysop status, so you may need provide the copy to an admin and have them upload it for you.

Recent full backups (minor page backup done weekly):

  • Dec 26th, 2008 1.10
  • Jan 21st, 2009 1.10
  • March 19th, 2009 1.10
  • May 11th, 2009 1.10
  • May 19th, 2009 1.14
  • June 22, 2009 1.14
  • June 28, 2009 1.15
  • July 13, 2009 1.15

Appearance

The image that is displayed in the upper left and links to the homepage can be set as an url for $wgLogo in the LocalSettings.php file. For example:

$wgLogo = "http://asheron.info/~asheron/images/Site_Logo_Padula.png";

You can also replace the file wiki.png with the image you wish to use (same name) located in /skins/common/images. However this file is replaced each time the mediawiki software is updated and will need to be replaced with the desired file again each time.

Sidebar

The sidebar (links on the left) can be edited at Mediawiki:Sidebar. Some options, like the links in the toolbox, are context sensitive and will change depending on the nature of each particular page.

Drop Down Navigation Menus

This mechanism takes advantage of the Mediawiki:Sitenotice message page to display a drop down menu navigation bar on all pages. The individual menu lists are on template pages and are limited to 3 deep:

The bar is placed on the right side to avoid causing the menus to pop when going to click on the commonly used page tabs (and is offset using margin to allow the drop down menu of the right-most item to not bleed off the page).

Also, because of the way sitenotice works, changes made to the menus won't appear until you log out and log back in.

Example of code placed on the sitenotice page:

<ul id="sitenotice_nav" style="list-style-type: none; float:right; list-style-image:
 none;-moz-border-radius-topright: 1em;-moz-border-radius-topleft: 1em; 
-moz-border-radius-bottomright: 1em; -moz-border-radius-bottomleft: 1em; 
background:#f0f0f0;margin:7px 60px -2px -2px;padding:0;">
<li>Quests{{Drop Down:Quests}}</li>
<li>Patches{{Drop Down:Patches}}</li>
<li>Items{{Drop Down:Items}}</li>
<li>Locations{{Drop Down:Locations}}</li>
<li>Lore{{Drop Down:Lore}}</li>
<li>Help{{Drop Down:Help}}</li>
</ul>

The following code is placed on the Mediawiki:Common.css page:

/* START OF DROP DOWN MENUS */
div#siteNotice {
	width:100%; 	/* makes the div full width */
	float:left; /*makes the div enclose the list */
	font-size:.8em;	/* SET FONT-SIZE HERE */
  margin:1px 0 1em 0;
  padding:0;
}

div#siteNotice ul {
	margin-left:0px; /* reset */
}

div#siteNotice li {
	float:left;	/* causes the list to align horizontally instead of stack */
	position:relative; /* positioning context for the absolutely positioned drop-down */
	list-style-type:none;	/* removes the bullet off each list item */
	list-style-image: none;
	background-color:#f0f0f0; /*sets the background of the menu items */
	border-right:1px solid #aaaaaa; /* creates dividing lines between the li elements */
  border-top:1px solid #aaaaaa;
  border-bottom:1px solid #aaaaaa;
  margin: -4px 0 -5px 0; /*Brings the menu items up */     
  padding:0 6px; /*creates space each side of menu item's text */
}
div#siteNotice li:first-child {
        -moz-border-radius-topleft: .5em;
        padding-bottom:0px; /*to fix from rounded edge */
        border-left:1px solid #aaaaaa; /*the first vertical line on the menu */
}
div#siteNotice li:last-child {
        -moz-border-radius-topright: .5em;
        padding-bottom:0px; /*to fix from rounded edge */	
}
div#siteNotice li:hover { 
	background-color:#FFF; /*sets the background of the menu items */
}
div#siteNotice a {
	display:block; /*makes list items in drop down highlight and wrapped lines indent correctly */
	color:#0000ff;	/* sets the font color */
}
/* the horizontal menu ends here */

/* the drop-down starts here */
div#siteNotice ul li ul {
	margin:0; /* prevents the TEMP value inheriting from the horiz menu  */
	position:absolute; /* positions the drop-down ul in relation to its relatively positioned li parent */
	width:10em; /*sets the width of the menu - in combo with the li's 100% width, makes the menu stack*/
	left:-1px; /*aligns the drop exactly under the menu */
}
div#siteNotice ul li ul li {
	margin: -1px 0 0 0; /* prevents the margin value inheriting from the horiz menu + bring menu items up  */
	width:100%; /* makes the list items fill the list container (ul) */
	border-left:1px solid #069; /*  three sides of each drop-down item */
	list-style-type:none;	/* removes the bullet off each list item */
	list-style-image:none;	/* removes the bullet off each list item */
	padding:0 0 1px;
}
div#siteNotice ul li ul li:first-child {
  -moz-border-radius-topleft: 0;	/* needed to hide curve */
}
div#siteNotice ul li ul li:last-child {
 -moz-border-radius-bottomright: 1em;
 -moz-border-radius-bottomleft: 1em;
 -moz-border-radius-topright: 0;
 padding-right:1px; /*to move over right side rounded edge */
}

/* make the drop-down display as the menu is rolled over */
div#siteNotice ul li ul {display:none;} /* conceals the drop-down when menu not hovered */
div#siteNotice ul li:hover ul {display:block; } /* shows the drop-down when the menu is hovered */

/* pop-out starts here */
body div#siteNotice ul li ul li ul  {
	visibility:hidden; /* same effect as display:none in this situation */
	top:-1px;
	left:10em;
}
div#siteNotice ul li ul li:hover ul {visibility:visible; } /* same effect as display:block in this situation */
div#siteNotice ul li ul li:hover ul li {padding-right:1px; -moz-border-radius-topright: 0;}
div#siteNotice ul li ul li:hover ul li:last-child {-moz-border-radius-topright: 0;}

/* second level popouts */
div#siteNotice ul li ul li:hover ul li ul {visibility:hidden;}
div#siteNotice ul li ul li ul li:hover ul {visibility:visible; margin-top:1px} /* same effect as display:block in this situation */
div#siteNotice ul li ul li ul li:hover ul li:last-child {-moz-border-radius-topright: 0;} 

/* third level popouts */
div#siteNotice ul li ul li ul li:hover ul li ul {visibility:hidden;}
div#siteNotice ul li ul li ul li ul li:hover ul {visibility:visible; margin-top:1px} /* same effect as display:block in this situation */
div#siteNotice ul li ul li ul li ul li:hover ul li:last-child {-moz-border-radius-topright: 0;} 

/* fix for IE (all flavors) so the menu has a vertical line on the left */
* html div#siteNotice ul {
	float:left; /* makes the ul wrap the li's */
	border-left:1px solid #069; /* adds the rightmost menu vertical line to the ul */
	}
	
/* Opera fix */
html>body div#siteNotice ul li ul li ul {
  left:10em;
  }

/* an Opera-only to fix a redraw problem by invisibly extending the ul */
/* the first-level drop stays open for 100px below the bottom but at least it works */
/* this can be reduced to as little as 22px if you don't have pop-outs */
/* the pop-out menu stays open for 22px below the bottom but at least it works */
	@media all and (min-width: 0px){
   body div#siteNotice ul li ul {padding-bottom:200px;}
   body div#siteNotice ul li ul li ul {padding-bottom:22px;}
   body div#siteNotice ul li ul li ul li ul li:hover {visibility:visible;} /* same effect as display:block in this situation */
   }

@import("/wiki/skins/common/dropdown/ie51_menu_hack.css"); 
/* END OF DROP DOWN MENUS */

Page Caching

The wiki employs a simple page caching method that creates an html copy of a page each time it is changed. This cached copy is retrieved when a page is requested by a visitor that is not logged in (this skips creating the page from scratch and the processing overhead that entails). Files are saved in a "cache" folder in the mediawiki install directory. This folder may need to be created manually and set with write permissions. See File cache for more details.

This is enabled by setting the following values in the LocalSettings.php file:

$wgUseFileCache = true;
$wgFileCacheDirectory = "$IP/cache";

LocalSettings.php

Many customizations are made by altering the LocalSettings.php file located in the root directory with the mediawiki software on the server. This file can only be accessed by someone with access to the server because it contains security settings and password information.

This is a core mediawiki file and is read every time a page is rendered. Therefore changes that are not well formed php code can cause the entire site to become unavailable. If this happens you will likely see something like this:

Parse error: parse error in \~asheron\LocalSettings.php on line 225

The line number corresponds to the actual line number in the file, to aid in finding what is causing the problem.

Customized Settings

The following may not always be completely up to date, but will be useful in any event. Also note that other modifications to the LocalSettings file are detailed in other sections on this page and not repeated here.

// Special Permissions
        $wgGroupPermissions['bot']['replacetext']       = true;

## Customizations
$wgEnableMWSuggest = true;
$wgCountCategorizedImagesAsUsed = true;
$wgUploadSizeWarning = 1024 * 150;
$wgUseAjax = true;

## This is the list of permitted extensions for uploading files.
## Uploading files with extensions not in this list will trigger 
## a warning (and not be allowed).
$wgFileExtensions = array( 'png', 'gif', 'jpg' );

## Extensions
require_once( "$IP/extensions/Autoincrement/Autoincrement.php" );
require_once( "$IP/extensions/CategoryTree/CategoryTree.php" );
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
require_once( "$IP/extensions/Cite/Cite.php" );
require_once( "$IP/extensions/EditCount/EditCount.php" );
require_once( "$IP/extensions/Intersection/DynamicPageList.php");
require_once( "$IP/extensions/LabeledSectionTransclusion/lst.php" );
require_once( "$IP/extensions/LabeledSectionTransclusion/lsth.php" );
require_once( "$IP/extensions/MultiCategorySearch/MultiCategorySearch.php");
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
require_once( "$IP/extensions/ReplaceText/ReplaceText.php" );
require_once( "$IP/extensions/TitleKey/TitleKey.php" );
require_once( "$IP/extensions/Variables/Variables.php" );
require_once( "$IP/extensions/YouTubeTag.php" );