Difference between revisions of "Html2Wiki"

From Freephile Wiki
Jump to navigation Jump to search
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 (added to MediaWiki:Common.js) 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 12:08, 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.