/** * @param Tx_Typo3Agencies_Domain_Model_Filter $filter * @param Tx_Typo3Agencies_Domain_Model_Order $order * @return array|\Tx_Extbase_Persistence_QueryResultInterface */ public function findByNameOrCity(Tx_Typo3Agencies_Domain_Model_Filter $filter, Tx_Typo3Agencies_Domain_Model_Order $order) { $query = $this->createQuery(); $searchString = '%' . mysql_real_escape_string($filter->getLocation()) . '%'; if ($order) { $ordering = $order->getOrderings(); $query->setOrderings($ordering); } $query->matching($query->logicalAnd(array($query->equals('approved', TRUE), $query->logicalOr(array($query->equals('payed_until_date', 0), $query->greaterThanOrEqual('payed_until_date', time()))), $query->logicalOr(array($query->like('name', $searchString), $query->like('city', $searchString)))))); return $query->execute(); }