/** * Format search results. * * @param string $order * @param array $items * @param array $folders * @param array $communities * @param array $users * @return array * @throws Zend_Exception */ private function _formatResults($order, $items, $folders, $communities, $users) { foreach ($users as $key => $user) { $users[$key]->name = $user->getLastname(); $users[$key]->date_update = $user->getCreation(); } foreach ($communities as $key => $community) { $communities[$key]->date_update = $community->getCreation(); } $results = array_merge($folders, $items, $communities, $users); Zend_Loader::loadClass('SortdaoComponent', BASE_PATH . '/core/controllers/components'); Zend_Loader::loadClass('DateComponent', BASE_PATH . '/core/controllers/components'); $sortdaoComponent = new SortdaoComponent(); $dateComponent = new DateComponent(); switch ($order) { case 'relevance': $sortdaoComponent->field = 'score'; $sortdaoComponent->field2 = 'name'; $sortdaoComponent->order = 'desc'; $sortdaoComponent->order2 = 'asc'; foreach ($results as $key => $result) { if (!isset($result->score)) { $results[$key]->score = 1; } } usort($results, array($sortdaoComponent, 'sortByNumberThenName')); break; case 'name': $sortdaoComponent->field = 'name'; $sortdaoComponent->order = 'asc'; usort($results, array($sortdaoComponent, 'sortByName')); break; case 'date': $sortdaoComponent->field = 'date_update'; $sortdaoComponent->order = 'asc'; usort($results, array($sortdaoComponent, 'sortByDate')); break; case 'view': $sortdaoComponent->field = 'view'; $sortdaoComponent->order = 'desc'; usort($results, array($sortdaoComponent, 'sortByNumber')); break; default: throw new Zend_Exception('Error in order parameter, not one of the expected values.'); break; } $resultsArray = array(); foreach ($results as $result) { $tmp = $result->toArray(); if ($result instanceof UserDao) { $tmp['resultType'] = 'user'; $tmp['formattedDate'] = $dateComponent->formatDate($result->getCreation()); } if ($result instanceof ItemDao) { $tmp['resultType'] = 'item'; $tmp['formattedDate'] = $dateComponent->formatDate($result->getDateUpdate()); } if ($result instanceof CommunityDao) { $tmp['resultType'] = 'community'; $tmp['formattedDate'] = $dateComponent->formatDate($result->getCreation()); } if ($result instanceof FolderDao) { $tmp['resultType'] = 'folder'; $tmp['formattedDate'] = $dateComponent->formatDate($result->getDateUpdate()); } unset($tmp['password']); unset($tmp['email']); $resultsArray[] = $tmp; } return $resultsArray; }
/** * undocumented function * * @return void * @access public */ function admin_stats() { $this->_handleTimePeriod(); $format = '%Y-%m-%d'; if ($this->diagramType == 'hour') { $format = '%Y-%m-%d %H:00'; } $gifts = $this->Gift->find('all', array('conditions' => array('office_id' => $this->Session->read('Office.id'), "DATE_FORMAT(created, '" . $format . "') >= '" . $this->startDate . "'", "DATE_FORMAT(created, '" . $format . "') <= '" . $this->endDate . "'"), 'fields' => array('created', 'amount', 'archived', 'complete'))); $result = array(); $type = $this->diagramType; $items = DateComponent::diff($type, $this->startDate, $this->endDate, false); foreach ($items as $item) { $result[$item] = array(); foreach ($gifts as $gift) { if (DateComponent::same($gift['Gift']['created'], $item, $type)) { $result[$item][] = $gift; } } } $this->set(compact('result', 'gifts', 'months', 'type')); }