Difference between revisions of "User:Tigey"

From Wiki
Jump to: navigation, search
(Addition to Common.css: Another addition)
(Addition to Common.js)
Line 96: Line 96:
 
==Addition to Common.js==
 
==Addition to Common.js==
 
<pre>
 
<pre>
/** Collapsible tables *********************************************************
+
/** Test if an element has a certain class **************************************
 
*
 
*
* Description: Allows tables to be collapsed, showing only the header. See
+
* Description: Uses regular expressions and caching for better performance.
*               [[Wikipedia:NavFrame]].
+
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
*  Maintainers: [[User:R. Koot]]
+
 
*/
 
*/
+
 
var autoCollapse = 2;
+
var hasClass = (function() {
var collapseCaption = "hide";
+
var reCache = {};
var expandCaption = "show";
+
return function( element, className ) {
+
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
function collapseTable( tableIndex )
+
};
{
+
})();
var Button = document.getElementById( "collapseButton" + tableIndex );
+
var Table = document.getElementById( "collapsibleTable" + tableIndex );
+
+
if ( !Table || !Button ) {
+
return false;
+
}
+
+
var Rows = Table.rows;
+
+
if ( Button.firstChild.data == collapseCaption ) {
+
for ( var i = 1; i < Rows.length; i++ ) {
+
Rows[i].style.display = "none";
+
}
+
Button.firstChild.data = expandCaption;
+
} else {
+
for ( var i = 1; i < Rows.length; i++ ) {
+
Rows[i].style.display = Rows[0].style.display;
+
}
+
Button.firstChild.data = collapseCaption;
+
}
+
}
+
+
function createCollapseButtons()
+
{
+
var tableIndex = 0;
+
var NavigationBoxes = new Object();
+
var Tables = document.getElementsByTagName( "table" );
+
+
for ( var i = 0; i < Tables.length; i++ ) {
+
if ( hasClass( Tables[i], "collapsible" ) ) {
+
+
/* only add button and increment count if there is a header row to work with */
+
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
+
if (!HeaderRow) continue;
+
var Header = HeaderRow.getElementsByTagName( "th" )[0];
+
if (!Header) continue;
+
+
NavigationBoxes[ tableIndex ] = Tables[i];
+
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
+
+
var Button    = document.createElement( "span" );
+
var ButtonLink = document.createElement( "a" );
+
var ButtonText = document.createTextNode( collapseCaption );
+
+
Button.className = "collapseButton";  //Styles are declared in Common.css
+
+
ButtonLink.style.color = Header.style.color;
+
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
+
ButtonLink.setAttribute( "href", "#" );
+
addHandler( ButtonLink,  "click", new Function( "evt", "collapseTable(" + tableIndex + " ); return killEvt( evt );") );
+
ButtonLink.appendChild( ButtonText );
+
+
Button.appendChild( document.createTextNode( "[" ) );
+
Button.appendChild( ButtonLink );
+
Button.appendChild( document.createTextNode( "]" ) );
+
+
Header.insertBefore( Button, Header.childNodes[0] );
+
tableIndex++;
+
}
+
}
+
+
for ( var i = 0;  i < tableIndex; i++ ) {
+
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
+
collapseTable( i );
+
}
+
else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) {
+
var element = NavigationBoxes[i];
+
while (element = element.parentNode) {
+
if ( hasClass( element, "outercollapse" ) ) {
+
collapseTable ( i );
+
break;
+
}
+
}
+
}
+
}
+
}
+
+
addOnloadHook( createCollapseButtons );
+
+
+
/** Dynamic Navigation Bars (experimental) *************************************
+
*
+
*  Description: See [[Wikipedia:NavFrame]].
+
*  Maintainers: UNMAINTAINED
+
*/
+
+
// set up the words in your language
+
var NavigationBarHide = '[' + collapseCaption + ']';
+
var NavigationBarShow = '[' + expandCaption + ']';
+
+
// shows and hides content and picture (if available) of navigation bars
+
// Parameters:
+
//    indexNavigationBar: the index of navigation bar to be toggled
+
function toggleNavigationBar(indexNavigationBar)
+
{
+
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
+
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
+
+
if (!NavFrame || !NavToggle) {
+
return false;
+
}
+
+
// if shown now
+
if (NavToggle.firstChild.data == NavigationBarHide) {
+
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
+
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
+
NavChild.style.display = 'none';
+
}
+
}
+
NavToggle.firstChild.data = NavigationBarShow;
+
+
// if hidden now
+
} else if (NavToggle.firstChild.data == NavigationBarShow) {
+
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
+
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
+
NavChild.style.display = 'block';
+
}
+
}
+
NavToggle.firstChild.data = NavigationBarHide;
+
}
+
}
+
+
// adds show/hide-button to navigation bars
+
function createNavigationBarToggleButton()
+
{
+
var indexNavigationBar = 0;
+
// iterate over all < div >-elements
+
var divs = document.getElementsByTagName("div");
+
for (var i = 0; NavFrame = divs[i]; i++) {
+
// if found a navigation bar
+
if (hasClass(NavFrame, "NavFrame")) {
+
+
indexNavigationBar++;
+
var NavToggle = document.createElement("a");
+
NavToggle.className = 'NavToggle';
+
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
+
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
+
+
var isCollapsed = hasClass( NavFrame, "collapsed" );
+
/*
+
* Check if any children are already hidden.  This loop is here for backwards compatibility:
+
* the old way of making NavFrames start out collapsed was to manually add style="display:none"
+
* to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
+
* the content visible without JavaScript support), the new recommended way is to add the class
+
* "collapsed" to the NavFrame itself, just like with collapsible tables.
+
*/
+
for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
+
if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
+
if ( NavChild.style.display == 'none' ) {
+
isCollapsed = true;
+
}
+
}
+
}
+
if (isCollapsed) {
+
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
+
if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
+
NavChild.style.display = 'none';
+
}
+
}
+
}
+
var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
+
NavToggle.appendChild(NavToggleText);
+
+
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
+
for(var j=0; j < NavFrame.childNodes.length; j++) {
+
if (hasClass(NavFrame.childNodes[j], "NavHead")) {
+
NavFrame.childNodes[j].appendChild(NavToggle);
+
}
+
}
+
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
+
}
+
}
+
}
+
+
addOnloadHook( createNavigationBarToggleButton );
+
+
 
</pre>
 
</pre>
  

Revision as of 21:20, 16 June 2010

Tigey

Greetings! I play on Alexandria shard (Off and On for about 2 years now) and it is great!

My characters are below:

  1. Mountain Man, a Tamer
  2. Alaria, a Paladin
  3. Jack Lumber, a Crafter (Carpentry)
  4. Nesbit, a Crafter (Blacksmithy)

Pages I can't edit (yet)

Alexandria:Shard

Alexandria:Points of Interest

Alexandria:Skill gain

Alexandria:Current Caps

Alexandria:Tree Growth

Alexandria:Fishing

Alexandria:Darksoul Hauberk

MediaWiki:Common.js

MediaWiki:Common.css

To Do

  1. Look at revamping Alexandria:Shard shard page.
  2. Break out skill and skill gain related information in to skill classes
    1. Mage
    2. Fighter
    3. Rogue
    4. Crafting
    5. etc
  3. Improve layout of places of interest (also, add map screenshots)
  4. Make UserBoxes for in-game skills and info boxes for characters
    1. Character infoboxes will hold multiple skill UserBoxes and each skill box can be specified as GMed (or Legendary?) via a border color (Gold?, Silver, etc)
    2. This may allow users of the forums to display their characters out of game, and let others know who they are. (I would not recommend users of OSI shards using this feature in the event they can be matched up with OSI accounts...)

Sandbox Links

Sandbox 1


Addition to Common.css

/* Standard Navigationsleisten, aka box hiding thingy
   from .de.  Documentation at [[Wikipedia:NavFrame]]. */
div.NavFrame {
    margin: 0;
    padding: 4px;
    border: 1px solid #aaa;
    text-align: center;
    border-collapse: collapse;
    font-size: 95%;
}
div.NavFrame + div.NavFrame {
    border-top-style: none;
    border-top-style: hidden;
}
div.NavPic {
    background-color: #fff;
    margin: 0;
    padding: 2px;
    float: left;
}
div.NavFrame div.NavHead {
    height: 1.6em;
    font-weight: bold;
    background-color: #ccf;
    position: relative;
}
div.NavFrame p,
div.NavFrame div.NavContent,
div.NavFrame div.NavContent p {
    font-size: 100%;
}
div.NavEnd {
    margin: 0;
    padding: 0;
    line-height: 1px;
    clear: both;
}
a.NavToggle {
    position: absolute;
    top: 0;
    right: 3px;
    font-weight: normal;
    font-size: 90%;
}

Addition to Common.js

/** Test if an element has a certain class **************************************
*
* Description: Uses regular expressions and caching for better performance.
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
*/

var hasClass = (function() {
	var reCache = {};
	return function( element, className ) {
		return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
	};
})();

Setting up image uploads and display

  1. In LocalSettings.php, set "$wgEnableUploads = true; #Uploads are enabled"
  2. To keep regular users from uploading files, set "$wgGroupPermissions['user']['upload'] = false;" (add lines for each group you do not wish to grant permissions for.
  3. To set File-type allowance, set "$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'svg', 'tiff', 'bmp', 'tif');"
  4. To allow loading images from URL, set "$wgAllowCopyUploads = true;"