[TYPO3-mvc] How to access a repository from a flexform?

Michael Knoll mimi at kaktusteam.de
Tue Feb 1 12:23:28 CET 2011


Hi Richard,

please mind, that using the Dispatcher here is deprecated. As far as I 
see, this is only left for compatibility reasons... check out 
Bootstrap... I will post a solution as soon as I have some time for that!

Greetings

Michael




Am 01.02.11 11:40, schrieb Richard Bausek:
> Hi Michael,
>
> thanks a lot for your help!!!
>
> Your solution worked like a charm :)
>
> Greetings,
> Richard
>
>
>
> On 31.01.2011 23:26, Michael Knoll wrote:
>> Hi Richard,
>>
>> before Extbase 1.3.0 you had to run the ExtBase Dispatcher to resolve /
>> load dependencies like those you need for the repository to work.
>> Nowadays, you have the bootstrap that does this job. Perhaps you can
>> take a look at this (it is the old way!):
>>
>> class user_Tx_Yag_Utility_Flexform_ExtbaseDataProvider {
>>
>>
>>      /**
>>       * Album repository
>>       *
>>       * @var Tx_Yag_Domain_Repository_AlbumRepository
>>       */
>>      protected $albumRepository;
>>
>>
>>
>>      /**
>>       * Get a list of albums
>>       *
>>       * @param array $config
>>       * @return array $config
>>       */
>>      public function getAlbumList(array $config) {
>>
>>          $dispatcher = t3lib_div::makeInstance('Tx_Extbase_Dispatcher');
>>
>>          $albumList = array();
>>          if(!is_array($config['items'])) $config['items'] = array();
>>
>>          $this->albumRepository =
>> t3lib_div::makeInstance('Tx_Yag_Domain_Repository_AlbumRepository');
>>
>>          $query = $this->albumRepository->createQuery();
>>          $query->getQuerySettings()->setRespectStoragePage(FALSE);
>>          $albumCollection = $query->execute();
>>
>>          foreach($albumCollection as $album) {
>>              $albumList[] = array($album->getName(),$album->getUid());
>>          }
>>
>>          $config['items'] = array_merge($config['items'], $albumList);
>>
>>          return $config;
>>      }
>> }
>>
>>
>>
>> The Dispatcher still exists, but is obsolete, so take a look at the
>> bootstrap class!
>>
>>
>> Greetings
>>
>> Michael
>>
>>
>>
>>
>> Am 31.01.11 17:53, schrieb Richard Bausek:
>>> Hi list,
>>>
>>> for a frontend plugin configuration in a flexform I need to fill an
>>> "select" TCEForm field with data from my domain model based on the other
>>> settings from the flexform.
>>>
>>> To prevent code duplication and to have consistency between my frontend
>>> and backend output, I want to use my existing domain model repository to
>>> pull the domain objects into the flexform.
>>>
>>> I tried to create an userfunction with "itemsProcFunc" where I create an
>>> instance of my repository. But that doesn't seem to work as not all
>>> classes are loaded.
>>>
>>> Is it possible to use a repository outside of an frontend plugin or
>>> backend module? Are there any examples available or is there a
>>> recommended way of doing this?
>>>
>>> I'm using extbase and fluid 1.3.0alpha2 (can't change that ATM).
>>>
>>> Any help or clues is welcome!
>>>
>>> Thanks in advance,
>>> Richard
>>
>



More information about the TYPO3-project-typo3v4mvc mailing list