Extension:PagesOnDemand/DemoOnDemand

From MediaWiki.org
Jump to navigation Jump to search
<?php

/*
 * DemoOnDemand.php - An extension 'module' for the PagesOnDemand
 * extension.  @author Jim R. Wilson (wilson.jim.r@gmail.com)
 * @version 0.1
 * @copyright Copyright (C) 2007 Jim R. Wilson
 * @license The MIT License -
 * http://www.opensource.org/licenses/mit-license.php
 */

if ( ! defined( 'MEDIAWIKI' ) ) die();

// Extension credits
$wgExtensionCredits['other'][] = array(
  'name'=>'DemoOnDemand',
  'author'=>'Jim Wilson &lt;wilson.jim.r@gmail.com&gt;',
  'description'=>
    'Demo for PagesOnDemand mechanism for generating wiki articles on demand.',
  'version'=>'0.1'
);


// Register hooks ('PagesOnDemand' hook is provided by the
// PagesOnDemand extension).
$wgHooks['PagesOnDemand'][] = 'wfLoadDemoPageOnDemand';

/*
 * Loads a demo page if the title matches a particular pattern.
 * @param Title title The Title to check or create.
 */
function wfLoadDemoPageOnDemand( $title, $article ){
  // Short-circuit if $title isn't in the MAIN namespace or doesn't
  // match the DEMO pattern.
	if ( $title->getNamespace() != NS_MAIN || 
	     !preg_match('/^DEMO:/', $title->getDBkey() ) ) {
	  return true;
	}
	
	// Create the Article's new text - could be more complicated,
	// but this is just a demo
	$text = 'Wow, we just created a page called ' . $title->getDBkey();
	
	// Create the Article, supplying the new text
	$article = new Article($title);
	$article->doEdit( $text, 'Brand New Demo Page!', 
			  EDIT_NEW | EDIT_FORCE_BOT );
	
	// All done (returning false to kill PoD's wfRunHooks stack)
	return false;
}