diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php b/www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php new file mode 100644 index 00000000..239d037a --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php @@ -0,0 +1,73 @@ +<?php + +namespace SMW\Factbox; + +use IContextSource; +use OutputPage; +use SMW\ApplicationFactory; +use Title; +use ParserOutput; + +/** + * @license GNU GPL v2+ + * @since 2.0 + * + * @author mwjames + */ +class FactboxFactory { + + /** + * @since 2.0 + * + * @return CachedFactbox + */ + public function newCachedFactbox() { + + $applicationFactory = ApplicationFactory::getInstance(); + $settings = $applicationFactory->getSettings(); + + $cachedFactbox = new CachedFactbox( + $applicationFactory->getCache( + $settings->get( 'smwgMainCacheType' ) + ) + ); + + // Month = 30 * 24 * 3600 + $cachedFactbox->setExpiryInSeconds( 2592000 ); + + $cachedFactbox->isEnabled( + $settings->isFlagSet( 'smwgFactboxFeatures', SMW_FACTBOX_CACHE ) + ); + + $cachedFactbox->setFeatureSet( + $settings->get( 'smwgFactboxFeatures' ) + ); + + return $cachedFactbox; + } + + /** + * @since 2.0 + * + * @param Title $title + * @param ParserOutput $parserOutput + * + * @return Factbox + */ + public function newFactbox( Title $title, ParserOutput $parserOutput ) { + + $applicationFactory = ApplicationFactory::getInstance(); + + $factbox = new Factbox( + $applicationFactory->getStore(), + $applicationFactory->newParserData( $title, $parserOutput ) + ); + + $factbox->setFeatureSet( + $applicationFactory->getSettings()->get( 'smwgFactboxFeatures' ) + ); + + return $factbox; + } + +} |