Exemplo n.º 1
0
 /**
  * Heart of the Controller. This is where all the action takes place
  *
  *   - The rows are fetched and stored depending on the type of output needed
  *
  *   - For export/printing all rows are selected.
  *
  *   - for displaying on screen paging parameters are used to display the
  *     required rows.
  *
  *   - also depending on output type of session or template rows are appropriately stored in session
  *     or template variables are updated.
  *
  *
  * @return void
  *
  */
 function run()
 {
     // get the column headers
     $columnHeaders =& $this->_object->getColumnHeaders($this->_action, $this->_output);
     // we need to get the rows if we are exporting or printing them
     if ($this->_output == self::EXPORT || $this->_output == self::SCREEN) {
         // get rows (without paging criteria)
         $rows = self::getRows($this);
         if ($this->_output == self::EXPORT) {
             // export the rows.
             CRM_Core_Report_Excel::writeCSVFile($this->_object->getExportFileName(), $columnHeaders, $rows);
             exit(1);
         } else {
             // assign to template and display them.
             self::$_template->assign_by_ref('rows', $rows);
             self::$_template->assign_by_ref('columnHeaders', $columnHeaders);
         }
     } else {
         // output requires paging/sorting capability
         $rows = self::getRows($this);
         $rowsEmpty = count($rows) ? false : true;
         $qill = $this->getQill();
         $summary = $this->getSummary();
         // if we need to store in session, lets update session
         if ($this->_output & self::SESSION) {
             $this->_store->set("{$this->_prefix}columnHeaders", $columnHeaders);
             $this->_store->set("{$this->_prefix}rows", $rows);
             $this->_store->set("{$this->_prefix}rowCount", $this->_total);
             $this->_store->set("{$this->_prefix}rowsEmpty", $rowsEmpty);
             $this->_store->set("{$this->_prefix}qill", $qill);
             $this->_store->set("{$this->_prefix}summary", $summary);
         } else {
             self::$_template->assign_by_ref("{$this->_prefix}pager", $this->_pager);
             self::$_template->assign_by_ref("{$this->_prefix}sort", $this->_sort);
             self::$_template->assign_by_ref("{$this->_prefix}columnHeaders", $columnHeaders);
             self::$_template->assign_by_ref("{$this->_prefix}rows", $rows);
             self::$_template->assign("{$this->_prefix}rowsEmpty", $rowsEmpty);
             self::$_template->assign("{$this->_prefix}qill", $qill);
             self::$_template->assign("{$this->_prefix}summary", $summary);
         }
         // always store the current pageID and sortID
         $this->_store->set($this->_prefix . CRM_Utils_Pager::PAGE_ID, $this->_pager->getCurrentPageID());
         $this->_store->set($this->_prefix . CRM_Utils_Sort::SORT_ID, $this->_sort->getCurrentSortID());
         $this->_store->set($this->_prefix . CRM_Utils_Sort::SORT_DIRECTION, $this->_sort->getCurrentSortDirection());
         $this->_store->set($this->_prefix . CRM_Utils_Sort::SORT_ORDER, $this->_sort->orderBy());
         $this->_store->set($this->_prefix . CRM_Utils_Pager::PAGE_ROWCOUNT, $this->_pager->_perPage);
     }
 }
Exemplo n.º 2
0
 /**
  * Heart of the Controller. This is where all the action takes place
  *
  *   - The rows are fetched and stored depending on the type of output needed
  *
  *   - For export/printing all rows are selected.
  *
  *   - for displaying on screen paging parameters are used to display the
  *     required rows.
  *
  *   - also depending on output type of session or template rows are appropriately stored in session
  *     or template variables are updated.
  *
  *
  * @return void
  *
  */
 function run()
 {
     // get the column headers
     $columnHeaders =& $this->_object->getColumnHeaders($this->_action, $this->_output);
     // we need to get the rows if we are exporting or printing them
     if ($this->_output == CRM_CORE_SELECTOR_CONTROLLER_EXPORT || $this->_output == CRM_CORE_SELECTOR_CONTROLLER_SCREEN) {
         // get rows (without paging criteria)
         $rows =& $this->_object->getRows($this->_action, 0, 0, $this->_sort, $this->_output);
         if ($this->_output == CRM_CORE_SELECTOR_CONTROLLER_EXPORT) {
             // export the rows.
             CRM_Core_Report_Excel::writeCSVFile($this->_object->getExportFileName(), $columnHeaders, $rows);
             exit(1);
         } else {
             // assign to template and display them.
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign_by_ref('rows', $rows);
         }
     } else {
         // output requires paging/sorting capability
         // get rows with paging criteria
         $rows =& $this->_object->getRows($this->_action, $this->_pagerOffset, $this->_pagerRowCount, $this->_sort, $this->_output);
         $rowsEmpty = count($rows) ? false : true;
         $qill = $this->getQill();
         // if we need to store in session, lets update session
         if ($this->_output & CRM_CORE_SELECTOR_CONTROLLER_SESSION) {
             $this->_store->set('columnHeaders', $columnHeaders);
             $this->_store->set('rows', $rows);
             $this->_store->set('rowCount', $this->_total);
             $this->_store->set('rowsEmpty', $rowsEmpty);
             $this->_store->set('qill', $qill);
         } else {
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign_by_ref('pager', $this->_pager);
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign_by_ref('sort', $this->_sort);
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign_by_ref('columnHeaders', $columnHeaders);
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign_by_ref('rows', $rows);
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign('rowsEmpty', $rowsEmpty);
             $GLOBALS['_CRM_CORE_SELECTOR_CONTROLLER']['_template']->assign('qill', $qill);
         }
         // always store the current pageID and sortID
         $this->_store->set(CRM_UTILS_PAGER_PAGE_ID, $this->_pager->getCurrentPageID());
         $this->_store->set(CRM_UTILS_SORT_SORT_ID, $this->_sort->getCurrentSortID());
         $this->_store->set(CRM_UTILS_SORT_SORT_DIRECTION, $this->_sort->getCurrentSortDirection());
         $this->_store->set(CRM_UTILS_SORT_SORT_ORDER, $this->_sort->orderBy());
         $this->_store->set(CRM_UTILS_PAGER_PAGE_ROWCOUNT, $this->_pager->_perPage);
     }
 }
 /**
  * Heart of the Controller. This is where all the action takes place
  *
  *   - The rows are fetched and stored depending on the type of output needed
  *
  *   - For export/printing all rows are selected.
  *
  *   - for displaying on screen paging parameters are used to display the
  *     required rows.
  *
  *   - also depending on output type of session or template rows are appropriately stored in session
  *     or template variables are updated.
  *
  *
  * @return void
  *
  */
 function run()
 {
     // get the column headers
     $columnHeaders =& $this->_object->getColumnHeaders($this->_action, $this->_output);
     $contextArray = explode('_', get_class($this->_object));
     $contextName = strtolower($contextArray[1]);
     // fix contribute and member
     if ($contextName == 'contribute') {
         $contextName = 'contribution';
     } elseif ($contextName == 'member') {
         $contextName = 'membership';
     }
     // we need to get the rows if we are exporting or printing them
     if ($this->_output == self::EXPORT || $this->_output == self::SCREEN) {
         // get rows (without paging criteria)
         $rows = self::getRows($this);
         CRM_Utils_Hook::searchColumns($contextName, $columnHeaders, $rows, $this);
         if ($this->_output == self::EXPORT) {
             // export the rows.
             CRM_Core_Report_Excel::writeCSVFile($this->_object->getExportFileName(), $columnHeaders, $rows);
             CRM_Utils_System::civiExit();
         } else {
             // assign to template and display them.
             self::$_template->assign_by_ref('rows', $rows);
             self::$_template->assign_by_ref('columnHeaders', $columnHeaders);
         }
     } else {
         // output requires paging/sorting capability
         $rows = self::getRows($this);
         CRM_Utils_Hook::searchColumns($contextName, $columnHeaders, $rows, $this);
         $rowsEmpty = count($rows) ? FALSE : TRUE;
         $qill = $this->getQill();
         $summary = $this->getSummary();
         // if we need to store in session, lets update session
         if ($this->_output & self::SESSION) {
             $this->_store->set("{$this->_prefix}columnHeaders", $columnHeaders);
             if ($this->_dynamicAction) {
                 $this->_object->removeActions($rows);
             }
             $this->_store->set("{$this->_prefix}rows", $rows);
             $this->_store->set("{$this->_prefix}rowCount", $this->_total);
             $this->_store->set("{$this->_prefix}rowsEmpty", $rowsEmpty);
             $this->_store->set("{$this->_prefix}qill", $qill);
             $this->_store->set("{$this->_prefix}summary", $summary);
         } else {
             self::$_template->assign_by_ref("{$this->_prefix}pager", $this->_pager);
             self::$_template->assign_by_ref("{$this->_prefix}sort", $this->_sort);
             self::$_template->assign_by_ref("{$this->_prefix}columnHeaders", $columnHeaders);
             self::$_template->assign_by_ref("{$this->_prefix}rows", $rows);
             self::$_template->assign("{$this->_prefix}rowsEmpty", $rowsEmpty);
             self::$_template->assign("{$this->_prefix}qill", $qill);
             self::$_template->assign("{$this->_prefix}summary", $summary);
         }
         // always store the current pageID and sortID
         $this->_store->set($this->_prefix . CRM_Utils_Pager::PAGE_ID, $this->_pager->getCurrentPageID());
         $this->_store->set($this->_prefix . CRM_Utils_Sort::SORT_ID, $this->_sort->getCurrentSortID());
         $this->_store->set($this->_prefix . CRM_Utils_Sort::SORT_DIRECTION, $this->_sort->getCurrentSortDirection());
         $this->_store->set($this->_prefix . CRM_Utils_Sort::SORT_ORDER, $this->_sort->orderBy());
         $this->_store->set($this->_prefix . CRM_Utils_Pager::PAGE_ROWCOUNT, $this->_pager->_perPage);
     }
 }