public function getAllOffers() { $filterString = 'Active = true'; $catID = $this->getRequest()->getVar('catid'); if ($catID) { if (strlen($filterString) > 0) { $filterString .= ' AND '; } $filterString .= 'CategoryID = ' . intval($catID); } $offers = Offer::get('Offer', $filterString); $search = $this->getRequest()->getVar('search'); if ($search) { $offers = $offers->filterAny(array('Name:PartialMatch' => $search, 'Description:PartialMatch' => $search)); //('SearchFields:fulltext', $search); } $sort = Convert::raw2sql($this->getRequest()->getVar('sort')); if ($sort) { if (strlen($sort) > 2) { $dir = substr($sort, 0, 1); $field = substr($sort, 1); if ($field == 'Name' || $field == 'LastEdited') { if ($dir == 'a') { $offers = $offers->sort(Convert::raw2sql($field) . " ASC"); } else { $offers = $offers->sort(Convert::raw2sql($field) . " DESC"); } } else { die("Undefined field for sorting"); } } } return new PaginatedList($offers, $this->request); }
private function sendNewOffersNewsletter() { $sevenDaysAgo = strtotime("-7 day"); $offers = Offer::get('Offer', 'Active = 1', 'Created DESC')->filter(array('Created:GreaterThan' => date('Y-m-d', $sevenDaysAgo) . ' 00:00:00'))->limit(10); $members = Member::get(); foreach ($members as $member) { if ($member->inGroup("Helfer")) { $mail = new NewOffersNewsletterEmail($this, $member, $offers); $mail->send(); } } die('Success'); }