Beispiel #1
0
 function postProcess()
 {
     //to reset quickform elements of next (pcp) page.
     if ($this->controller->getNextName('Widget') == 'PCP') {
         $this->controller->resetPage('PCP');
     }
     // get the submitted form values.
     $params = $this->controller->exportValues($this->_name);
     if ($this->_widget) {
         $params['id'] = $this->_widget->id;
     }
     $params['contribution_page_id'] = $this->_id;
     $params['is_active'] = CRM_Utils_Array::value('is_active', $params, false);
     require_once 'CRM/Contribute/DAO/Widget.php';
     $widget = new CRM_Contribute_DAO_Widget();
     $widget->copyValues($params);
     $widget->save();
     $buttonName = $this->controller->getButtonName();
     if ($buttonName = $this->_refreshButtonName) {
         return;
     }
 }
Beispiel #2
0
 /**
  * returns the list of fields that can be exported
  *
  * @access public
  * return array
  * @static
  */
 static function &export($prefix = false)
 {
     if (!self::$_export) {
         self::$_export = array();
         $fields = self::fields();
         foreach ($fields as $name => $field) {
             if (CRM_Utils_Array::value('export', $field)) {
                 if ($prefix) {
                     self::$_export['contribution_widget'] =& $fields[$name];
                 } else {
                     self::$_export[$name] =& $fields[$name];
                 }
             }
         }
     }
     return self::$_export;
 }
Beispiel #3
0
 /**
  * Gets all campaign related data and returns it as a std class.
  *
  * @param int $contributionPageID
  * @param string $widgetID
  *
  * @return stdClass
  */
 public static function getContributionPageData($contributionPageID, $widgetID)
 {
     $config = CRM_Core_Config::singleton();
     $data = array();
     $data['currencySymbol'] = $config->defaultCurrencySymbol;
     if (empty($contributionPageID) || CRM_Utils_Type::validate($contributionPageID, 'Integer') == NULL) {
         $data['is_error'] = TRUE;
         CRM_Core_Error::debug_log_message("{$contributionPageID} is not set");
         return $data;
     }
     $widget = new CRM_Contribute_DAO_Widget();
     $widget->contribution_page_id = $contributionPageID;
     if (!$widget->find(TRUE)) {
         $data['is_error'] = TRUE;
         CRM_Core_Error::debug_log_message("{$contributionPageID} is not found");
         return $data;
     }
     $data['is_error'] = FALSE;
     if (!$widget->is_active) {
         $data['is_active'] = FALSE;
     }
     $data['is_active'] = TRUE;
     $data['title'] = $widget->title;
     $data['logo'] = $widget->url_logo;
     $data['button_title'] = $widget->button_title;
     $data['about'] = $widget->about;
     $query = "\n            SELECT count( id ) as count,\n            sum( total_amount) as amount\n            FROM   civicrm_contribution\n            WHERE  is_test = 0\n            AND    contribution_status_id = 1\n            AND    contribution_page_id = %1";
     $params = array(1 => array($contributionPageID, 'Integer'));
     $dao = CRM_Core_DAO::executeQuery($query, $params);
     if ($dao->fetch()) {
         $data['num_donors'] = (int) $dao->count;
         $data['money_raised'] = (int) $dao->amount;
     } else {
         $data['num_donors'] = $data['money_raised'] = $data->money_raised = 0;
     }
     $query = "\n            SELECT goal_amount, start_date, end_date, is_active\n            FROM   civicrm_contribution_page\n            WHERE  id = %1";
     $params = array(1 => array($contributionPageID, 'Integer'));
     $dao = CRM_Core_DAO::executeQuery($query, $params);
     $data['campaign_start'] = '';
     $startDate = NULL;
     if ($dao->fetch()) {
         $data['money_target'] = (int) $dao->goal_amount;
         // conditions that needs to be handled
         // 1. Campaign is not active - no text
         // 2. Campaign start date greater than today - show start date
         // 3. Campaign end date is set and greater than today - show end date
         // 4. If no start and end date or no end date and start date greater than today, then it's ongoing
         if ($dao->is_active) {
             $data['campaign_start'] = ts('Campaign is ongoing');
             // check for time being between start and end date
             $now = time();
             if ($dao->start_date) {
                 $startDate = CRM_Utils_Date::unixTime($dao->start_date);
                 if ($startDate && $startDate >= $now) {
                     $data['is_active'] = FALSE;
                     $data['campaign_start'] = ts('Campaign starts on %1', array(1 => CRM_Utils_Date::customFormat($dao->start_date, $config->dateformatFull)));
                 }
             }
             if ($dao->end_date) {
                 $endDate = CRM_Utils_Date::unixTime($dao->end_date);
                 if ($endDate && $endDate < $now) {
                     $data['is_active'] = FALSE;
                     $data['campaign_start'] = ts('Campaign ended on %1', array(1 => CRM_Utils_Date::customFormat($dao->end_date, $config->dateformatFull)));
                 } elseif ($startDate >= $now) {
                     $data['campaign_start'] = ts('Campaign starts on %1', array(1 => CRM_Utils_Date::customFormat($dao->start_date, $config->dateformatFull)));
                 } else {
                     $data['campaign_start'] = ts('Campaign ends on %1', array(1 => CRM_Utils_Date::customFormat($dao->end_date, $config->dateformatFull)));
                 }
             }
         } else {
             $data['is_active'] = FALSE;
         }
     } else {
         $data['is_active'] = FALSE;
     }
     $data['money_raised_percentage'] = 0;
     if ($data['money_target'] > 0) {
         $percent = $data['money_raised'] / $data['money_target'];
         $data['money_raised_percentage'] = round($percent, 2) * 100 . "%";
         $data['money_target_display'] = CRM_Utils_Money::format($data['money_target']);
         $data['money_raised'] = ts('Raised %1 of %2', array(1 => CRM_Utils_Money::format($data['money_raised']), 2 => $data['money_target_display']));
     } else {
         $data['money_raised'] = ts('Raised %1', array(1 => CRM_Utils_Money::format($data['money_raised'])));
     }
     $data['money_low'] = 0;
     $data['num_donors'] = $data['num_donors'] . " " . ts('Donors');
     $data['home_url'] = "<a href='{$config->userFrameworkBaseURL}' class='crm-home-url' style='color:" . $widget->color_homepage_link . "'>" . ts('Learn more.') . "</a>";
     // if is_active is false, show this link and hide the contribute button
     $data['homepage_link'] = $widget->url_homepage;
     $data['colors'] = array();
     $data['colors']["title"] = $widget->color_title;
     $data['colors']["button"] = $widget->color_button;
     $data['colors']["bar"] = $widget->color_bar;
     $data['colors']["main_text"] = $widget->color_main_text;
     $data['colors']["main"] = $widget->color_main;
     $data['colors']["main_bg"] = $widget->color_main_bg;
     $data['colors']["bg"] = $widget->color_bg;
     $data['colors']["about_link"] = $widget->color_about_link;
     return $data;
 }
Beispiel #4
0
 /**
  * Gets all campaign related data and returns it as a std class.
  *
  * @param int $contributionPageID
  * @param string $widgetID
  *
  * @return object
  */
 public function getContributionPageData($contributionPageID, $widgetID)
 {
     $config = CRM_Core_Config::singleton();
     self::registerRequest($contributionPageID, $widgetID, __FUNCTION__);
     $data = new stdClass();
     if (empty($contributionPageID) || CRM_Utils_Type::validate($contributionPageID, 'Integer') == NULL) {
         $data->is_error = TRUE;
         CRM_Core_Error::debug_log_message("{$contributionPageID} is not set");
         return $data;
     }
     $widget = new CRM_Contribute_DAO_Widget();
     $widget->contribution_page_id = $contributionPageID;
     if (!$widget->find(TRUE)) {
         $data->is_error = TRUE;
         CRM_Core_Error::debug_log_message("{$contributionPageID} is not found");
         return $data;
     }
     $data->is_error = FALSE;
     if (!$widget->is_active) {
         $data->is_active = FALSE;
     }
     $data->is_active = TRUE;
     $data->title = $widget->title;
     $data->logo = $widget->url_logo;
     $data->button_title = $widget->button_title;
     $data->button_url = CRM_Utils_System::url('civicrm/contribute/transact', "reset=1&id={$contributionPageID}", TRUE, NULL, FALSE, TRUE);
     $data->about = $widget->about;
     $query = "\nSELECT count( id ) as count,\n       sum( total_amount) as amount\nFROM   civicrm_contribution\nWHERE  is_test = 0\nAND    contribution_status_id = 1\nAND    contribution_page_id = %1";
     $params = array(1 => array($contributionPageID, 'Integer'));
     $dao = CRM_Core_DAO::executeQuery($query, $params);
     if ($dao->fetch()) {
         $data->num_donors = $dao->count;
         $data->money_raised = $dao->amount;
     } else {
         $data->num_donors = $data->money_raised = 0;
     }
     $query = "\nSELECT goal_amount, start_date, end_date, is_active\nFROM   civicrm_contribution_page\nWHERE  id = %1";
     $params = array(1 => array($contributionPageID, 'Integer'));
     $dao = CRM_Core_DAO::executeQuery($query, $params);
     if ($dao->fetch()) {
         $data->money_target = $dao->goal_amount;
         $data->campaign_start = CRM_Utils_Date::customFormat($dao->start_date, $config->dateformatFull);
         $data->campaign_end = CRM_Utils_Date::customFormat($dao->end_date, $config->dateformatFull);
         // check for time being between start and end date
         $now = time();
         if ($dao->start_date) {
             $startDate = CRM_Utils_Date::unixTime($dao->start_date);
             if ($startDate && $startDate >= $now) {
                 $data->is_active = FALSE;
             }
         }
         if ($dao->end_date) {
             $endDate = CRM_Utils_Date::unixTime($dao->end_date);
             if ($endDate && $endDate < $now) {
                 $data->is_active = FALSE;
             }
         }
     } else {
         $data->is_active = FALSE;
     }
     // if is_active is false, show this link and hide the contribute button
     $data->homepage_link = $widget->url_homepage;
     // movie clip colors, must be in '0xRRGGBB' format
     $data->colors = array();
     $hexPrefix = '0x';
     $data->colors["title"] = str_replace('#', $hexPrefix, $widget->color_title);
     $data->colors["button"] = str_replace('#', $hexPrefix, $widget->color_button);
     $data->colors["bar"] = str_replace('#', $hexPrefix, $widget->color_bar);
     $data->colors["main_text"] = str_replace('#', $hexPrefix, $widget->color_main_text);
     $data->colors["main"] = str_replace('#', $hexPrefix, $widget->color_main);
     $data->colors["main_bg"] = str_replace('#', $hexPrefix, $widget->color_main_bg);
     $data->colors["bg"] = str_replace('#', $hexPrefix, $widget->color_bg);
     // these two have colors as normal hex format
     // because they're being used in a CSS object
     $data->colors["about_link"] = str_replace('#', $hexPrefix, $widget->color_about_link);
     $data->colors["homepage_link"] = str_replace('#', $hexPrefix, $widget->color_homepage_link);
     return $data;
 }
Beispiel #5
0
 public function postProcess()
 {
     //to reset quickform elements of next (pcp) page.
     if ($this->controller->getNextName('Widget') == 'PCP') {
         $this->controller->resetPage('PCP');
     }
     // get the submitted form values.
     $params = $this->controller->exportValues($this->_name);
     if ($this->_widget) {
         $params['id'] = $this->_widget->id;
     }
     $params['contribution_page_id'] = $this->_id;
     $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE);
     $params['url_homepage'] = 'null';
     $widget = new CRM_Contribute_DAO_Widget();
     $widget->copyValues($params);
     $widget->save();
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_refreshButtonName) {
         return;
     }
     parent::endPostProcess();
 }