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

Richard Bausek richard.bausek at moccu.com
Tue Feb 1 11:40:11 CET 2011


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