/**
  * Find category by import source and import id
  *
  * @param string $importSource import source
  * @param integer $importId import id
  * @return Tx_Extbase_Persistence_QueryInterface
  */
 public function findOneByImportSourceAndImportId($importSource, $importId)
 {
     $query = $this->createQuery();
     $query->getQuerySettings()->setRespectStoragePage(FALSE);
     if (Tx_News_Utility_Compatibility::isEqualOrHigherSixZero()) {
         $query->getQuerySettings()->setIgnoreEnableFields(TRUE);
     } else {
         $query->getQuerySettings()->setRespectEnableFields(FALSE);
     }
     return $query->matching($query->logicalAnd($query->equals('importSource', $importSource), $query->equals('importId', $importId)))->execute()->getFirst();
 }
 protected function generateQuery(Tx_News_Domain_Model_DemandInterface $demand, $respectEnableFields = TRUE)
 {
     $query = $this->createQuery();
     $query->getQuerySettings()->setRespectStoragePage(FALSE);
     $constraints = $this->createConstraintsFromDemand($query, $demand);
     // Call hook functions for additional constraints
     if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['Domain/Repository/AbstractDemandedRepository.php']['findDemanded'])) {
         $params = array('demand' => $demand, 'respectEnableFields' => &$respectEnableFields, 'query' => $query, 'constraints' => &$constraints);
         foreach ($GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['Domain/Repository/AbstractDemandedRepository.php']['findDemanded'] as $reference) {
             t3lib_div::callUserFunction($reference, $params, $this);
         }
     }
     if ($respectEnableFields === FALSE) {
         if (Tx_News_Utility_Compatibility::isEqualOrHigherSixZero()) {
             $query->getQuerySettings()->setIgnoreEnableFields(TRUE);
         } else {
             $query->getQuerySettings()->setRespectEnableFields(FALSE);
         }
         $constraints[] = $query->equals('deleted', 0);
     }
     if (!empty($constraints)) {
         $query->matching($query->logicalAnd($constraints));
     }
     if ($orderings = $this->createOrderingsFromDemand($demand)) {
         $query->setOrderings($orderings);
     }
     // @todo consider moving this to a separate function as well
     if ($demand->getLimit() != NULL) {
         $query->setLimit((int) $demand->getLimit());
     }
     // @todo consider moving this to a separate function as well
     if ($demand->getOffset() != NULL) {
         $query->setOffset((int) $demand->getOffset());
     }
     return $query;
 }
 /**
  * Override default findByUid function to enable also the option to turn of
  * the enableField setting
  *
  * @param integer $uid id of record
  * @param boolean $respectEnableFields if set to false, hidden records are shown
  * @return Tx_News_Domain_Model_News
  */
 public function findByUid($uid, $respectEnableFields = TRUE)
 {
     $query = $this->createQuery();
     $query->getQuerySettings()->setRespectStoragePage(FALSE);
     $query->getQuerySettings()->setRespectSysLanguage(FALSE);
     if (Tx_News_Utility_Compatibility::isEqualOrHigherSixZero()) {
         $query->getQuerySettings()->setIgnoreEnableFields(!$respectEnableFields);
     } else {
         $query->getQuerySettings()->setRespectEnableFields(FALSE);
     }
     return $query->matching($query->logicalAnd($query->equals('uid', $uid), $query->equals('deleted', 0)))->execute()->getFirst();
 }