/** * returns the count of newly added subscribers between dates * * @param string $date_start YYYY-MM-DD date format * @param string $date_end YYYY-MM-DD date format * @param array $sub_ids OPTIONAL filter sub ids * @param boolean $internal OPTIONAL filter internal */ public function registeredBetween($date_start, $date_end, $sub_ids = array(), $internal = null) { // include the hours, minutes and seconds on the date range $date_start = $date_start . ' 00:00:00'; $date_end = $date_end . ' 23:59:59'; // handle caching. Only if NOT within the current date $cache = Zend_Registry::get('cache'); $key = __METHOD__ . '_' . $date_start . '_' . $date_end . '_' . implode("_", $sub_ids) . '_' . $internal; $cache_key = Base_Utils_String::slug($key); if ($date_end < date('Y-m-d', time()) && ($data = $cache->load($cache_key))) { return $data; } // get database adapter $db = Zend_Registry::get('db'); // define select query $select = $db->select()->from(array('cu' => 'common_users'), array('count' => 'COUNT(cu.id)'))->where('cu.date_created >= ?', $date_start)->where('cu.date_created <= ?', $date_end); if (!empty($sub_ids)) { $select->where('cu.sub_id IN (?)', $sub_ids); } if ($internal != '') { $select->where('cu.internal = ?', $internal); } $count = $db->fetchOne($select); $cache->save($count, $cache_key); return $count; }
public function pendingOrdersAction() { $this->_helper->viewRenderer->setNoRender(true); $this->getResponse()->setHeader('Content-Type', 'text/html'); $cache = Zend_Registry::get('cache'); $date_start = date('Y-m-d') . ' 00:00:00'; $date_end = date('Y-m-d') . ' 23:59:59'; $key = __METHOD__ . '_' . $date_start . '_' . $date_end . '_' . 'pendingOrders'; $cache_key = Base_Utils_String::slug($key); if ($cache_date_end < date('Y-m-d', time()) && ($result = $cache->load($cache_key))) { $this->getResponse()->setBody(Zend_Json::encode($result)); return; } // init variables $coModel = Base::getModel('Common_Orders'); $select = $coModel->select()->setIntegrityCheck(false)->from(array('co' => 'common_orders'), array('count' => 'count(co.id)'))->where("co.status = 'PENDING'"); $order = $coModel->fetchRow($select); if (!$order) { $result['errcode'] = 1; $result['errmsg'] = "errmsg"; } else { $result = array('errcode' => 0, 'errmsg' => 'OK', 'data' => $order->count, 'link' => '/common/orders?status=PENDING'); $cache->save($result, $cache_key); } $this->getResponse()->setBody(Zend_Json::encode($result)); }