Difference between revisions of "Extension:ImageHistoryClear"

From Organic Design wiki
(ImageHistoryClear)
 
Line 126: Line 126:
 
}
 
}
 
?>
 
?>
[[Category:Extensions}}
+
[[Category:Extensions]]

Revision as of 04:32, 24 October 2008

<?php /**

* ImageHistoryClear extension - A extension made with Template:Extension to strip the image history and links from image pages.
*
* See http://www.mediawiki.org/wiki/Extension:ImageHistoryClear for installation and usage details
*
* @package MediaWiki
* @subpackage Extensions
* @author User:Jack
* @copyright © 2008 User:Jack
* @licence GNU General Public Licence 2.0 or later
*/

if (!defined('MEDIAWIKI')) die('Not an entry point.');

define('IMAGEHISTORYCLEAR_VERSION', '1.0.0, 2008-10-21');

$egImageHistoryClearMagic = "ImageHistoryClear"; $egImageHistoryClearTag = "IHistoryClear"; $wgExtensionFunctions[] = 'efSetupImageHistoryClear'; $wgHooks['LanguageGetMagic'][] = 'efImageHistoryClearLanguageGetMagic';

global $wgRequest,$wgUser,$wgGroupPermissions,$wgHooks;

$title = Title::newFromText($_REQUEST['title']); if (is_object($title) && ($title->getNamespace() == NS_IMAGE) && $wgUser->isAllowed('edit')) $wgHooks['OutputPageBeforeHTML'][] = 'egImageHistoryClear';

$wgExtensionCredits['parserhook'][] = array( 'name' => 'ImageHistoryClear', 'author' => 'User:Jack', 'description' => 'A extension made with Template:Extension to strip the image history and links from image pages.', 'url' => 'http://www.organicdesign.co.nz/Extension:ImageHistoryClear', 'version' => IMAGEHISTORYCLEAR_VERSION );

class ImageHistoryClear {

/** * Properties */ var $prop1 = 'default value'; var $prop2 = 'default value';

/** * Constructor */ function __construct() { global $wgOut, $wgHooks, $wgParser, $egImageHistoryClearMagic, $egImageHistoryClearTag, $jktext;

# Add the parser-function $wgParser->setFunctionHook($egImageHistoryClearMagic, array($this, 'magicImageHistoryClear'));

# Add the tagHook $wgParser->setHook($egImageHistoryClearTag, array($this, 'tagIHistoryClear'));

		$jktext = $wgOut->mBodytext;
		print_r($jktext);

}

/** * Expand the ImageHistoryClear-magic */ function magicImageHistoryClear(&$parser) { global $egImageHistoryClearMagic; # Populate $argv with both named and numeric parameters $argv = array(); foreach (func_get_args() as $arg) if (!is_object($arg)) { if (preg_match('/^(.+?)\\s*=\\s*(.+)$/',$arg,$match)) $argv[$match[1]] = $match[2]; else $argv[] = $arg; }

# Build text of expanded result $args = ; foreach ($argv as $k => $v) $args .= "*$k: $v\n"; $args = htmlspecialchars($args); $text = "=== Magic $egImageHistoryClearMagic(): ===\n$args";

# Return result with available parser flags return array( $text, 'found' => true, 'nowiki' => false, 'noparse' => false, 'noargs' => false, 'isHTML' => false );

}

/** * Convert the <IHistoryClear> tags to HTML */ function tagIHistoryClear($text,$argv,&$parser) { global $egImageHistoryClearTag; $args = ; foreach ($argv as $k => $v) { $k = htmlspecialchars($k); $v = htmlspecialchars($v);

$args .= "

  • $k: $v
  • \n";

    } $text = htmlspecialchars($text);

    return "

    Tag $egImageHistoryClearTag():

    \n

      $args
    • Content:$text

    \n";

    }

    /** * Needed in some versions to prevent Special:Version from breaking */ function __toString() { return __CLASS__; }

    }
    
    

    /**

    * Called from $wgExtensionFunctions array when initialising extensions
    */
    

    function efSetupImageHistoryClear() { global $egImageHistoryClear; $egImageHistoryClear = new ImageHistoryClear(); }

    /**

    * Needed in MediaWiki >1.8.0 for magic word hooks to work properly
    */
    

    function efImageHistoryClearLanguageGetMagic(&$magicWords, $langCode = 0) { global $egImageHistoryClearMagic; $magicWords[$egImageHistoryClearMagic] = array($langCode, $egImageHistoryClearMagic); return true; } ?>