예제 #1
0
 protected function buildAccessibleTagCloudDataProvider($filterSettings)
 {
     $accessibleClassName = $this->buildAccessibleProxy('Tx_PtExtlist_Domain_Model_Filter_DataProvider_TagCloud');
     $accessibleTagCloudDataProvider = new $accessibleClassName();
     /* @var $accessibleTagCloudDataProvider Tx_PtExtlist_Domain_Model_Filter_DataProvider_TagCloud */
     $filterConfiguration = new Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig($this->configurationBuilderMock, $filterSettings, 'test');
     $dataBackend = Tx_PtExtlist_Domain_DataBackend_DataBackendFactory::createDataBackend($this->configurationBuilderMock);
     $accessibleTagCloudDataProvider->_injectDataBackend($dataBackend);
     $accessibleTagCloudDataProvider->_injectFilterConfig($filterConfiguration);
     $accessibleTagCloudDataProvider->init();
     return $accessibleTagCloudDataProvider;
 }
예제 #2
0
 /**
  * Get the databackend by a custom list configuration ts array
  * The Typoscript is identified by the given listIdentifier and merged with the extlist configuration
  *
  * @param array $customTSArray Custom typoscript list configuration in extBase format
  * @param string $listIdentifier a listIdentifier to identify the custom list
  * @return Tx_PtExtlist_Domain_DataBackend_DataBackendInterface
  */
 public static function getDataBackendByCustomConfiguration(array $customTSArray, $listIdentifier)
 {
     try {
         $configurationBuilderFactory = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory');
         /* @var $configurationBuilderFactory Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory */
         $configurationBuilder = $configurationBuilderFactory->getInstance($listIdentifier);
     } catch (Exception $e) {
         $extListTs = self::getExtListTyposcriptSettings($listIdentifier, $customTSArray);
         self::loadLifeCycleManager();
         // TODO Remove this, once we have DI
         $configurationBuilderFactory = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory');
         /* @var $configurationBuilderFactory Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory */
         $configurationBuilderFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory');
         /* @var $configurationBuilderFactory Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory */
         $configurationBuilderFactory->setSettings($extListTs);
         $configurationBuilder = $configurationBuilderFactory->getInstance($listIdentifier);
     }
     return Tx_PtExtlist_Domain_DataBackend_DataBackendFactory::createDataBackend($configurationBuilder);
 }
 /**
  * Get the databackend by a custom list configuration ts array
  * The Typoscript is identified by the given listIdentifier and merged with the extlist configuration
  *
  * @param array $customTSArray Custom typoscript list configuration in extBase format
  * @param string $listIdentifier a listIdentifier to identify the custom list
  * @param boolean $useCache
  * @param null|int $bookmarkUidToRestore
  * @return Tx_PtExtlist_ExtlistContext_ExtlistContext
  */
 public static function getContextByCustomConfiguration(array $customTSArray, $listIdentifier, $useCache = TRUE, $bookmarkUidToRestore = NULL)
 {
     if (!array_key_exists($listIdentifier, self::$staticInstances) || !$useCache) {
         self::$staticObjectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
         if ($useCache) {
             try {
                 // TODO Remove this, once we have DI
                 $configurationBuilderFactory = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory');
                 /* @var $configurationBuilderFactory Tx_PtExtlist_Domain_Configuration_ConfigurationBuilderFactory */
                 $configurationBuilder = $configurationBuilderFactory->getInstance($listIdentifier);
             } catch (Exception $e) {
                 $configurationBuilder = self::buildConfigurationBuilder($customTSArray, $listIdentifier);
             }
         } else {
             $configurationBuilder = self::buildConfigurationBuilder($customTSArray, $listIdentifier, TRUE);
         }
         if ($bookmarkUidToRestore) {
             $bookmarkManagerFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManagerFactory');
             /* @var $bookmarkManagerFactory Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManagerFactory */
             $bookmarkManager = $bookmarkManagerFactory->getInstanceByConfigurationBuilder($configurationBuilder);
             $bookmarkManager->restoreBookmarkByUid($bookmarkUidToRestore);
         }
         $extListBackend = Tx_PtExtlist_Domain_DataBackend_DataBackendFactory::createDataBackend($configurationBuilder, !$useCache);
         self::$staticInstances[$listIdentifier] = self::buildContext($extListBackend);
     }
     return self::$staticInstances[$listIdentifier];
 }
예제 #4
0
 protected function buildAccessibleGroupDataProvider($filterSettings = null)
 {
     $accessibleClassName = $this->buildAccessibleProxy('Tx_PtExtlist_Domain_Model_Filter_DataProvider_GroupData');
     $accessibleGroupDataProvider = new $accessibleClassName();
     /* @var $accessibleGroupDataProvider Tx_PtExtlist_Domain_Model_Filter_DataProvider_GroupData */
     $this->defaultFilterSettings = $filterSettings;
     if (!$this->defaultFilterSettings) {
         $this->defaultFilterSettings = array('filterIdentifier' => 'test', 'filterClassName' => 'Tx_PtExtlist_Domain_Model_Filter_SelectFilter', 'partialPath' => 'Filter/SelectFilter', 'fieldIdentifier' => 'field1', 'displayFields' => 'field1,field2', 'filterField' => 'field3', 'invert' => '0');
     }
     $filterConfiguration = new Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig($this->configurationBuilderMock, $this->defaultFilterSettings, 'test');
     $dataBackend = Tx_PtExtlist_Domain_DataBackend_DataBackendFactory::createDataBackend($this->configurationBuilderMock);
     $accessibleGroupDataProvider->_injectDataBackend($dataBackend);
     $accessibleGroupDataProvider->_injectFilterConfig($filterConfiguration);
     $accessibleGroupDataProvider->init();
     return $accessibleGroupDataProvider;
 }