/** * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager */ public function __construct(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager) { parent::__construct($objectManager); $querySettings = new Typo3QuerySettings(); $querySettings->setRespectStoragePage(false); $this->setDefaultQuerySettings($querySettings); }
/** * Translates a query an manipulates given query object * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria Criteria to be translated * @param \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery Query to add criteria to * @param \TYPO3\CMS\Extbase\Persistence\Repository $extbaseRepository Associated repository * @throws Exception * @return \TYPO3\CMS\Extbase\Persistence\Generic\Query */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria, \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery, \TYPO3\CMS\Extbase\Persistence\Repository $extbaseRepository) { if (!is_a($criteria, 'Tx_PtExtlist_Domain_QueryObject_OrCriteria')) { throw new Exception('Given criteria is not of type Tx_PtExtlist_Domain_QueryObject_Criteria --> cannot be translated by or criteria translator! 1326466193'); } /** * This is a little ugly here: * * As we do not create Extbase criterias from our generic pt_extlist criterias * but set the criterias directly on the created extbase query, we have to cheat * here and generate two helper queries, whenever a OR query has to be translated. * * After having translated the two criterias of the generic OR criteria, we * put them together again in a single extbase query. */ $tmpQuery1 = $extbaseRepository->createQuery(); $tmpQuery2 = $extbaseRepository->createQuery(); // translate first OR criteria by creating a new extbase query $tmpQuery1 = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_ExtBaseInterpreter::setCriteriaOnExtBaseQueryByCriteria($criteria->getFirstCriteria(), $tmpQuery1, $extbaseRepository); // translate second OR criteria by creating a new extbase query $tmpQuery2 = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_ExtBaseInterpreter::setCriteriaOnExtBaseQueryByCriteria($criteria->getSecondCriteria(), $tmpQuery2, $extbaseRepository); // put both translated criterias together again in a single extbase query if ($extbaseQuery->getConstraint()) { $extbaseQuery->matching($extbaseQuery->logicalAnd($extbaseQuery->getConstraint(), $extbaseQuery->logicalOr($tmpQuery1->getConstraint(), $tmpQuery2->getConstraint()))); } else { $extbaseQuery->matching($extbaseQuery->logicalOr($tmpQuery1->getConstraint(), $tmpQuery2->getConstraint())); } return $extbaseQuery; }
/** * Translates a query into an extbase query * * @param Tx_PtExtlist_Domain_QueryObject_Query $query * @param \TYPO3\CMS\Extbase\Persistence\Repository $repository * @return \TYPO3\CMS\Extbase\Persistence\Generic\Query */ public static function interpretQueryByRepository(Tx_PtExtlist_Domain_QueryObject_Query $query, \TYPO3\CMS\Extbase\Persistence\Repository $repository) { $emptyExtbaseQuery = $repository->createQuery(); /* @var $emptyExtbaseQuery \TYPO3\CMS\Extbase\Persistence\Generic\Query */ $constrainedExtbaseQuery = self::setAllCriteriasOnExtBaseQueryByQueryObject($query, $emptyExtbaseQuery, $repository); $limitedExtbaseQuery = self::setLimitOnExtBaseQueryByQueryObject($query, $constrainedExtbaseQuery); $orderedExtbaseQuery = self::setSortingOnExtBaseQueryByQueryObject($query, $limitedExtbaseQuery); return $orderedExtbaseQuery; }
/** * @test */ public function addSimpleObjectTest() { $newBlogTitle = 'aDi1oogh'; $newBlog = $this->objectManager->create('ExtbaseTeam\\BlogExample\\Domain\\Model\\Blog'); $newBlog->setTitle($newBlogTitle); /** @var \ExtbaseTeam\BlogExample\Domain\Repository\BlogRepository $blogRepository */ $this->blogRepository->add($newBlog); $this->persistentManager->persistAll(); $newBlogCount = $this->getDatabaseConnection()->exec_SELECTcountRows('*', 'tx_blogexample_domain_model_blog', 'title = \'' . $newBlogTitle . '\''); $this->assertSame(1, $newBlogCount); }
/** * Constructor of the repository. * Sets the respect storage page to false. * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager */ public function __construct(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager) { parent::__construct($objectManager); $this->defaultQuerySettings = new \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings(); $this->defaultQuerySettings->setRespectStoragePage(false); $this->defaultQuerySettings->setRespectSysLanguage(false); }
/** * Constructor of the repository. * Sets the respect storage page to false. * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager */ public function __construct() { parent::__construct(\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')); $this->defaultQuerySettings = new \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings(); $this->defaultQuerySettings->setRespectStoragePage(false); $this->defaultQuerySettings->setRespectSysLanguage(false); }
/** * All Queries withoud storagePID * * @return Tx_Extbase_Persistence_QueryInterface */ public function createQuery() { $query = parent::createQuery(); $query->getQuerySettings()->setRespectStoragePage(FALSE); $query->getQuerySettings()->setRespectSysLanguage(FALSE); return $query; }
/** * Initialize the repository for unrestricted access to page language overlays * * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager * @return void */ public function __construct(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager) { parent::__construct($objectManager); $querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings'); $querySettings->setRespectStoragePage(FALSE); $querySettings->setRespectSysLanguage(FALSE); $this->setDefaultQuerySettings($querySettings); }
/** * Overwrites createQuery method to overwrite storage pid */ public function createQuery() { $query = parent::createQuery(); if ($this->bookmarkStoragePid > 0) { $query->getQuerySettings()->setRespectStoragePage(FALSE); } return $query; }
/** * @param null $pageUid * * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface */ public function createQuery($pageUid = NULL) { $query = parent::createQuery(); if ($pageUid !== NULL) { $query->getQuerySettings()->setStoragePageIds(array($pageUid)); } return $query; }
/** * @param Elector $object */ public function remove($object) { foreach ($object->getElectorates() as $electorate) { $electorate->removeElector($object); $this->electorateRepository->update($electorate); } parent::remove($object); }
/** * @test */ public function magicCallMethodReturnsNullInFindOneBySomethingIfQueryReturnsEmptyRawResult() { $queryResultArray = array(); $this->mockQuery->expects($this->once())->method('equals')->with('foo', 'bar')->will($this->returnValue('matchCriteria')); $this->mockQuery->expects($this->once())->method('matching')->with('matchCriteria')->will($this->returnValue($this->mockQuery)); $this->mockQuery->expects($this->once())->method('setLimit')->with(1)->will($this->returnValue($this->mockQuery)); $this->mockQuery->expects($this->once())->method('execute')->will($this->returnValue($queryResultArray)); $this->assertNull($this->repository->findOneByFoo('bar')); }
/** * @return void */ protected function setDefaultOrderings() { $orderBy = $orderDir = ''; if ($this->request->hasArgument('orderBy') && in_array($this->request->getArgument('orderBy'), $this->allowedOrderBy)) { $orderBy = $this->request->getArgument('orderBy'); } if ($this->request->hasArgument('orderDir') && ($this->request->getArgument('orderDir') == \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING || $this->request->getArgument('orderDir') == \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING)) { $orderDir = $this->request->getArgument('orderDir'); } elseif ($this->settings['orderDir'] == \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING || $this->settings['orderDir'] == \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING) { $orderDir = $this->settings['orderDir']; } if (empty($orderDir)) { $orderDir = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING; } if ($orderBy) { $defaultOrderings = array_merge(array($orderBy => $orderDir), (array) $this->settings['orderings']); $this->repository->setDefaultOrderings($defaultOrderings); } }
/** * Constructor * * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager */ public function __construct(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager = NULL) { // Get the object manager if ($objectManager === NULL) { $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); } parent::__construct($objectManager); // Get an instance of the session storage handler $this->sessionStorage = $this->objectManager->get('SJBR\\SrFreecap\\Domain\\Session\\SessionStorage'); }
/** * @test */ public function addObjectSetsDefinedLanguageTest() { $newBlogTitle = 'aDi1oogh'; $newBlog = $this->objectManager->get('ExtbaseTeam\\BlogExample\\Domain\\Model\\Blog'); $newBlog->setTitle($newBlogTitle); $newBlog->_setProperty('_languageUid', -1); /** @var \ExtbaseTeam\BlogExample\Domain\Repository\BlogRepository $blogRepository */ $this->blogRepository->add($newBlog); $this->persistentManager->persistAll(); $newBlogRecord = $this->getDatabaseConnection()->exec_SELECTgetSingleRow('*', 'tx_blogexample_domain_model_blog', 'title = \'' . $newBlogTitle . '\''); $this->assertEquals(-1, $newBlogRecord['sys_language_uid']); }
/** * @test */ public function orderingByTitleRespectsEnglishTitles() { $query = $this->postRepository->createQuery(); $querySettings = $query->getQuerySettings(); $querySettings->setStoragePageIds(array(1)); $querySettings->setRespectSysLanguage(TRUE); $querySettings->setLanguageUid(1); $query->setOrderings(array('title' => QueryInterface::ORDER_ASCENDING)); /** @var Post[] $posts */ $posts = $query->execute()->toArray(); $this->assertCount(3, $posts); $this->assertSame('A EN:Post2', $posts[0]->getTitle()); $this->assertSame('B EN:Post1', $posts[1]->getTitle()); $this->assertSame('Post3', $posts[2]->getTitle()); }
/** * Action List * * @return void */ public function listAction() { $this->view->setVariablesToRender([$this->resourceArgumentName . 's']); $this->view->assign($this->resourceArgumentName . 's', $this->resourceRepository->findAll()); }
/** * Update the object immediately in DB. This is used for time-sensitive operation such as locks. * @param object $modifiedObject */ public function updateNow($modifiedObject) { parent::update($modifiedObject); $this->persistenceManager->persistAll(); }
/** * Overwrite createQuery to don't respect enable fields * * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface */ public function createQuery() { $query = parent::createQuery(); $query->getQuerySettings()->setIgnoreEnableFields(TRUE); return $query; }
/** * Find all ordered by the localized name * * @param string $orderDirection may be "asc" or "desc". Default is "asc". * @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface|array all entries ordered by localized name */ protected function findAllOrderedByLocalizedName($orderDirection = 'asc') { $entities = parent::findAll(); return $this->localizedSort($entities, $orderDirection); }
/** * Returns a query for objects of this repository * * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface * @api */ public function createQuery() { $query = parent::createQuery(); $querySettings = $query->getQuerySettings(); $querySettings->setRespectSysLanguage(FALSE); $querySettings->setRespectStoragePage(FALSE); if (method_exists($querySettings, 'setReturnRawQueryResult')) { $querySettings->setReturnRawQueryResult($this->useRawQueryResults); } return $query; }
/** * Creates query and makes sure that no Extbase magic is performed with * pid, languages, etc. * * Magic is cool but not on this case. * * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface */ public function createQuery() { $query = parent::createQuery(); $query->getQuerySettings()->setRespectStoragePage(false)->setIgnoreEnableFields(true)->setRespectSysLanguage(false); return $query; }
/** * call an event before adding an event to the repo * * @see Classes/Persistence/Tx_Extbase_Persistence_Repository::add() */ public function add($object) { $object->preCreate(); parent::add($object); }
/** * Returns a query for objects of this repository * * @return \TYPO3\CMS\Extbase\Persistence\QueryInterface * @api */ public function createQuery() { $query = parent::createQuery(); $query->getQuerySettings()->setRespectSysLanguage(FALSE); $query->getQuerySettings()->setRespectStoragePage(FALSE); $query->getQuerySettings()->setReturnRawQueryResult($this->useRawQueryResults); return $query; $query = $this->persistenceManager->createQueryForType($this->objectType); if ($this->defaultOrderings !== array()) { $query->setOrderings($this->defaultOrderings); } if ($this->defaultQuerySettings !== NULL) { $query->setQuerySettings(clone $this->defaultQuerySettings); } $query->getQuerySettings()->setRespectSysLanguage(FALSE); $query->getQuerySettings()->setRespectStoragePage(FALSE); $query->getQuerySettings()->setReturnRawQueryResult($this->useRawQueryResults); return $query; }
/** * @param object $object */ public function add($object) { $this->internalObjectCounter++; parent::add($object); if ($this->internalObjectCounter % $this->persistCacheAfterItems === 0) { $this->persistenceManager->persistAll(); } }
/** * (non-PHPdoc) * @see \TYPO3\CMS\Extbase\Persistence\Repository::update() */ public function update($modifiedObject) { parent::update($modifiedObject); $this->objectManager->get('Tx_Yag_PageCache_PageCacheManager')->markObjectUpdated($modifiedObject); }
/** * @param $fileObject * @param string $key * @return \TYPO3\CMS\Extbase\Error\Error|void * @throws \Exception */ public function add($fileObject, $key = '') { $baseStoragePath = $this->getBaseStoragePath($key); if ($fileObject->getIsSaved() == false) { $relativeDestinationPath = $this->getRelativeDestinationPath($fileObject, $baseStoragePath); $destinationFilename = $this->getDestinationFilename($fileObject); $results = $this->moveToDestination($relativeDestinationPath, $destinationFilename, $fileObject, true); if ($results instanceof \TYPO3\CMS\Extbase\Error\Error) { return $results; } else { $fileObject->setIsSaved(true); return parent::add($fileObject); } } else { return parent::add($fileObject); } }
/** * */ public function __construct() { $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); parent::__construct($objectManager); }
/** * Adds the incoming pair to the persistence layer * * @param PairInterface $pair Pair to persist * * @return void * * @throws IllegalObjectTypeException If incoming object is not of expected type */ public function attach(PairInterface $pair) { parent::add($pair); }