Difference between revisions of "Html2Wiki"

From Freephile Wiki
Jump to navigation Jump to search
(Replaced content with "__NOTOC__ __NOEDITSECTION__ This extension officially lives at https://www.mediawiki.org/wiki/Extension:Html2Wiki This extension to MediaWiki is used to import HTML conten...")
Line 1: Line 1:
 
__NOTOC__ __NOEDITSECTION__
 
__NOTOC__ __NOEDITSECTION__
 
This extension officially lives at https://www.mediawiki.org/wiki/Extension:Html2Wiki This extension to MediaWiki is used to import HTML content (including images) into the wiki.  We don't want to maintain another copy of the documentation here, but we may well host development ideas.
 
This extension officially lives at https://www.mediawiki.org/wiki/Extension:Html2Wiki This extension to MediaWiki is used to import HTML content (including images) into the wiki.  We don't want to maintain another copy of the documentation here, but we may well host development ideas.
 +
 +
== Custom "Tools" item ==
 +
This is the JavaScript code used to add a custom element to the '''Tools''' panel to the left
 +
 +
<source lang="JavaScript">
 +
 +
/* Any JavaScript here will be loaded for all users on every page load. */
 +
 +
 +
/** * Cusomize the sidebar * @see https://www.mediawiki.org/wiki/Manual:Interface/Sidebar * added by Greg Rundlett <info@eQuality-Tech.com> */
 +
function isObject( obj ) {
 +
return typeof obj == 'object' && obj !== null;
 +
}
 +
 +
function isArray( obj ) {
 +
return isObject( obj ) && obj.constructor.toString().indexOf( 'Array' ) != -1;
 +
}
 +
 +
Array.prototype.Contains = function( element, strict ) {
 +
for( var i in this ) {
 +
if( this[i] == element && !strict || this[i] === element ) {
 +
return true;
 +
}
 +
}
 +
return false;
 +
};
 +
 +
function ModifySidebar( action, section, name, link ) {
 +
try {
 +
var target;
 +
switch ( section ) {
 +
case 'languages':
 +
target = 'p-lang';
 +
break;
 +
case 'toolbox':
 +
target = 'p-tb';
 +
break;
 +
case 'navigation':
 +
target = 'p-navigation';
 +
break;
 +
default:
 +
target = 'p-' + section;
 +
break;
 +
}
 +
 +
if ( action == 'add' ) {
 +
var node = document.getElementById( target )
 +
  .getElementsByTagName( 'div' )[0]
 +
  .getElementsByTagName( 'ul' )[0];
 +
 +
var aNode = document.createElement( 'a' );
 +
var liNode = document.createElement( 'li' );
 +
 +
aNode.appendChild( document.createTextNode( name ) );
 +
aNode.setAttribute( 'href', link );
 +
liNode.appendChild( aNode );
 +
liNode.className = 'plainlinks';
 +
node.appendChild( liNode );
 +
}
 +
 +
if ( action == 'remove' ) {
 +
var list = document.getElementById( target )
 +
  .getElementsByTagName( 'div' )[0]
 +
  .getElementsByTagName( 'ul' )[0];
 +
 +
var listelements = list.getElementsByTagName( 'li' );
 +
 +
for ( var i = 0; i < listelements.length; i++ ) {
 +
if (
 +
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
 +
listelements[i].getElementsByTagName( 'a' )[0].href == link
 +
)
 +
{
 +
list.removeChild( listelements[i] );
 +
}
 +
}
 +
}
 +
 +
} catch( e ) {
 +
// let's just ignore what's happened
 +
return;
 +
}
 +
}
 +
 +
function CustomizeModificationsOfSidebar() {
 +
// adds [[Special:Html2Wiki]] to toolbox
 +
ModifySidebar( 'add', 'toolbox', 'Import HTML', '/wiki/Special:Html2Wiki' );
 +
// removes [[Special:Upload]] from toolbox
 +
// ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );
 +
}
 +
// for anyone
 +
addOnloadHook( CustomizeModificationsOfSidebar );
 +
// customize only for bureaucrats
 +
// didn't work in testing
 +
/*if ( isArray( wgUserGroups ) ) { if ( wgUserGroups.Contains( 'bureaucrat' ) ) { addOnloadHook( CustomizeModificationsOfSidebar ); } }*/
 +
 +
</source>

Revision as of 00:27, 26 February 2015

This extension officially lives at https://www.mediawiki.org/wiki/Extension:Html2Wiki This extension to MediaWiki is used to import HTML content (including images) into the wiki. We don't want to maintain another copy of the documentation here, but we may well host development ideas.

Custom "Tools" item

This is the JavaScript code used to add a custom element to the Tools panel to the left

/* Any JavaScript here will be loaded for all users on every page load. */
 
 
/** * Cusomize the sidebar * @see https://www.mediawiki.org/wiki/Manual:Interface/Sidebar * added by Greg Rundlett <info@eQuality-Tech.com> */
function isObject( obj ) {
	return typeof obj == 'object' && obj !== null;
}
 
function isArray( obj ) {
	return isObject( obj ) && obj.constructor.toString().indexOf( 'Array' ) != -1;
}
 
Array.prototype.Contains = function( element, strict ) {
	for( var i in this ) {
		if( this[i] == element && !strict || this[i] === element ) {
			return true;
		}
	}
	return false;
};
 
function ModifySidebar( action, section, name, link ) {
	try {
		var target;
		switch ( section ) {
			case 'languages':
				target = 'p-lang';
				break;
			case 'toolbox':
				target = 'p-tb';
				break;
			case 'navigation':
				target = 'p-navigation';
				break;
			default:
				target = 'p-' + section;
				break;
		}
 
		if ( action == 'add' ) {
			var node = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];
 
			var aNode = document.createElement( 'a' );
			var liNode = document.createElement( 'li' );
 
			aNode.appendChild( document.createTextNode( name ) );
			aNode.setAttribute( 'href', link );
			liNode.appendChild( aNode );
			liNode.className = 'plainlinks';
			node.appendChild( liNode );
		}
 
		if ( action == 'remove' ) {
			var list = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];
 
			var listelements = list.getElementsByTagName( 'li' );
 
			for ( var i = 0; i < listelements.length; i++ ) {
				if (
					listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
					listelements[i].getElementsByTagName( 'a' )[0].href == link
				)
				{
					list.removeChild( listelements[i] );
				}
			}
		}
 
	} catch( e ) {
		// let's just ignore what's happened
		return;
	}
}
 
function CustomizeModificationsOfSidebar() {
	// adds [[Special:Html2Wiki]] to toolbox
	ModifySidebar( 'add', 'toolbox', 'Import HTML', '/wiki/Special:Html2Wiki' );
	// removes [[Special:Upload]] from toolbox
	// ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );
}
// for anyone
addOnloadHook( CustomizeModificationsOfSidebar );
// customize only for bureaucrats
// didn't work in testing
/*if ( isArray( wgUserGroups ) ) { 	if ( wgUserGroups.Contains( 'bureaucrat' ) ) { 		addOnloadHook( CustomizeModificationsOfSidebar ); 	} }*/