/** * Factory method for getting an instance of this class as a singleton * * @return Tx_Yag_Domain_Import_FileImporter_ImporterBuilder Singleton instance of file importer builder */ public static function getInstance() { if (self::$instance === null) { self::$instance = new self(Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()); } return self::$instance; }
/** * @return Tx_Yag_Domain_Configuration_ConfigurationBuilder */ protected function getConfigurationBuilder() { if (!$this->configurationBuilder instanceof Tx_Yag_Domain_Configuration_ConfigurationBuilder) { $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); } return $this->configurationBuilder; }
/** * (non-PHPdoc) * @see Classes/Core/ViewHelper/Tx_Fluid_Core_ViewHelper_AbstractTagBasedViewHelper::initialize() */ public function initialize() { parent::initialize(); $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); $this->headerInclusion = $this->objectManager->get('Tx_Yag_Utility_HeaderInclusion'); $this->contextIdentifier = $this->configurationBuilder->getContextIdentifier(); }
/** * (non-PHPdoc) * @see Classes/Core/ViewHelper/Tx_Fluid_Core_ViewHelper_AbstractTagBasedViewHelper::initialize() */ public function initialize() { parent::initialize(); $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); $this->resolutionConfigCollection = $this->configurationBuilder->buildThemeConfiguration()->getResolutionConfigCollection(); $this->crossSlideSettings = $this->configurationBuilder->getSettings('crossSlide'); }
/** * Factory method for getting an instance of importer builder (singleton) * * @return Tx_Yag_Domain_Import_ImporterBuilder Singleton instance of importer builder */ public static function getInstance() { if (self::$instance === NULL) { $configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); self::$instance = new self($configurationBuilder); } return self::$instance; }
/** * @return void */ protected function initConfigurationBuilder() { $yagSettings = Tx_PtExtbase_Div::typoscriptRegistry('plugin.tx_yag.settings.'); $yagEBSettings = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Service\\TypoScriptService')->convertTypoScriptArrayToPlainArray($yagSettings); Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::injectSettings($yagEBSettings); Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance($this->contextIdentifier, $this->theme); Tx_Yag_Domain_Context_YagContextFactory::createInstance($this->contextIdentifier); }
/** * @return \Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollection */ protected function getSelectedResolutionConfigs() { $settings = $this->configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS, 'Yag', 'pi1'); \Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::injectSettings($settings); $configurationBuilder = \Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance('default', 'backend'); $resolutionConfigCollection = \Tx_Yag_Domain_Configuration_Image_ResolutionConfigCollectionFactory::getInstanceOfAllThemes($configurationBuilder); $selectedResolutionConfigCollection = $resolutionConfigCollection->extractCollectionByThemeList($this->selectedThemes); return $selectedResolutionConfigCollection; }
/** * Factory method for hash filesystem. Returns singleton instance for each * directory given. * * @param string $directory * @return Tx_Yag_Domain_FileSystem_HashFileSystem */ public static function getInstance($directory = null) { if ($directory === null) { /* Instantiate default hash filesystem as configured in em_config */ $directory = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildExtensionConfiguration()->getHashFilesystemRoot(); } if (!array_key_exists($directory, self::$instancesArray)) { self::$instancesArray[$directory] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_Yag_Domain_FileSystem_HashFileSystem', $directory); } return self::$instancesArray[$directory]; }
/** * Creates path for original files on server. * If path does not exist, it will be created if given parameter is true. * * @param Tx_Yag_Domain_Model_Album $album * @param bool $createIfNotExists If set to true, directory will be created if it does not exist * @return string Path for original images (absolute) * @throws Exception */ public function getOrigFileDirectoryPathForAlbum(Tx_Yag_Domain_Model_Album $album, $createIfNotExists = true) { $path = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildExtensionConfiguration()->getOrigFilesRootAbsolute() . '/' . $album->getUid() . '/'; if ($createIfNotExists) { $success = Tx_Yag_Domain_FileSystem_Div::checkDirAndCreateIfMissing($path); if (!$success) { throw new Exception(sprintf('The original file path %s for album %s could not be created!', $path, $album->getUid()), 1404452464); } } return $path; }
/** * @param null $settings */ protected function initConfigurationBuilderMock($settings = NULL) { if (!$settings) { $tsFilePath = ExtensionManagementUtility::extPath($this->extensionName) . 'Configuration/TypoScript/setup.txt'; $typoscript = Tx_PtExtbase_Div::loadTypoScriptFromFile($tsFilePath); $settings = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Service\\TypoScriptService')->convertTypoScriptArrayToPlainArray($typoscript); $settings = $settings['plugin']['tx_yag']['settings']; } Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::injectSettings($settings); $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance('test', 'default'); }
/** * (non-PHPdoc) * @see Classes/Core/ViewHelper/Tx_Fluid_Core_ViewHelper_AbstractTagBasedViewHelper::initialize() */ public function initialize() { parent::initialize(); $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); $this->resolutionConfigCollection = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildThemeConfiguration()->getResolutionConfigCollection(); if ($this->arguments['resolutions']) { $this->resolutions = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->arguments['resolutions']); } else { foreach ($this->resolutionConfigCollection as $identifier => $config) { $this->resolutions[] = $identifier; } } }
/** * @param string $tsPath * @param array $settings * @param boolean $onlyKeyValuePairs Only return the kex value pairs without the brackets * @return string */ public function render($tsPath = '', $settings = NULL, $onlyKeyValuePairs = FALSE) { $jsonCompliantSettings = array(); if ($tsPath !== '') { $jsonCompliantSettings = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->getJSCompliantSettings($tsPath); } elseif ($settings !== NULL) { $jsonCompliantSettings = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->convertToJSCompliantSettings($settings); } $jsonSettings = json_encode($jsonCompliantSettings); if ($onlyKeyValuePairs) { $jsonSettings = substr($jsonSettings, 1, -1); } return $jsonSettings; }
/** * Get the "image not found" default image * * @param $sysImageConfigName * @return Tx_Yag_Domain_Model_Item * @throws Exception */ public function getSystemImage($sysImageConfigName) { $configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); $sysImageConfigCollection = $configurationBuilder->buildSysImageConfiguration(); if (!$sysImageConfigCollection->hasItem($sysImageConfigName)) { throw new Exception('No system image configuration with name ' . $sysImageConfigName . ' found!', 1298832340); } $sysImageConfig = $sysImageConfigCollection->getSysImageConfig($sysImageConfigName); $sysImage = $this->findOneBySourceuri($sysImageConfig->getSourceUri()); if ($sysImage) { return $sysImage; } else { return $this->createNewSystemImage($sysImageConfig); } }
/** * Factory method for file repository * * @return Tx_Yag_Domain_FileSystem_ResolutionFileCache */ public static function getInstance() { $configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); if (self::$instance === NULL) { $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); /** @var \TYPO3\CMS\Extbase\Object\ObjectManager $objectManager */ self::$instance = $objectManager->get('Tx_Yag_Domain_FileSystem_ResolutionFileCache', $objectManager); $hashFileSystem = Tx_Yag_Domain_FileSystem_HashFileSystemFactory::getInstance(); self::$instance->_injectHashFileSystem($hashFileSystem); $imageProcessor = Tx_Yag_Domain_ImageProcessing_ProcessorFactory::getInstance($configurationBuilder); self::$instance->_injectImageProcessor($imageProcessor); self::$instance->_injectConfigurationBuilder(Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()); } return self::$instance; }
/** * @param Tx_Yag_Domain_Model_Item $item * @param null $resolutionName * @param null $width * @param null $height * @param null $quality * @param boolean $absolute * @return string */ public function render(Tx_Yag_Domain_Model_Item $item, $resolutionName = null, $width = null, $height = null, $quality = null, $absolute = false) { if ($resolutionName) { $resolutionConfig = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildThemeConfiguration()->getResolutionConfigCollection()->getResolutionConfig($resolutionName); } elseif ($width || $height) { $resolutionSettings = array('width' => $width, 'height' => $height, 'quality' => $quality); $resolutionConfig = new Tx_Yag_Domain_Configuration_Image_ResolutionConfig(Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(), $resolutionSettings); } else { $resolutionConfig = null; } $imageResolution = $item->getResolutionByConfig($resolutionConfig); if ($absolute == true) { $imageSource = $this->controllerContext->getRequest()->getBaseUri() . $imageResolution->getPath(); } else { $imageSource = TYPO3_MODE === 'BE' ? '../' . $imageResolution->getPath() : $GLOBALS['TSFE']->absRefPrefix . $imageResolution->getPath(); } return $imageSource; }
/** * Factory method creates singleton instance of configuration builder * * @param string $contextIdentifier * @param string $theme * @param boolean $resetContext * @return Tx_Yag_Domain_Configuration_ConfigurationBuilder * @throws Exception */ public static function getInstance($contextIdentifier = null, $theme = null, $resetContext = false) { if ($contextIdentifier === null) { $contextIdentifier = self::$contextIdentifier; } else { self::$contextIdentifier = $contextIdentifier; } if (!$contextIdentifier) { throw new Exception('No contextIdentifier given!', 1298932605); } if (!array_key_exists($contextIdentifier, self::$instances) || $resetContext === true) { if (!isset($theme) || $theme == '') { throw new Exception('The theme identifier was not set. Please check your TypoScript configuration.', 1354638078); } if (!is_array(self::$settings['themes']) || !array_key_exists($theme, self::$settings['themes'])) { throw new Exception('No theme with name ' . $theme . ' could be found in settings!', 1298920754); } $configurationBuilder = new Tx_Yag_Domain_Configuration_ConfigurationBuilder(self::$settings, $contextIdentifier, $theme); self::$instances[$contextIdentifier] = $configurationBuilder; } return self::$instances[$contextIdentifier]; }
/** * Create and store a named context * * @param string $identifier * @param boolean $resetInstance * @return Tx_Yag_Domain_Context_YagContext */ public static function createInstance($identifier, $resetInstance = false) { self::$activeContext = $identifier; if (self::$instances[$identifier] == null || $resetInstance) { $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); /** @var $objectManager \TYPO3\CMS\Extbase\Object\ObjectManager */ $extensionNameSpace = $objectManager->get('Tx_Yag_Extbase_ExtbaseContext')->getExtensionNameSpace(); $yagContext = $objectManager->get('Tx_Yag_Domain_Context_YagContext', $identifier); /** @var Tx_Yag_Domain_Context_YagContext $yagContext */ $yagContext->_injectConfigurationBuilder(Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()); if ($resetInstance === false) { $sessionPersistenceManagerBuilder = $objectManager->get('Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder'); /* @var $sessionPersistenceManagerBuilder Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder */ $sessionPersistenceManager = $sessionPersistenceManagerBuilder->getInstance(); $sessionPersistenceManager->registerObjectAndLoadFromSession($yagContext); } $gpVarsAdapter = $objectManager->get('Tx_PtExtbase_State_GpVars_GpVarsAdapterFactory')->getInstance($extensionNameSpace); $gpVarsAdapter->injectParametersInObject($yagContext); $yagContext->init(); self::$instances[$identifier] = $yagContext; } return self::$instances[$identifier]; }
public function initialize() { parent::initialize(); $this->definedCustomMetaDataConfigCollection = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildCustomMetaDataConfiguration(); }
/** * Init the extbase Context and the configurationBuilder * * @throws Exception */ protected function init() { // We do this so that we can check whether we are in "Flexform-Mode" self::$flexFormMode = true; $configuration['extensionName'] = self::EXTENSION_NAME; $configuration['pluginName'] = self::PLUGIN_NAME; $this->bootstrap = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Core\\Bootstrap'); $this->bootstrap->initialize($configuration); $this->objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); if (!$this->configurationBuilder) { try { // try to get the instance from factory cache $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance('backend', 'backend'); } catch (Exception $e) { if (!$this->currentPid) { throw new Exception('Need PID for initialisation - No PID given!', 1298928835); } $settings = $this->getTyposcriptSettings($this->currentPid); Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::injectSettings($settings); $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance('backend', 'backend'); $this->initBackendRequirements(); } } $yagPid = (int) GeneralUtility::_GP('yagPid'); $this->pidDetector = $this->objectManager->get('Tx_Yag_Utility_PidDetector'); $this->pidDetector->setPids(array($yagPid)); }
public function __construct() { parent::__construct(); $this->yagContext = Tx_Yag_Domain_Context_YagContextFactory::getInstance(); $this->yagConfigurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); }
/** * (non-PHPdoc) * @see Classes/Core/ViewHelper/Tx_Fluid_Core_ViewHelper_AbstractTagBasedViewHelper::initialize() */ public function initialize() { parent::initialize(); $this->configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(); }
/** * Return an array of all resolutions of the currently active theme * * @return array */ public function getResolutions() { $resolutionConfigs = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildThemeConfiguration()->getResolutionConfigCollection(); $resolutions = array(); foreach ($resolutionConfigs as $resolutionName => $resolutionConfig) { $resolutions[$resolutionName] = $this->getResolutionByConfig($resolutionConfig); } return $resolutions; }
/** * Get the context identifier * * @return string $contextIdentifier */ protected function getContextIdentifier() { // Stage 1: get the identifier from GET / POST $identifier = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_StateAdapter_GetPostVarAdapterFactory')->getInstance()->extractGpVarsByNamespace('contextIdentifier'); // Stage 2: get a defined identifier if (!$identifier) { $identifier = trim($this->settings['contextIdentifier']); } // Stage 3: get identifier from content element uid (Frontend only) if (!$identifier) { $identifier = $this->configurationManager->getContentObject()->data['uid']; } // Stage 4: we generate ourselves a configurationBuilder and look for contextIdentifier there if (!$identifier) { try { $configurationBuilder = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(null, 'default'); $identifier = $configurationBuilder->getContextIdentifier(); } catch (Exception $e) { /* seems like we do not have a configuration builder yet :-) */ } } // Stage 5: (in backend) generate a default identifier, with this identifier, it is not possible to display two elements on one page (which is not possible in backend) if (!$identifier) { $identifier = 'backend'; } if (is_numeric($identifier)) { $identifier = 'c' . $identifier; } return $identifier; }
/** * @return null|Tx_Yag_Domain_Configuration_Image_ResolutionConfig */ protected function getResolutionConfig() { if ($this->hasArgument('resolutionName')) { $resolutionConfig = $this->resolutionConfigCollection = Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance()->buildThemeConfiguration()->getResolutionConfigCollection()->getResolutionConfig(trim($this->arguments['resolutionName'])); } elseif ($this->hasArgument('width') || $this->hasArgument('height')) { $resolutionSettings = array('width' => $this->arguments['width'], 'height' => $this->arguments['height'], 'quality' => $this->arguments['quality'], 'name' => implode('_', array('custom', $this->arguments['width'], $this->arguments['height'], $this->arguments['quality']))); $resolutionConfig = new Tx_Yag_Domain_Configuration_Image_ResolutionConfig(Tx_Yag_Domain_Configuration_ConfigurationBuilderFactory::getInstance(), $resolutionSettings); } else { $resolutionConfig = null; } return $resolutionConfig; }