Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * @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');
 }
Example #5
0
 /**
  * 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;
 }
Example #6
0
 /**
  * @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);
 }
Example #7
0
 /**
  * @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;
 }
Example #8
0
 /**
  * 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];
 }
Example #9
0
 /**
  * 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;
 }
Example #10
0
 /**
  * @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');
 }
Example #11
0
 /**
  * (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;
         }
     }
 }
Example #12
0
 /**
  * @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;
 }
Example #13
0
 /**
  * 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);
     }
 }
Example #14
0
 /**
  * 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;
 }
Example #15
0
 /**
  * @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];
 }
Example #17
0
 /**
  * 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();
 }
Example #19
0
 /**
  * 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));
 }
Example #20
0
 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();
 }
Example #22
0
 /**
  * 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;
 }
Example #23
0
 /**
  * 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;
 }
Example #24
0
 /**
  * @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;
 }