function testprefuncrender ( $input, $args, $parser, $frame) { //First, process the arguments foreach( $args as $argn => $argv_raw ){ $argv = htmlspecialchars( $argv_raw ); switch( htmlspecialchars( $argn ) ){ case 'notitle': $notitle = true; case 'title': $title = $argv; break; case 'header': $headerlevel = (int) $argv; break; case 'foldable': if( $argv == 'true' ) $foldable = true; break; case 'name': $name = $argv; default: break; } } //Catch omitted parameters //TODO: Catch malformed parameters if( !isset($notitle) ) $notitle = false; if( !isset($title) && !$notitle ) $title = "Section"; if( !isset($headerlevel) || $headerlevel < 1 || $headerlevel > 6 ) $headerlevel = 2; if( !isset($foldable) ) $foldable = false; if( !isset($name) ) $name = ""; //Start building output $out = ""; //Put up a section title if desired if( !$notitle ){ $title = $parser->insertStripItem( $parser->recursiveTagParse( $title, $frame ) ); $out .= "$title"; } //Append actual content $out.= $parser->insertStripItem( $parser->recursiveTagParse( $input, $frame ) ); return array( $out, 'markerType' => 'none' ); }