X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FPage%2FContributionPage.php;h=d432da34a8be4d31605f90648904cd78e2560a77;hb=1633df8c26f4f5f0d52eb3fa3a0a72aaa4f29bc7;hp=5d4ae72f73ae3557135806b7c0b4d3853fdc9616;hpb=39de6fd54b9843705d13cb9f70fbcc6296103670;p=civicrm-core.git diff --git a/CRM/Contribute/Page/ContributionPage.php b/CRM/Contribute/Page/ContributionPage.php index 5d4ae72f73..d432da34a8 100644 --- a/CRM/Contribute/Page/ContributionPage.php +++ b/CRM/Contribute/Page/ContributionPage.php @@ -23,7 +23,7 @@ | GNU Affero General Public License or the licensing of CiviCRM, | | see the CiviCRM license FAQ at http://civicrm.org/licensing | +--------------------------------------------------------------------+ -*/ + */ /** * @@ -56,18 +56,22 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { private static $_configureActionLinks; private static $_onlineContributionLinks; - private static $_links = NULL; - + /** + * @var CRM_Utils_Pager + */ protected $_pager = NULL; + /** + * @var string + */ protected $_sortByCharacter; /** * Get the action links for this page. * - * @return array $_actionLinks - * - */ function &actionLinks() { + * @return array + */ + public function &actionLinks() { // check if variable _actionsLinks is populated if (!isset(self::$_actionLinks)) { // helper variable for nicer formatting @@ -107,10 +111,9 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { /** * Get the configure action links for this page. * - * @return array $_configureActionLinks - * + * @return array */ - function &configureActionLinks() { + public function &configureActionLinks() { // check if variable _actionsLinks is populated if (!isset(self::$_configureActionLinks)) { $urlString = 'civicrm/admin/contribute/'; @@ -189,10 +192,9 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { /** * Get the online contribution links. * - * @return array $_onlineContributionLinks. - * + * @return array */ - function &onlineContributionLinks() { + public function &onlineContributionLinks() { if (!isset(self::$_onlineContributionLinks)) { $urlString = 'civicrm/contribute/transact'; $urlParams = 'reset=1&id=%%id%%'; @@ -221,10 +223,9 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { /** * Get the contributions links. * - * @return array $_contributionLinks - * + * @return array */ - function &contributionLinks() { + public function &contributionLinks() { if (!isset(self::$_contributionLinks)) { //get contribution dates. $dates = CRM_Contribute_BAO_Contribution::getContributionDates(); @@ -271,11 +272,9 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { * type of action and executes that action. * Finally it calls the parent's run method. * - * @return void - * @access public - * + * @return mixed */ - function run() { + public function run() { // get the requested action $action = CRM_Utils_Request::retrieve('action', 'String', // default to 'browse' @@ -289,18 +288,21 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { ); // set breadcrumb to append to 2nd layer pages - $breadCrumb = array(array('title' => ts('Manage Contribution Pages'), + $breadCrumb = array( + array( + 'title' => ts('Manage Contribution Pages'), 'url' => CRM_Utils_System::url(CRM_Utils_System::currentPath(), 'reset=1' ), - )); + ), + ); // what action to take ? if ($action & CRM_Core_Action::ADD) { $session = CRM_Core_Session::singleton(); $session->pushUserContext(CRM_Utils_System::url(CRM_Utils_System::currentPath(), - 'action=browse&reset=1' - )); + 'action=browse&reset=1' + )); $controller = new CRM_Contribute_Controller_ContributionPage(NULL, $action); CRM_Utils_System::setTitle(ts('Manage Contribution Page')); @@ -319,6 +321,9 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { } } elseif ($action & CRM_Core_Action::COPY) { + // @todo Unused local variable can be safely removed. + // But are there any side effects of CRM_Core_Session::singleton() that we + // need to preserve? $session = CRM_Core_Session::singleton(); CRM_Core_Session::setStatus(ts('A copy of the contribution page has been created'), ts('Successfully Copied'), 'success'); $this->copy(); @@ -328,8 +333,8 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { $session = CRM_Core_Session::singleton(); $session->pushUserContext(CRM_Utils_System::url(CRM_Utils_System::currentPath(), - 'reset=1&action=browse' - )); + 'reset=1&action=browse' + )); $id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE, 0 @@ -367,13 +372,12 @@ AND cp.page_type = 'contribute' } /** - * This function is to make a copy of a contribution page, including + * make a copy of a contribution page, including * all the fields in the page * * @return void - * @access public */ - function copy() { + public function copy() { $gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this, TRUE, 0, 'GET' ); @@ -386,17 +390,17 @@ AND cp.page_type = 'contribute' /** * Browse all contribution pages * - * @param null $action - * - * @return void - * @access public - * @static + * @param mixed $action + * Unused parameter. */ - function browse($action = NULL) { + public function browse($action = NULL) { $this->_sortByCharacter = CRM_Utils_Request::retrieve('sortByCharacter', 'String', $this ); + // @todo Unused local variable can be safely removed. + // But are there any side effects of CRM_Utils_Request::retrieve() that we + // need to preserve? $createdId = CRM_Utils_Request::retrieve('cid', 'Positive', $this, FALSE, 0 ); @@ -469,15 +473,15 @@ ORDER BY title asc $action += array_sum(array_keys(self::contributionLinks())); if ($dao->is_active) { - $action -= CRM_Core_Action::ENABLE; + $action -= (int) CRM_Core_Action::ENABLE; } else { - $action -= CRM_Core_Action::DISABLE; + $action -= (int) CRM_Core_Action::DISABLE; } //CRM-4418 if (!$allowToDelete) { - $action -= CRM_Core_Action::DELETE; + $action -= (int) CRM_Core_Action::DELETE; } //build the configure links. @@ -534,9 +538,8 @@ ORDER BY title asc } } - function search() { - if (isset($this->_action) & - (CRM_Core_Action::ADD | + public function search() { + if (isset($this->_action) & (CRM_Core_Action::ADD | CRM_Core_Action::UPDATE | CRM_Core_Action::DELETE ) @@ -560,9 +563,10 @@ ORDER BY title asc * * @return int|string */ - function whereClause(&$params, $sortBy = TRUE) { - $values = $clauses = array(); - $title = $this->get('title'); + public function whereClause(&$params, $sortBy = TRUE) { + // @todo Unused local variable can be safely removed. + $values = $clauses = array(); + $title = $this->get('title'); $createdId = $this->get('cid'); if ($createdId) { @@ -579,7 +583,7 @@ ORDER BY title asc } } - $value = $this->get( 'financial_type_id' ); + $value = $this->get('financial_type_id'); $val = array(); if ($value) { if (is_array($value)) { @@ -590,22 +594,17 @@ ORDER BY title asc } $type = implode(',', $val); } - - $clauses[] = "financial_type_id IN ({$type})"; + // @todo Variable 'type' might not have been defined. + $clauses[] = "financial_type_id IN ({$type})"; } - if ($sortBy && - $this->_sortByCharacter !== NULL - ) { + if ($sortBy && $this->_sortByCharacter !== NULL) { $clauses[] = "title LIKE '" . strtolower(CRM_Core_DAO::escapeWildCardString($this->_sortByCharacter)) . "%'"; } - $campainIds = $this->get('campaign_id'); - if (!CRM_Utils_System::isNull($campainIds)) { - if (!is_array($campainIds)) { - $campaignIds = array($campaignIds); - } - $clauses[] = '( campaign_id IN ( ' . implode(' , ', array_values($campainIds)) . ' ) )'; + $campaignIds = $this->getCampaignIds(); + if (count($campaignIds) >= 1) { + $clauses[] = '( campaign_id IN ( ' . implode(' , ', $campaignIds) . ' ) )'; } if (empty($clauses)) { @@ -620,11 +619,28 @@ ORDER BY title asc return implode(' AND ', $clauses); } + /** + * Gets the campaign ids from the session. + * + * @return int[] + */ + public function getCampaignIds() { + // The unfiltered value from the session cannot be trusted, it needs to be + // processed to get a clean array of positive integers. + $ids = array(); + foreach ((array) $this->get('campaign_id') as $id) { + if ((string) (int) $id === (string) $id && $id > 0) { + $ids[] = $id; + } + } + return $ids; + } + /** * @param $whereClause * @param array $whereParams */ - function pager($whereClause, $whereParams) { + public function pager($whereClause, $whereParams) { $params['status'] = ts('Contribution %%StatusMessage%%'); $params['csvString'] = NULL; @@ -637,8 +653,8 @@ ORDER BY title asc $query = " SELECT count(id) - FROM civicrm_contribution_page - WHERE $whereClause"; +FROM civicrm_contribution_page +WHERE $whereClause"; $params['total'] = CRM_Core_DAO::singleValueQuery($query, $whereParams); @@ -650,13 +666,13 @@ SELECT count(id) * @param $whereClause * @param array $whereParams */ - function pagerAtoZ($whereClause, $whereParams) { + public function pagerAtoZ($whereClause, $whereParams) { $query = " - SELECT DISTINCT UPPER(LEFT(title, 1)) as sort_name - FROM civicrm_contribution_page - WHERE $whereClause - ORDER BY LEFT(title, 1) +SELECT DISTINCT UPPER(LEFT(title, 1)) as sort_name +FROM civicrm_contribution_page +WHERE $whereClause +ORDER BY LEFT(title, 1) "; $dao = CRM_Core_DAO::executeQuery($query, $whereParams); @@ -665,12 +681,12 @@ SELECT count(id) } /** - * @param $sectionsInfo + * @param array $sectionsInfo * * @return array */ - function formatConfigureLinks($sectionsInfo) { - //build the formatted configure links. + public function formatConfigureLinks($sectionsInfo) { + // build the formatted configure links. $formattedConfLinks = self::configureActionLinks(); foreach ($formattedConfLinks as $act => & $link) { $sectionName = CRM_Utils_Array::value('uniqueName', $link); @@ -678,11 +694,6 @@ SELECT count(id) continue; } - $classes = array(); - if (isset($link['class'])) { - $classes = $link['class']; - } - if (empty($sectionsInfo[$sectionName])) { $classes = array(); if (isset($link['class'])) { @@ -694,5 +705,5 @@ SELECT count(id) return $formattedConfLinks; } -} +}