diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Renderer/WikitextTemplateRenderer.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Renderer/WikitextTemplateRenderer.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Renderer/WikitextTemplateRenderer.php b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Renderer/WikitextTemplateRenderer.php new file mode 100644 index 00000000..3c6dfbcc --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Renderer/WikitextTemplateRenderer.php @@ -0,0 +1,62 @@ +<?php + +namespace SMW\MediaWiki\Renderer; + +/** + * @license GNU GPL v2+ + * @since 2.2 + * + * @author mwjames + */ +class WikitextTemplateRenderer { + + /** + * @var array + */ + private $fields = []; + + /** + * @var string + */ + private $template = ''; + + /** + * @since 2.2 + * + * @param string $field + * @param mixed $value + */ + public function addField( $field, $value ) { + $this->fields[$field] = $value; + } + + /** + * @since 2.2 + * + * @param string $templateName + */ + public function packFieldsForTemplate( $templateName ) { + + $this->template .= '{{'. $templateName; + + foreach ( $this->fields as $key => $value ) { + $this->template .= "\n|$key=$value"; + } + + $this->template .= '}}'; + $this->fields = []; + } + + /** + * @since since 2.2 + * + * @return string + */ + public function render() { + $wikiText = $this->template; + $this->template = ''; + $this->fields = []; + return $wikiText; + } + +} |