Difference between revisions of "Html2Wiki"
Jump to navigation
Jump to search
Line 3: | Line 3: | ||
== Custom "Tools" item == | == Custom "Tools" item == | ||
− | This is the JavaScript code used to add a custom element to the '''Tools''' panel to the left | + | This is the JavaScript code (added to MediaWiki:Common.js) used to add a custom element to the '''Tools''' panel to the left |
<source lang="JavaScript"> | <source lang="JavaScript"> |
Revision as of 00:28, 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 (added to MediaWiki:Common.js) 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 ); } }*/