summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/src/Factbox/FactboxFactory.php73
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;
+ }
+
+}