コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
ファイル: gifts_controller.php プロジェクト: stripthis/donate
 /**
  * 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'));
 }