jenkins-bot has submitted this change and it was merged.
Change subject: Replace wfTemplate with TemplateFactory
......................................................................
Replace wfTemplate with TemplateFactory
Change-Id: I9e629f4661f1975418db2071a74b92d74bbb5cc5
---
M repo/Wikibase.hooks.php
M repo/Wikibase.php
D repo/includes/GlobalFunctions.php
A repo/includes/Template/TemplateFactory.php
M repo/includes/TemplateRegistry.php
M repo/includes/View/ClaimHtmlGenerator.php
M repo/includes/View/ClaimsView.php
M repo/includes/View/EntityView.php
M repo/includes/View/EntityViewFactory.php
M repo/includes/View/EntityViewPlaceholderExpander.php
M repo/includes/View/FingerprintView.php
M repo/includes/View/ItemView.php
M repo/includes/View/PropertyView.php
M repo/includes/View/SectionEditLinkGenerator.php
M repo/includes/View/SiteLinksView.php
M repo/includes/View/SnakHtmlGenerator.php
M repo/includes/View/TermBoxView.php
M repo/includes/WikibaseRepo.php
M repo/includes/modules/TemplateModule.php
M repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
M repo/tests/phpunit/includes/View/ClaimsViewTest.php
M repo/tests/phpunit/includes/View/EntityViewFactoryTest.php
M repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
M repo/tests/phpunit/includes/View/FingerprintViewTest.php
M repo/tests/phpunit/includes/View/ItemViewTest.php
M repo/tests/phpunit/includes/View/PropertyViewTest.php
M repo/tests/phpunit/includes/View/SectionEditLinkGeneratorTest.php
M repo/tests/phpunit/includes/View/SiteLinksViewTest.php
M repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
M repo/tests/phpunit/includes/View/TermBoxViewTest.php
30 files changed, 317 insertions(+), 133 deletions(-)
Approvals:
Hoo man: Looks good to me, approved
jenkins-bot: Verified
diff --git a/repo/Wikibase.hooks.php b/repo/Wikibase.hooks.php
index 7681057..343a256 100644
--- a/repo/Wikibase.hooks.php
+++ b/repo/Wikibase.hooks.php
@@ -33,6 +33,7 @@
use Wikibase\Repo\View\EntityViewPlaceholderExpander;
use Wikibase\Repo\View\TextInjector;
use Wikibase\Repo\WikibaseRepo;
+use Wikibase\Template\TemplateFactory;
use WikiPage;
/**
@@ -991,6 +992,7 @@
$injector = new TextInjector( $placeholders );
$userLanguageLookup = new UserLanguageLookup();
$expander = new EntityViewPlaceholderExpander(
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$out->getTitle(),
$out->getUser(),
$out->getLanguage(),
diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index 15fe0bd..9be6173 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -213,5 +213,4 @@
include_once( __DIR__ . '/config/Wikibase.experimental.php' );
}
- require __DIR__ . '/includes/GlobalFunctions.php';
} );
diff --git a/repo/includes/GlobalFunctions.php
b/repo/includes/GlobalFunctions.php
deleted file mode 100644
index 280026c..0000000
--- a/repo/includes/GlobalFunctions.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-use Wikibase\Repo\WikibaseRepo;
-use Wikibase\Template;
-
-/**
- * @license GNU GPL v2+
- * @author H. Snater < [email protected] >
- */
-
-/**
- * Shorthand function to retrieve a template filled with the specified
parameters.
- *
- * important! note that the Template class does not escape anything.
- * be sure to escape your params before using this function!
- *
- * @since 0.2
- *
- * @param $key string template key
- * Varargs: normal template parameters
- *
- * @return string
- */
-function wfTemplate( $key /*...*/ ) {
- $params = func_get_args();
- array_shift( $params );
-
- if ( isset( $params[0] ) && is_array( $params[0] ) ) {
- $params = $params[0];
- }
-
- $template = new Template(
WikibaseRepo::getDefaultInstance()->getTemplateRegistry(), $key, $params );
-
- return $template->render();
-}
diff --git a/repo/includes/Template/TemplateFactory.php
b/repo/includes/Template/TemplateFactory.php
new file mode 100644
index 0000000..7cc0a33
--- /dev/null
+++ b/repo/includes/Template/TemplateFactory.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace Wikibase\Template;
+
+use Wikibase\Template;
+use Wikibase\TemplateRegistry;
+
+/**
+ * @license GNU GPL v2+
+ * @author Adrian Lang < [email protected] >
+ */
+class TemplateFactory {
+
+ /**
+ * @var TemplateRegistry
+ */
+ private $templateRegistry;
+
+ /**
+ * @param TemplateRegistry $templateRegistry
+ */
+ public function __construct( TemplateRegistry $templateRegistry ) {
+ $this->templateRegistry = $templateRegistry;
+ }
+
+ /**
+ * @param string $key
+ * @param array $params
+ * @return Template
+ */
+ public function get( $key, array $params ) {
+ return new Template( $this->templateRegistry, $key, $params );
+ }
+
+ /**
+ * Shorthand function to retrieve a template filled with the specified
parameters.
+ *
+ * important! note that the Template class does not escape anything.
+ * be sure to escape your params before using this function!
+ *
+ * @since 0.2
+ *
+ * @param $key string template key
+ * Varargs: normal template parameters
+ *
+ * @return string
+ */
+ public function render( $key /* ... */ ) {
+ $params = func_get_args();
+ array_shift( $params );
+
+ if ( isset( $params[0] ) && is_array( $params[0] ) ) {
+ $params = $params[0];
+ }
+
+ $template = $this->get( $key, $params );
+
+ return $template->render();
+ }
+
+}
diff --git a/repo/includes/TemplateRegistry.php
b/repo/includes/TemplateRegistry.php
index f1afaa9..33a326e 100644
--- a/repo/includes/TemplateRegistry.php
+++ b/repo/includes/TemplateRegistry.php
@@ -21,6 +21,20 @@
private $templates;
/**
+ * @var TemplateRegistry
+ */
+ private static $instance;
+
+
+ public static function getDefaultInstance() {
+ if ( self::$instance === null ) {
+ self::$instance = new self();
+ self::$instance->addTemplates( include( __DIR__ .
'/../resources/templates.php' ) );
+ }
+ return self::$instance;
+ }
+
+ /**
* Gets the array containing all templates.
*
* @return array
diff --git a/repo/includes/View/ClaimHtmlGenerator.php
b/repo/includes/View/ClaimHtmlGenerator.php
index 080b619..4f21031 100644
--- a/repo/includes/View/ClaimHtmlGenerator.php
+++ b/repo/includes/View/ClaimHtmlGenerator.php
@@ -10,6 +10,7 @@
use Wikibase\DataModel\Snak\Snaks;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\Lib\Serializers\ClaimSerializer;
+use Wikibase\Template\TemplateFactory;
/**
* Base class for generating the HTML for a Claim in Entity View.
@@ -27,17 +28,25 @@
class ClaimHtmlGenerator {
/**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
+
+ /**
* @var SnakHtmlGenerator
*/
private $snakHtmlGenerator;
/**
+ * @param TemplateFactory $templateFactory
* @param SnakHtmlGenerator $snakHtmlGenerator
*/
public function __construct(
+ TemplateFactory $templateFactory,
SnakHtmlGenerator $snakHtmlGenerator
) {
$this->snakHtmlGenerator = $snakHtmlGenerator;
+ $this->templateFactory = $templateFactory;
}
/**
@@ -61,7 +70,7 @@
// TODO: Resolve if-statement after concept of Claim has been
removed
// (see https://github.com/wmde/WikibaseDataModel/pull/317)
if ( !( $claim instanceof Statement ) ) {
- $claimHtml = wfTemplate( 'wikibase-statementview',
+ $claimHtml = $this->templateFactory->render(
'wikibase-statementview',
$claim->getGuid(),
'',
$mainSnakHtml,
@@ -76,7 +85,7 @@
// Messages: wikibase-statementview-rank-preferred,
wikibase-statementview-rank-normal,
// wikibase-statementview-rank-deprecated
- $rankHtml = wfTemplate( 'wb-rankselector',
+ $rankHtml = $this->templateFactory->render(
'wb-rankselector',
'ui-state-disabled',
'wb-rankselector-' . $serializedRank,
wfMessage( 'wikibase-statementview-rank-' .
$serializedRank )->text()
@@ -95,7 +104,7 @@
$claim->getReferences()
);
- $claimHtml = wfTemplate( 'wikibase-statementview',
+ $claimHtml = $this->templateFactory->render(
'wikibase-statementview',
$claim->getGuid(),
$rankHtml,
$mainSnakHtml,
@@ -151,7 +160,7 @@
private function wrapInListview( $listviewContent ) {
if( $listviewContent !== '' ) {
- return wfTemplate( 'wb-listview', $listviewContent );
+ return $this->templateFactory->render( 'wb-listview',
$listviewContent );
} else {
return '';
}
@@ -178,7 +187,7 @@
);
}
- return wfTemplate( 'wb-referenceview',
+ return $this->templateFactory->render( 'wb-referenceview',
'wb-referenceview-' . $reference->getHash(),
$snaklistviewsHtml
);
@@ -199,7 +208,7 @@
$snaksHtml .= $this->snakHtmlGenerator->getSnakHtml(
$snak, ( $i++ === 0 ) );
}
- return wfTemplate(
+ return $this->templateFactory->render(
'wb-snaklistview',
$snaksHtml
);
diff --git a/repo/includes/View/ClaimsView.php
b/repo/includes/View/ClaimsView.php
index 345929c..f7e10f8 100644
--- a/repo/includes/View/ClaimsView.php
+++ b/repo/includes/View/ClaimsView.php
@@ -4,6 +4,7 @@
use Wikibase\DataModel\Claim\Claim;
use Wikibase\Lib\EntityIdFormatter;
+use Wikibase\Template\TemplateFactory;
/**
* Generates HTML to display claims.
@@ -15,6 +16,11 @@
* @author Daniel Kinzler
*/
class ClaimsView {
+
+ /**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
/**
* @var EntityIdFormatter
@@ -32,11 +38,13 @@
private $claimHtmlGenerator;
/**
+ * @param TemplateFactory $templateFactory
* @param EntityIdFormatter $propertyIdFormatter
* @param SectionEditLinkGenerator $sectionEditLinkGenerator
* @param ClaimHtmlGenerator $claimHtmlGenerator
*/
public function __construct(
+ TemplateFactory $templateFactory,
EntityIdFormatter $propertyIdFormatter,
SectionEditLinkGenerator $sectionEditLinkGenerator,
ClaimHtmlGenerator $claimHtmlGenerator
@@ -44,6 +52,7 @@
$this->propertyIdFormatter = $propertyIdFormatter;
$this->sectionEditLinkGenerator = $sectionEditLinkGenerator;
$this->claimHtmlGenerator = $claimHtmlGenerator;
+ $this->templateFactory = $templateFactory;
}
/**
@@ -63,12 +72,12 @@
$claimsHtml .= $this->getHtmlForClaimGroup( $claims );
}
- $claimgrouplistviewHtml = wfTemplate( 'wb-claimgrouplistview',
$claimsHtml, '' );
+ $claimgrouplistviewHtml = $this->templateFactory->render(
'wb-claimgrouplistview', $claimsHtml, '' );
// TODO: Add link to SpecialPage that allows adding a new claim.
$sectionHeading = $this->getHtmlForSectionHeading(
'wikibase-statements' );
// FIXME: claimgrouplistview should be the topmost claims
related template
- $html = wfTemplate( 'wb-claimlistview',
$claimgrouplistviewHtml, '', '' );
+ $html = $this->templateFactory->render( 'wb-claimlistview',
$claimgrouplistviewHtml, '', '' );
return $sectionHeading . $html;
}
@@ -80,7 +89,7 @@
* @return string
*/
private function getHtmlForSectionHeading( $heading ) {
- $html = wfTemplate(
+ $html = $this->templateFactory->render(
'wb-section-heading',
wfMessage( $heading )->escaped(),
'claims' // ID - TODO: should not be added if output
page is not the entity's page
@@ -132,7 +141,7 @@
);
}
- $toolbarHtml = wfTemplate( 'wikibase-toolbar-wrapper',
+ $toolbarHtml = $this->templateFactory->render(
'wikibase-toolbar-wrapper',
$this->sectionEditLinkGenerator->getSingleButtonToolbarHtml(
'',
array(),
@@ -141,9 +150,12 @@
)
);
- return wfTemplate( 'wb-claimlistview',
+ return $this->templateFactory->render( 'wb-claimlistview',
$propertyHtml,
- wfTemplate( 'wb-claimgrouplistview-groupname',
$propertyLink ) . $toolbarHtml,
+ $this->templateFactory->render(
+ 'wb-claimgrouplistview-groupname',
+ $propertyLink
+ ) . $toolbarHtml,
$propertyId->getSerialization()
);
}
diff --git a/repo/includes/View/EntityView.php
b/repo/includes/View/EntityView.php
index 393900c..6d8b1cb 100644
--- a/repo/includes/View/EntityView.php
+++ b/repo/includes/View/EntityView.php
@@ -7,6 +7,7 @@
use Language;
use Wikibase\DataModel\Entity\Entity;
use Wikibase\EntityRevision;
+use Wikibase\Template\TemplateFactory;
/**
* Base class for creating views for all different kinds of Wikibase\Entity.
@@ -24,6 +25,11 @@
* @author Bene* < [email protected] >
*/
abstract class EntityView {
+
+ /**
+ * @var TemplateFactory
+ */
+ protected $templateFactory;
/**
* @var FingerprintView
@@ -51,12 +57,14 @@
private $textInjector;
/**
+ * @param TemplateFactory $templateFactory
* @param FingerprintView $fingerprintView
* @param ClaimsView $claimsView
* @param Language $language
* @param bool $editable
*/
public function __construct(
+ TemplateFactory $templateFactory,
FingerprintView $fingerprintView,
ClaimsView $claimsView,
Language $language,
@@ -68,6 +76,7 @@
$this->editable = $editable;
$this->textInjector = new TextInjector();
+ $this->templateFactory = $templateFactory;
}
/**
@@ -101,7 +110,7 @@
$entityId = $entity->getId() ?: 'new'; // if id is not set, use
'new' suffix for css classes
- $html = wfTemplate( 'wikibase-entityview',
+ $html = $this->templateFactory->render( 'wikibase-entityview',
$entity->getType(),
$entityId,
$this->language->getCode(),
@@ -202,14 +211,14 @@
$i = 1;
foreach ( $tocSections as $id => $message ) {
- $tocContent .= wfTemplate( 'wb-entity-toc-section',
+ $tocContent .= $this->templateFactory->render(
'wb-entity-toc-section',
$i++,
$id,
wfMessage( $message )->text()
);
}
- return wfTemplate( 'wb-entity-toc',
+ return $this->templateFactory->render( 'wb-entity-toc',
wfMessage( 'toc' )->text(),
$tocContent
);
diff --git a/repo/includes/View/EntityViewFactory.php
b/repo/includes/View/EntityViewFactory.php
index d6d8bfd..5fe7d01 100644
--- a/repo/includes/View/EntityViewFactory.php
+++ b/repo/includes/View/EntityViewFactory.php
@@ -11,10 +11,11 @@
use Wikibase\LanguageFallbackChain;
use Wikibase\Lib\EntityIdFormatter;
use Wikibase\Lib\EntityIdFormatterFactory;
-use Wikibase\Lib\Store\EntityLookup;
use Wikibase\Lib\OutputFormatSnakFormatterFactory;
use Wikibase\Lib\SnakFormatter;
+use Wikibase\Lib\Store\EntityLookup;
use Wikibase\Lib\Store\LabelLookup;
+use Wikibase\Template\TemplateFactory;
/**
* @since 0.5
@@ -70,11 +71,18 @@
private $badgeItems;
/**
+ *
+ * @var TemplateFactory
+ */
+ private $templateFactory;
+
+ /**
* @param EntityIdFormatterFactory $idFormatterFactory
* @param OutputFormatSnakFormatterFactory $snakFormatterFactory
* @param EntityLookup $entityLookup
* @param SiteStore $siteStore
* @param DataTypeFactory $dataTypeFactory
+ * @param TemplateFactory $templateFactory
*/
public function __construct(
EntityIdFormatterFactory $idFormatterFactory,
@@ -82,6 +90,7 @@
EntityLookup $entityLookup,
SiteStore $siteStore,
DataTypeFactory $dataTypeFactory,
+ TemplateFactory $templateFactory,
array $siteLinkGroups,
array $specialSiteLinkGroups,
array $badgeItems
@@ -90,13 +99,16 @@
$this->idFormatterFactory = $idFormatterFactory;
$this->snakFormatterFactory = $snakFormatterFactory;
- $this->sectionEditLinkGenerator = new
SectionEditLinkGenerator();
$this->entityLookup = $entityLookup;
$this->siteStore = $siteStore;
$this->dataTypeFactory = $dataTypeFactory;
$this->siteLinkGroups = $siteLinkGroups;
$this->specialSiteLinkGroups = $specialSiteLinkGroups;
$this->badgeItems = $badgeItems;
+ $this->templateFactory = $templateFactory;
+ $this->sectionEditLinkGenerator = new SectionEditLinkGenerator(
+ $this->templateFactory
+ );
}
/**
@@ -140,6 +152,7 @@
switch ( $entityType ) {
case 'item':
$siteLinksView = new SiteLinksView(
+ $this->templateFactory,
$this->siteStore->getSites(),
$this->sectionEditLinkGenerator,
$this->entityLookup,
@@ -149,6 +162,7 @@
);
return new ItemView(
+ $this->templateFactory,
$fingerprintView,
$claimsView,
$language,
@@ -158,6 +172,7 @@
);
case 'property':
return new PropertyView(
+ $this->templateFactory,
$fingerprintView,
$claimsView,
$this->dataTypeFactory,
@@ -184,15 +199,18 @@
$propertyIdFormatter = $this->getPropertyIdFormatter(
$languageCode, $fallbackChain, $labelLookup );
$snakHtmlGenerator = new SnakHtmlGenerator(
+ $this->templateFactory,
$this->getSnakFormatter( $languageCode, $fallbackChain,
$labelLookup ),
$propertyIdFormatter
);
$claimHtmlGenerator = new ClaimHtmlGenerator(
+ $this->templateFactory,
$snakHtmlGenerator
);
return new ClaimsView(
+ $this->templateFactory,
$propertyIdFormatter,
$this->sectionEditLinkGenerator,
$claimHtmlGenerator
@@ -206,6 +224,7 @@
*/
private function newFingerprintView( $languageCode ) {
return new FingerprintView(
+ $this->templateFactory,
$this->sectionEditLinkGenerator,
$languageCode
);
diff --git a/repo/includes/View/EntityViewPlaceholderExpander.php
b/repo/includes/View/EntityViewPlaceholderExpander.php
index 3f3f225..99d7331 100644
--- a/repo/includes/View/EntityViewPlaceholderExpander.php
+++ b/repo/includes/View/EntityViewPlaceholderExpander.php
@@ -12,6 +12,7 @@
use Wikibase\DataModel\Entity\EntityIdParser;
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\Store\StorageException;
+use Wikibase\Template\TemplateFactory;
use Wikibase\UserLanguageLookup;
/**
@@ -31,6 +32,11 @@
* @author Daniel Kinzler
*/
class EntityViewPlaceholderExpander {
+
+ /**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
/**
* @var Title
@@ -68,6 +74,7 @@
private $extraLanguages = null;
/**
+ * @param TemplateFactory $templateFactory
* @param Title $targetPage the page for which this expander is
supposed to handle expansion.
* @param User $user the current user
* @param Language $uiLanguage the user's current UI language (as per
the present request)
@@ -76,6 +83,7 @@
* @param UserLanguageLookup $userLanguageLookup
*/
public function __construct(
+ TemplateFactory $templateFactory,
Title $targetPage,
User $user,
Language $uiLanguage,
@@ -89,6 +97,7 @@
$this->entityIdParser = $entityIdParser;
$this->entityRevisionLookup = $entityRevisionLookup;
$this->userLanguageLookup = $userLanguageLookup;
+ $this->templateFactory = $templateFactory;
}
/**
@@ -202,7 +211,7 @@
return '';
}
- $html = wfTemplate( 'wb-entity-toc-section',
+ $html = $this->templateFactory->render( 'wb-entity-toc-section',
0, // section number, not really used, it seems
'wb-terms',
wfMessage( 'wikibase-terms' )->inLanguage(
$this->uiLanguage )->text()
@@ -240,7 +249,7 @@
return '';
}
- $termBoxView = new TermBoxView( $this->uiLanguage );
+ $termBoxView = new TermBoxView( $this->templateFactory,
$this->uiLanguage );
$html = $termBoxView->renderTermBox( $this->targetPage,
$entity->getFingerprint(), $languages );
return $html;
diff --git a/repo/includes/View/FingerprintView.php
b/repo/includes/View/FingerprintView.php
index 2563090..2de3a84 100644
--- a/repo/includes/View/FingerprintView.php
+++ b/repo/includes/View/FingerprintView.php
@@ -6,6 +6,7 @@
use Wikibase\DataModel\Term\AliasGroupList;
use Wikibase\DataModel\Term\Fingerprint;
use Wikibase\DataModel\Term\TermList;
+use Wikibase\Template\TemplateFactory;
/**
* Generates HTML to display the fingerprint of an entity
@@ -20,6 +21,11 @@
class FingerprintView {
/**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
+
+ /**
* @var SectionEditLinkGenerator
*/
private $sectionEditLinkGenerator;
@@ -30,12 +36,18 @@
private $languageCode;
/**
+ * @param TemplateFactory $templateFactory
* @param SectionEditLinkGenerator $sectionEditLinkGenerator
* @param string $languageCode
*/
- public function __construct( SectionEditLinkGenerator
$sectionEditLinkGenerator, $languageCode ) {
+ public function __construct(
+ TemplateFactory $templateFactory,
+ SectionEditLinkGenerator $sectionEditLinkGenerator,
+ $languageCode
+ ) {
$this->sectionEditLinkGenerator = $sectionEditLinkGenerator;
$this->languageCode = $languageCode;
+ $this->templateFactory = $templateFactory;
}
/**
@@ -54,7 +66,7 @@
$html .= $this->getHtmlForLabel( $labels, $entityId, $editable
);
$html .= $this->getHtmlForDescription( $descriptions,
$entityId, $editable );
- $html .= wfTemplate( 'wb-entity-header-separator' );
+ $html .= $this->templateFactory->render(
'wb-entity-header-separator' );
$html .= $this->getHtmlForAliases( $aliasGroups, $entityId,
$editable );
return $html;
@@ -71,7 +83,7 @@
$hasLabel = $labels->hasTermForLanguage( $this->languageCode );
$id = 'new';
$idInParentheses = '';
- $editSection = wfTemplate( 'wikibase-toolbar-wrapper',
+ $editSection = $this->templateFactory->render(
'wikibase-toolbar-wrapper',
$this->getHtmlForEditSection( 'SetLabel', $entityId,
$editable )
);
@@ -81,9 +93,9 @@
}
if ( $hasLabel ) {
- return wfTemplate( 'wikibase-firstHeading',
+ return $this->templateFactory->render(
'wikibase-firstHeading',
$id,
- wfTemplate( 'wikibase-labelview',
+ $this->templateFactory->render(
'wikibase-labelview',
'',
htmlspecialchars(
$labels->getByLanguage( $this->languageCode )->getText() ),
$idInParentheses,
@@ -91,9 +103,9 @@
)
);
} else {
- return wfTemplate( 'wikibase-firstHeading',
+ return $this->templateFactory->render(
'wikibase-firstHeading',
$id,
- wfTemplate( 'wikibase-labelview',
+ $this->templateFactory->render(
'wikibase-labelview',
'wb-empty',
wfMessage( 'wikibase-label-empty'
)->escaped(),
$idInParentheses,
@@ -115,13 +127,13 @@
$editSection = $this->getHtmlForEditSection( 'SetDescription',
$entityId, $editable );
if ( $hasDescription ) {
- return wfTemplate( 'wikibase-descriptionview',
+ return $this->templateFactory->render(
'wikibase-descriptionview',
'',
htmlspecialchars( $descriptions->getByLanguage(
$this->languageCode )->getText() ),
$editSection
);
} else {
- return wfTemplate( 'wikibase-descriptionview',
+ return $this->templateFactory->render(
'wikibase-descriptionview',
'wb-empty',
wfMessage( 'wikibase-description-empty'
)->escaped(),
$editSection
@@ -144,20 +156,20 @@
$aliasesHtml = '';
$aliases = $aliasGroups->getByLanguage(
$this->languageCode )->getAliases();
foreach ( $aliases as $alias ) {
- $aliasesHtml .= wfTemplate(
+ $aliasesHtml .= $this->templateFactory->render(
'wikibase-aliasesview-list-item',
htmlspecialchars( $alias )
);
}
- return wfTemplate( 'wikibase-aliasesview',
+ return $this->templateFactory->render(
'wikibase-aliasesview',
'',
wfMessage( 'wikibase-aliases-label'
)->escaped(),
$aliasesHtml,
$editSection
);
} else {
- return wfTemplate( 'wikibase-aliasesview',
+ return $this->templateFactory->render(
'wikibase-aliasesview',
'wb-empty',
wfMessage( 'wikibase-aliases-empty'
)->escaped(),
'',
diff --git a/repo/includes/View/ItemView.php b/repo/includes/View/ItemView.php
index 907f578..e97569a 100644
--- a/repo/includes/View/ItemView.php
+++ b/repo/includes/View/ItemView.php
@@ -6,6 +6,7 @@
use Language;
use Wikibase\DataModel\Entity\Item;
use Wikibase\EntityRevision;
+use Wikibase\Template\TemplateFactory;
/**
* Class for creating views for Item instances.
@@ -32,6 +33,7 @@
/**
* @see EntityView::__construct
*
+ * @param TemplateFactory $templateFactory
* @param FingerprintView $fingerprintView
* @param ClaimsView $claimsView
* @param Language $language
@@ -40,6 +42,7 @@
* @param bool $editable
*/
public function __construct(
+ TemplateFactory $templateFactory,
FingerprintView $fingerprintView,
ClaimsView $claimsView,
Language $language,
@@ -47,7 +50,7 @@
array $siteLinkGroups,
$editable = true
) {
- parent::__construct( $fingerprintView, $claimsView, $language,
$editable );
+ parent::__construct( $templateFactory, $fingerprintView,
$claimsView, $language, $editable );
$this->siteLinkGroups = $siteLinkGroups;
$this->siteLinksView = $siteLinksView;
diff --git a/repo/includes/View/PropertyView.php
b/repo/includes/View/PropertyView.php
index 0304ac7..d70c1ba 100644
--- a/repo/includes/View/PropertyView.php
+++ b/repo/includes/View/PropertyView.php
@@ -2,13 +2,13 @@
namespace Wikibase\Repo\View;
-use DataTypes\DataTypeFactory;
use DataTypes\DataType;
+use DataTypes\DataTypeFactory;
use InvalidArgumentException;
use Language;
use Wikibase\DataModel\Entity\Property;
use Wikibase\EntityRevision;
-use Wikibase\Repo\WikibaseRepo;
+use Wikibase\Template\TemplateFactory;
/**
* Class for creating views for Property instances.
@@ -28,19 +28,21 @@
private $dataTypeFactory;
/**
+ * @param TemplateFactory $templateFactory
* @param FingerprintView $fingerprintView
* @param ClaimsView $claimsView
* @param Language $language
* @param bool $editable
*/
public function __construct(
+ TemplateFactory $templateFactory,
FingerprintView $fingerprintView,
ClaimsView $claimsView,
DataTypeFactory $dataTypeFactory,
Language $language,
$editable = true
) {
- parent::__construct( $fingerprintView, $claimsView, $language,
$editable );
+ parent::__construct( $templateFactory, $fingerprintView,
$claimsView, $language, $editable );
$this->dataTypeFactory = $dataTypeFactory;
}
@@ -86,11 +88,11 @@
* @return string
*/
private function getHtmlForDataType( DataType $dataType ) {
- return wfTemplate( 'wb-section-heading',
+ return $this->templateFactory->render( 'wb-section-heading',
wfMessage( 'wikibase-propertypage-datatype'
)->escaped(),
'datatype'
)
- . wfTemplate( 'wikibase-propertyview-datatype',
+ . $this->templateFactory->render(
'wikibase-propertyview-datatype',
htmlspecialchars( $dataType->getLabel(
$this->language->getCode() ) )
);
}
diff --git a/repo/includes/View/SectionEditLinkGenerator.php
b/repo/includes/View/SectionEditLinkGenerator.php
index 28abbeb..f82a148 100644
--- a/repo/includes/View/SectionEditLinkGenerator.php
+++ b/repo/includes/View/SectionEditLinkGenerator.php
@@ -4,6 +4,7 @@
use Message;
use SpecialPageFactory;
+use Wikibase\Template\TemplateFactory;
/**
* Generates HTML for a section edit link
@@ -16,6 +17,18 @@
* @author Daniel Kinzler
*/
class SectionEditLinkGenerator {
+
+ /**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
+
+ /**
+ * @param TemplateFactory $templateFactory
+ */
+ public function __construct( TemplateFactory $templateFactory ) {
+ $this->templateFactory = $templateFactory;
+ }
/**
* Returns a toolbar with an edit link. In JavaScript, an enhanced
toolbar will be initialized
@@ -43,8 +56,8 @@
$editUrl = $enabled ? $this->getEditUrl( $specialPageName,
$specialPageUrlParams ) : null;
$toolbarButton = $this->getToolbarButton( $cssClassSuffix,
$message->text(), $editUrl );
- $html = wfTemplate( 'wikibase-toolbar-container',
- wfTemplate( 'wikibase-toolbar',
+ $html = $this->templateFactory->render(
'wikibase-toolbar-container',
+ $this->templateFactory->render( 'wikibase-toolbar',
'',
$toolbarButton
)
@@ -80,7 +93,8 @@
$editUrl = $enabled ? $this->getEditUrl( $specialPageName,
$specialPageUrlParams ) : null;
$toolbarButton = $this->getToolbarButton( $cssClassSuffix,
$message->text(), $editUrl );
- $html = wfTemplate( 'wikibase-toolbar-container',
+ $html = $this->templateFactory->render(
+ 'wikibase-toolbar-container',
$toolbarButton
);
@@ -118,8 +132,8 @@
*/
private function getToolbarButton( $cssClassSuffix, $buttonLabel,
$editUrl = null ) {
if ( $editUrl !== null ) {
- return wfTemplate( 'wikibase-toolbar-bracketed',
- wfTemplate( 'wikibase-toolbar-button',
+ return $this->templateFactory->render(
'wikibase-toolbar-bracketed',
+ $this->templateFactory->render(
'wikibase-toolbar-button',
'wikibase-toolbar-button-' .
$cssClassSuffix,
$editUrl,
$buttonLabel
diff --git a/repo/includes/View/SiteLinksView.php
b/repo/includes/View/SiteLinksView.php
index d7fb2c9..93f2e32 100644
--- a/repo/includes/View/SiteLinksView.php
+++ b/repo/includes/View/SiteLinksView.php
@@ -11,6 +11,7 @@
use Wikibase\DataModel\SiteLink;
use Wikibase\DataModel\Term\FingerprintProvider;
use Wikibase\Lib\Store\EntityLookup;
+use Wikibase\Template\TemplateFactory;
use Wikibase\Utils;
/**
@@ -23,6 +24,11 @@
* @author Bene* < [email protected] >
*/
class SiteLinksView {
+
+ /**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
/**
* @var SiteList
@@ -63,6 +69,7 @@
* @param string $languageCode
*/
public function __construct(
+ TemplateFactory $templateFactory,
SiteList $sites,
SectionEditLinkGenerator $sectionEditLinkGenerator,
EntityLookup $entityLookup,
@@ -76,6 +83,7 @@
$this->badgeItems = $badgeItems;
$this->specialSiteLinkGroups = $specialSiteLinkGroups;
$this->languageCode = $languageCode;
+ $this->templateFactory = $templateFactory;
}
/**
@@ -106,8 +114,8 @@
$html .= $this->getHtmlForSiteLinkGroup( $siteLinks,
$itemId, $group, $editable );
}
- return wfTemplate( 'wikibase-sitelinkgrouplistview',
- wfTemplate( 'wb-listview', $html )
+ return $this->templateFactory->render(
'wikibase-sitelinkgrouplistview',
+ $this->templateFactory->render( 'wb-listview', $html )
);
}
@@ -122,12 +130,12 @@
* @return string
*/
private function getHtmlForSiteLinkGroup( array $siteLinks, $itemId,
$group, $editable ) {
- return wfTemplate( 'wikibase-sitelinkgroupview',
+ return $this->templateFactory->render(
'wikibase-sitelinkgroupview',
// TODO: support entity-id as prefix for element IDs.
htmlspecialchars( 'sitelinks-' . $group, ENT_QUOTES ),
wfMessage( 'wikibase-sitelinks-' . $group )->parse(),
'', // counter
- wfTemplate( 'wikibase-sitelinklistview',
+ $this->templateFactory->render(
'wikibase-sitelinklistview',
$this->getHtmlForSiteLinks(
$this->getSiteLinksForTable(
$this->getSitesForGroup( $group ), $siteLinks ),
$group === 'special'
@@ -254,7 +262,7 @@
// TODO: for non-JS, also set the dir attribute on the link
cell;
// but do not build language objects for each site since it
causes too much load
// and will fail when having too much site links
- return wfTemplate( 'wikibase-sitelinkview',
+ return $this->templateFactory->render( 'wikibase-sitelinkview',
htmlspecialchars( $siteId ), // ID used in classes
$languageCode,
'auto',
@@ -273,7 +281,7 @@
private function getHtmlForPage( $siteLink, $site ) {
$pageName = $siteLink->getPageName();
- return wfTemplate( 'wikibase-sitelinkview-pagename',
+ return $this->templateFactory->render(
'wikibase-sitelinkview-pagename',
htmlspecialchars( $site->getPageUrl( $pageName ) ),
htmlspecialchars( $pageName ),
$this->getHtmlForBadges( $siteLink ),
@@ -288,7 +296,7 @@
*/
private function getHtmlForUnknownSiteLink( $siteLink ) {
// FIXME: No need for separate template; Use
'wikibase-sitelinkview' template.
- return wfTemplate( 'wikibase-sitelinkview-unknown',
+ return $this->templateFactory->render(
'wikibase-sitelinkview-unknown',
htmlspecialchars( $siteLink->getSiteId() ),
htmlspecialchars( $siteLink->getPageName() )
);
@@ -332,14 +340,14 @@
$classes .= ' ' . Sanitizer::escapeClass(
$this->badgeItems[$serialization] );
}
- $html .= wfTemplate( 'wb-badge',
+ $html .= $this->templateFactory->render( 'wb-badge',
$classes,
$this->getTitleForBadge( $badge ),
$badge
);
}
- return wfTemplate( 'wikibase-badgeselector', $html );
+ return $this->templateFactory->render(
'wikibase-badgeselector', $html );
}
/**
diff --git a/repo/includes/View/SnakHtmlGenerator.php
b/repo/includes/View/SnakHtmlGenerator.php
index b1f06df..631b4ac 100644
--- a/repo/includes/View/SnakHtmlGenerator.php
+++ b/repo/includes/View/SnakHtmlGenerator.php
@@ -4,10 +4,11 @@
use InvalidArgumentException;
use ValueFormatters\FormattingException;
-use Wikibase\DataModel\Snak\Snak;
use Wikibase\DataModel\Entity\PropertyNotFoundException;
+use Wikibase\DataModel\Snak\Snak;
use Wikibase\Lib\EntityIdFormatter;
use Wikibase\Lib\SnakFormatter;
+use Wikibase\Template\TemplateFactory;
/**
* Base class for generating Snak html.
@@ -21,6 +22,11 @@
* @author Daniel Kinzler
*/
class SnakHtmlGenerator {
+
+ /**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
/**
* @since 0.4
@@ -43,6 +49,7 @@
* @throws InvalidArgumentException
*/
public function __construct(
+ TemplateFactory $templateFactory,
SnakFormatter $snakFormatter,
EntityIdFormatter $propertyIdFormatter
) {
@@ -54,6 +61,7 @@
$this->snakFormatter = $snakFormatter;
$this->propertyIdFormatter = $propertyIdFormatter;
+ $this->templateFactory = $templateFactory;
}
/**
@@ -76,7 +84,7 @@
$propertyLink = $showPropertyLink ? $this->makePropertyLink(
$snak ) : '';
- $html = wfTemplate( 'wb-snak',
+ $html = $this->templateFactory->render( 'wb-snak',
// Display property link only once for snaks featuring
the same property:
$propertyLink,
$snakViewCssClass,
diff --git a/repo/includes/View/TermBoxView.php
b/repo/includes/View/TermBoxView.php
index 61800f5..c270714 100644
--- a/repo/includes/View/TermBoxView.php
+++ b/repo/includes/View/TermBoxView.php
@@ -7,6 +7,7 @@
use Title;
use Wikibase\DataModel\Term\AliasGroupList;
use Wikibase\DataModel\Term\Fingerprint;
+use Wikibase\Template\TemplateFactory;
use Wikibase\Utils;
/**
@@ -22,6 +23,11 @@
class TermBoxView {
/**
+ * @var TemplateFactory
+ */
+ private $templateFactory;
+
+ /**
* @var SectionEditLinkGenerator
*/
private $sectionEditLinkGenerator;
@@ -31,9 +37,10 @@
*/
private $language;
- public function __construct( Language $language ) {
+ public function __construct( TemplateFactory $templateFactory, Language
$language ) {
$this->language = $language;
- $this->sectionEditLinkGenerator = new
SectionEditLinkGenerator();
+ $this->templateFactory = $templateFactory;
+ $this->sectionEditLinkGenerator = new SectionEditLinkGenerator(
$templateFactory );
}
/**
@@ -74,11 +81,11 @@
$hasLabel = $labels->hasTermForLanguage( $languageCode
);
$hasDescription = $descriptions->hasTermForLanguage(
$languageCode );
- $tbody .= wfTemplate(
'wikibase-entitytermsforlanguageview',
+ $tbody .= $this->templateFactory->render(
'wikibase-entitytermsforlanguageview',
$languageCode,
$title->getLocalURL( array( 'setlang' =>
$languageCode ) ),
htmlspecialchars( Utils::fetchLanguageName(
$languageCode ) ),
- wfTemplate( 'wikibase-labelview',
+ $this->templateFactory->render(
'wikibase-labelview',
$hasLabel ? '' : 'wb-empty',
htmlspecialchars( $hasLabel
? $labels->getByLanguage(
$languageCode )->getText()
@@ -87,7 +94,7 @@
'',
''
),
- wfTemplate( 'wikibase-descriptionview',
+ $this->templateFactory->render(
'wikibase-descriptionview',
$hasDescription ? '' : 'wb-empty',
htmlspecialchars( $hasDescription
? $descriptions->getByLanguage(
$languageCode )->getText()
@@ -100,9 +107,9 @@
);
}
- $html = wfTemplate( 'wikibase-entitytermsview',
+ $html = $this->templateFactory->render(
'wikibase-entitytermsview',
$this->msg( 'wikibase-terms' )->text(),
- wfTemplate( 'wikibase-entitytermsforlanguagelistview',
$tbody ),
+ $this->templateFactory->render(
'wikibase-entitytermsforlanguagelistview', $tbody ),
$this->sectionEditLinkGenerator->getHtmlForEditSection(
'SpecialPages',
array(),
@@ -124,7 +131,7 @@
*/
private function getHtmlForAliases( AliasGroupList $aliasGroups,
$languageCode ) {
if ( !$aliasGroups->hasGroupForLanguage( $languageCode ) ) {
- return wfTemplate( 'wikibase-aliasesview',
+ return $this->templateFactory->render(
'wikibase-aliasesview',
'wb-empty',
wfMessage( 'wikibase-aliases-empty'
)->escaped(),
'',
@@ -134,13 +141,13 @@
$aliasesHtml = '';
$aliases = $aliasGroups->getByLanguage( $languageCode
)->getAliases();
foreach ( $aliases as $alias ) {
- $aliasesHtml .= wfTemplate(
+ $aliasesHtml .= $this->templateFactory->render(
'wikibase-aliasesview-list-item',
htmlspecialchars( $alias )
);
}
- return wfTemplate( 'wikibase-aliasesview',
+ return $this->templateFactory->render(
'wikibase-aliasesview',
'',
wfMessage( 'wikibase-aliases-label'
)->escaped(),
$aliasesHtml,
diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php
index dd38701..9f2e912 100644
--- a/repo/includes/WikibaseRepo.php
+++ b/repo/includes/WikibaseRepo.php
@@ -49,7 +49,9 @@
use Wikibase\Lib\SnakFormatter;
use Wikibase\Lib\Store\EntityContentDataCodec;
use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\Lib\Store\EntityRetrievingTermLookup;
+use Wikibase\Lib\Store\EntityRevisionLookup;
+use Wikibase\Lib\Store\EntityStore;
+use Wikibase\Lib\Store\EntityStoreWatcher;
use Wikibase\Lib\Store\EntityTermLookup;
use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Lib\Store\TermLookup;
@@ -75,6 +77,7 @@
use Wikibase\Store;
use Wikibase\StringNormalizer;
use Wikibase\SummaryFormatter;
+use Wikibase\Template\TemplateFactory;
use Wikibase\TemplateRegistry;
use Wikibase\Utils;
use Wikibase\Validators\EntityConstraintProvider;
@@ -169,11 +172,6 @@
private $entityNamespaceLookup = null;
/**
- * @var TemplateRegistry|null
- */
- private $templateRegistry = null;
-
- /**
* Returns the default instance constructed using newInstance().
* IMPORTANT: Use only when it is not feasible to inject an instance
properly.
*
@@ -265,7 +263,7 @@
/**
* @since 0.5
*
- * @return \Wikibase\Lib\Store\EntityStoreWatcher
+ * @return EntityStoreWatcher
*/
public function getEntityStoreWatcher() {
return $this->getStore()->getEntityStoreWatcher();
@@ -294,7 +292,7 @@
*
* @param string $uncached Flag string, set to 'uncached' to get an
uncached direct lookup service.
*
- * @return \Wikibase\Lib\Store\EntityRevisionLookup
+ * @return EntityRevisionLookup
*/
public function getEntityRevisionLookup( $uncached = '' ) {
return $this->getStore()->getEntityRevisionLookup( $uncached );
@@ -303,7 +301,7 @@
/**
* @since 0.5
*
- * @return \Wikibase\Lib\Store\EntityStore
+ * @return EntityStore
*/
public function getEntityStore() {
return $this->getStore()->getEntityStore();
@@ -994,6 +992,7 @@
$this->getEntityLookup(),
$this->getSiteStore(),
$this->getDataTypeFactory(),
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$this->getSettings()->getSetting( 'siteLinkGroups' ),
$this->getSettings()->getSetting(
'specialSiteLinkGroups' ),
$this->getSettings()->getSetting( 'badgeItems' )
@@ -1007,15 +1006,6 @@
new ValuesFinder( $this->getPropertyDataTypeLookup() ),
$this->getLanguageFallbackChainFactory()
);
- }
-
- public function getTemplateRegistry() {
- if ( $this->templateRegistry === null ) {
- $this->templateRegistry = new TemplateRegistry();
- $this->templateRegistry->addTemplates( include( __DIR__
. '/../resources/templates.php' ) );
- }
-
- return $this->templateRegistry;
}
}
diff --git a/repo/includes/modules/TemplateModule.php
b/repo/includes/modules/TemplateModule.php
index 304a5d2..f7abc19 100644
--- a/repo/includes/modules/TemplateModule.php
+++ b/repo/includes/modules/TemplateModule.php
@@ -1,14 +1,14 @@
<?php
namespace Wikibase;
+
+use FormatJson;
use ResourceLoaderContext;
use ResourceLoaderFileModule;
-use Wikibase\Repo\WikibaseRepo;
+use ResourceLoaderModule;
/**
* Injects templates into JavaScript.
- *
- * Note: when moving the file, the path to templates.php might need updating.
*
* @since 0.2
*
@@ -27,8 +27,8 @@
*/
public function getScript( ResourceLoaderContext $context ) {
// register HTML templates
- $templateRegistry =
WikibaseRepo::getDefaultInstance()->getTemplateRegistry();
- $templatesJson = \FormatJson::encode(
$templateRegistry->getTemplates() );
+ $templateRegistry = TemplateRegistry::getDefaultInstance();
+ $templatesJson = FormatJson::encode(
$templateRegistry->getTemplates() );
// template store JavaScript initialisation
$script = <<<EOT
diff --git a/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
b/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
index 04488f5..b9b87ce 100644
--- a/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
+++ b/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
@@ -16,6 +16,8 @@
use Wikibase\Lib\SnakFormatter;
use Wikibase\Repo\View\ClaimHtmlGenerator;
use Wikibase\Repo\View\SnakHtmlGenerator;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\ClaimHtmlGenerator
@@ -85,12 +87,18 @@
Claim $claim,
$patterns
) {
+ $templateFactory = new TemplateFactory(
+ TemplateRegistry::getDefaultInstance()
+ );
+
$snakHtmlGenerator = new SnakHtmlGenerator(
+ $templateFactory,
$snakFormatter,
$propertyIdFormatter
);
$claimHtmlGenerator = new ClaimHtmlGenerator(
+ $templateFactory,
$snakHtmlGenerator
);
diff --git a/repo/tests/phpunit/includes/View/ClaimsViewTest.php
b/repo/tests/phpunit/includes/View/ClaimsViewTest.php
index f051172..4744b8d 100644
--- a/repo/tests/phpunit/includes/View/ClaimsViewTest.php
+++ b/repo/tests/phpunit/includes/View/ClaimsViewTest.php
@@ -17,6 +17,8 @@
use Wikibase\Repo\View\ClaimHtmlGenerator;
use Wikibase\Repo\View\ClaimsView;
use Wikibase\Repo\View\SectionEditLinkGenerator;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\ClaimsView
@@ -105,9 +107,11 @@
* @return ClaimsView
*/
private function newClaimsView( EntityIdFormatter $propertyIdFormatter
) {
+ $templateFactory = new TemplateFactory(
TemplateRegistry::getDefaultInstance() );
return new ClaimsView(
+ $templateFactory,
$propertyIdFormatter,
- new SectionEditLinkGenerator(),
+ new SectionEditLinkGenerator( $templateFactory ),
$this->getClaimHtmlGeneratorMock()
);
}
diff --git a/repo/tests/phpunit/includes/View/EntityViewFactoryTest.php
b/repo/tests/phpunit/includes/View/EntityViewFactoryTest.php
index 0c29d39..f510bf2 100644
--- a/repo/tests/phpunit/includes/View/EntityViewFactoryTest.php
+++ b/repo/tests/phpunit/includes/View/EntityViewFactoryTest.php
@@ -4,11 +4,10 @@
use SiteList;
use Wikibase\LanguageFallbackChain;
-use Wikibase\Lib\EntityIdFormatter;
-use Wikibase\Lib\EntityIdFormatterFactory;
use Wikibase\Lib\SnakFormatter;
-use Wikibase\Lib\Store\LabelLookup;
use Wikibase\Repo\View\EntityViewFactory;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @licence GNU GPL v2+
@@ -59,6 +58,7 @@
$this->getMock( 'Wikibase\Lib\Store\EntityLookup' ),
$this->getSiteStore(),
$this->getMock( 'DataTypes\DataTypeFactory' ),
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
array(),
array(),
array()
diff --git
a/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
b/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
index 1f9b98d..5c34893 100644
--- a/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
+++ b/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
@@ -12,6 +12,8 @@
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\Store\StorageException;
use Wikibase\Repo\View\EntityViewPlaceholderExpander;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\EntityViewPlaceholderExpander
@@ -54,6 +56,7 @@
->will( $this->returnValue( array( 'de', 'en', 'ru' ) )
);
return new EntityViewPlaceholderExpander(
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$title,
$user,
$language,
diff --git a/repo/tests/phpunit/includes/View/FingerprintViewTest.php
b/repo/tests/phpunit/includes/View/FingerprintViewTest.php
index 01cb2ba..3d76693 100644
--- a/repo/tests/phpunit/includes/View/FingerprintViewTest.php
+++ b/repo/tests/phpunit/includes/View/FingerprintViewTest.php
@@ -7,6 +7,8 @@
use Wikibase\DataModel\Term\Fingerprint;
use Wikibase\Repo\View\FingerprintView;
use Wikibase\Repo\View\SectionEditLinkGenerator;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\FingerprintView
@@ -43,7 +45,13 @@
}
private function getFingerprintView( $languageCode = 'en' ) {
- return new FingerprintView( new SectionEditLinkGenerator(),
$languageCode );
+ $templateFactory = new TemplateFactory(
TemplateRegistry::getDefaultInstance() );
+
+ return new FingerprintView(
+ $templateFactory,
+ new SectionEditLinkGenerator( $templateFactory ),
+ $languageCode
+ );
}
private function getFingerprint( $languageCode = 'en' ) {
diff --git a/repo/tests/phpunit/includes/View/ItemViewTest.php
b/repo/tests/phpunit/includes/View/ItemViewTest.php
index a33c2c0..59ca464 100644
--- a/repo/tests/phpunit/includes/View/ItemViewTest.php
+++ b/repo/tests/phpunit/includes/View/ItemViewTest.php
@@ -2,11 +2,12 @@
namespace Wikibase\Test;
-use Wikibase\DataModel\Entity\Entity;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\Repo\View\ItemView;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\ItemView
@@ -48,6 +49,7 @@
public function provideTestGetHtml() {
$itemView = new ItemView(
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$this->getMockBuilder(
'Wikibase\Repo\View\FingerprintView' )
->disableOriginalConstructor()
->getMock(),
diff --git a/repo/tests/phpunit/includes/View/PropertyViewTest.php
b/repo/tests/phpunit/includes/View/PropertyViewTest.php
index 21455d6..6ff3bcd 100644
--- a/repo/tests/phpunit/includes/View/PropertyViewTest.php
+++ b/repo/tests/phpunit/includes/View/PropertyViewTest.php
@@ -10,6 +10,8 @@
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\Repo\View\PropertyView;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\PropertyView
@@ -76,6 +78,7 @@
public function provideTestGetHtml() {
$propertyView = new PropertyView(
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$this->getMockBuilder(
'Wikibase\Repo\View\FingerprintView' )
->disableOriginalConstructor()
->getMock(),
diff --git a/repo/tests/phpunit/includes/View/SectionEditLinkGeneratorTest.php
b/repo/tests/phpunit/includes/View/SectionEditLinkGeneratorTest.php
index cfedcc5..5240138 100644
--- a/repo/tests/phpunit/includes/View/SectionEditLinkGeneratorTest.php
+++ b/repo/tests/phpunit/includes/View/SectionEditLinkGeneratorTest.php
@@ -3,6 +3,8 @@
namespace Wikibase\Test;
use Wikibase\Repo\View\SectionEditLinkGenerator;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\SectionEditLinkGenerator
@@ -22,7 +24,7 @@
* @dataProvider getHtmlForEditSectionProvider
*/
public function testGetHtmlForEditSection( $expected, $pageName,
$action, $enabled, $langCode ) {
- $generator = new SectionEditLinkGenerator();
+ $generator = $this->newSectionEditLinkGenerator();
$key = $action === 'add' ? 'wikibase-add' : 'wikibase-edit';
$msg = wfMessage( $key )->inLanguage( $langCode );
@@ -60,7 +62,7 @@
* @dataProvider getHtmlForEditSection_editUrlProvider
*/
public function testGetHtmlForEditSection_editUrl( $expected,
$specialPageName, $specialPageParams ) {
- $generator = new SectionEditLinkGenerator();
+ $generator = $this->newSectionEditLinkGenerator();
$html = $generator->getHtmlForEditSection(
$specialPageName,
@@ -97,7 +99,7 @@
* @dataProvider getHtmlForEditSection_disabledProvider
*/
public function testGetHtmlForEditSection_disabled( $specialPageName,
$specialPageUrlParams, $enabled ) {
- $generator = new SectionEditLinkGenerator();
+ $generator = $this->newSectionEditLinkGenerator();
$html = $generator->getHtmlForEditSection(
$specialPageName,
@@ -119,4 +121,7 @@
);
}
+ private function newSectionEditLinkGenerator() {
+ return new SectionEditLinkGenerator( new TemplateFactory(
TemplateRegistry::getDefaultInstance() ) );
+ }
}
diff --git a/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
b/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
index 670ddf7..8d343bb 100644
--- a/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
+++ b/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
@@ -11,8 +11,9 @@
use Wikibase\DataModel\SiteLink;
use Wikibase\Lib\Store\EntityLookup;
use Wikibase\Repo\View\SectionEditLinkGenerator;
-use Wikibase\Repo\WikibaseRepo;
use Wikibase\Repo\View\SiteLinksView;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\SiteLinksView
@@ -189,6 +190,7 @@
private function getSiteLinksView() {
return new SiteLinksView(
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$this->newSiteList(),
$this->getSectionEditLinkGeneratorMock(),
$this->getEntityLookupMock(),
diff --git a/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
b/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
index aab3938..e4ba4d9 100644
--- a/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
+++ b/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
@@ -11,6 +11,8 @@
use Wikibase\Lib\EntityIdFormatter;
use Wikibase\Lib\SnakFormatter;
use Wikibase\Repo\View\SnakHtmlGenerator;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\SnakHtmlGenerator
@@ -33,6 +35,7 @@
$patterns
) {
$snakHtmlGenerator = new SnakHtmlGenerator(
+ new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
$snakFormatter,
$propertyIdFormatter
);
diff --git a/repo/tests/phpunit/includes/View/TermBoxViewTest.php
b/repo/tests/phpunit/includes/View/TermBoxViewTest.php
index 3243686..c639dda 100644
--- a/repo/tests/phpunit/includes/View/TermBoxViewTest.php
+++ b/repo/tests/phpunit/includes/View/TermBoxViewTest.php
@@ -7,6 +7,8 @@
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\Repo\View\TermBoxView;
+use Wikibase\Template\TemplateFactory;
+use Wikibase\TemplateRegistry;
/**
* @covers Wikibase\Repo\View\TermBoxView
@@ -22,7 +24,8 @@
public function testRenderTermBox() {
$language = Language::factory( 'qqx' ); // so we can look for
message keys in the output
- $view = new TermBoxView( $language );
+ $templateFactory = new TemplateFactory(
TemplateRegistry::getDefaultInstance() );
+ $view = new TermBoxView( $templateFactory, $language );
$title = $this->getMockBuilder( 'Title' )
->disableOriginalConstructor()
--
To view, visit https://gerrit.wikimedia.org/r/180478
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9e629f4661f1975418db2071a74b92d74bbb5cc5
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits