Difference between revisions of "Extension:PdfBook"
(Make a start) |
m |
||
Line 9: | Line 9: | ||
define('PDFBOOK_VERSION','0.0.0, 2007-08-08'); | define('PDFBOOK_VERSION','0.0.0, 2007-08-08'); | ||
− | $wgPdfBookMagic | + | $wgPdfBookMagic = "book"; |
− | |||
$wgExtensionFunctions[] = 'wfSetupPdfBook'; | $wgExtensionFunctions[] = 'wfSetupPdfBook'; | ||
$wgHooks['LanguageGetMagic'][] = 'wfPdfBookLanguageGetMagic'; | $wgHooks['LanguageGetMagic'][] = 'wfPdfBookLanguageGetMagic'; |
Revision as of 01:38, 8 August 2007
<?php
- Extension:PdfBook
Template:PhpCategory:Extensions created with Template:Extension
- - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
- - Author: User:Nad
- - Started: 2007-08-08
if (!defined('MEDIAWIKI')) die('Not an entry point.');
define('PDFBOOK_VERSION','0.0.0, 2007-08-08');
$wgPdfBookMagic = "book"; $wgExtensionFunctions[] = 'wfSetupPdfBook'; $wgHooks['LanguageGetMagic'][] = 'wfPdfBookLanguageGetMagic';
$wgExtensionCredits['parserhook'][] = array( 'name' => 'Pdf Book', 'author' => 'User:Nad', 'description' => 'Composes a book from articles in a category and exports as a PDF book', 'url' => 'http://www.mediawiki.org/wiki/Extension:Pdf_Book', 'version' => PDFBOOK_VERSION );
class PdfBook {
# Constructor function PdfBook() { global $wgHooks,$wgParser,$wgPdfBookMagic; $wgParser->setFunctionHook($wgPdfBookMagic,array($this,'magicBook')); }
# Expand the book-magic function magicBook(&$parser) {
# 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"; $text = "=== magicBook(): ===\n$args";
# Return result with available parser flags return array( $text, found => true, nowiki => false, noparse => false, noargs => false, isHTML => false );
}
# Needed in some versions to prevent Special:Version from breaking function __toString() { return 'PdfBook'; }
}
- Called from $wgExtensionFunctions array when initialising extensions
function wfSetupPdfBook() { global $wgPdfBook; $wgPdfBook = new PdfBook(); }
- Needed in MediaWiki >1.8.0 for magic word hooks to work properly
function wfPdfBookLanguageGetMagic(&$magicWords,$langCode = 0) { global $wgPdfBookMagic; $magicWords[$wgPdfBookMagic] = array(0,$wgPdfBookMagic); return true; } ?>