Example #1
0
 /**
  * Browse function.
  */
 public function browse()
 {
     // get all custom groups sorted by weight
     $premiums = array();
     $pageID = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE, 0);
     $dao = new CRM_Contribute_DAO_Premium();
     $dao->entity_table = 'civicrm_contribution_page';
     $dao->entity_id = $pageID;
     $dao->find(TRUE);
     $premiumID = $dao->id;
     $this->assign('products', FALSE);
     $this->assign('id', $pageID);
     if (!$premiumID) {
         return;
     }
     $dao = new CRM_Contribute_DAO_PremiumsProduct();
     $dao->premiums_id = $premiumID;
     $dao->orderBy('weight');
     $dao->find();
     while ($dao->fetch()) {
         $productDAO = new CRM_Contribute_DAO_Product();
         $productDAO->id = $dao->product_id;
         $productDAO->is_active = 1;
         if ($productDAO->find(TRUE)) {
             $premiums[$productDAO->id] = array();
             $premiums[$productDAO->id]['weight'] = $dao->weight;
             CRM_Core_DAO::storeValues($productDAO, $premiums[$productDAO->id]);
             $action = array_sum(array_keys($this->links()));
             $premiums[$dao->product_id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $pageID, 'pid' => $dao->id), ts('more'), FALSE, 'premium.contributionpage.row', 'Premium', $dao->id);
             //Financial Type
             if (!empty($dao->financial_type_id)) {
                 $premiums[$productDAO->id]['financial_type_id'] = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialType', $dao->financial_type_id, 'name');
             }
         }
     }
     if (count(CRM_Contribute_PseudoConstant::products($pageID)) == 0) {
         $this->assign('products', FALSE);
     } else {
         $this->assign('products', TRUE);
     }
     // Add order changing widget to selector
     $returnURL = CRM_Utils_System::url('civicrm/admin/contribute/premium', "reset=1&action=update&id={$pageID}");
     $filter = "premiums_id = {$premiumID}";
     CRM_Utils_Weight::addOrder($premiums, 'CRM_Contribute_DAO_PremiumsProduct', 'id', $returnURL, $filter);
     $this->assign('rows', $premiums);
 }
Example #2
0
 /**
  * Build Premium Block im Contribution Pages.
  *
  * @param CRM_Core_Form $form
  * @param int $pageID
  * @param bool $formItems
  * @param int $selectedProductID
  * @param string $selectedOption
  */
 public static function buildPremiumBlock(&$form, $pageID, $formItems = FALSE, $selectedProductID = NULL, $selectedOption = NULL)
 {
     $form->add('hidden', "selectProduct", $selectedProductID, array('id' => 'selectProduct'));
     $dao = new CRM_Contribute_DAO_Premium();
     $dao->entity_table = 'civicrm_contribution_page';
     $dao->entity_id = $pageID;
     $dao->premiums_active = 1;
     CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, CRM_Core_Action::ADD);
     $addWhere = "financial_type_id IN (0)";
     if (!empty($financialTypes)) {
         $addWhere = "financial_type_id IN (" . implode(',', array_keys($financialTypes)) . ")";
     }
     if ($dao->find(TRUE)) {
         $premiumID = $dao->id;
         $premiumBlock = array();
         CRM_Core_DAO::storeValues($dao, $premiumBlock);
         $dao = new CRM_Contribute_DAO_PremiumsProduct();
         $dao->premiums_id = $premiumID;
         $dao->whereAdd($addWhere);
         $dao->orderBy('weight');
         $dao->find();
         $products = array();
         $radio = array();
         while ($dao->fetch()) {
             $productDAO = new CRM_Contribute_DAO_Product();
             $productDAO->id = $dao->product_id;
             $productDAO->is_active = 1;
             if ($productDAO->find(TRUE)) {
                 if ($selectedProductID != NULL) {
                     if ($selectedProductID == $productDAO->id) {
                         if ($selectedOption) {
                             $productDAO->options = ts('Selected Option') . ': ' . $selectedOption;
                         } else {
                             $productDAO->options = NULL;
                         }
                         CRM_Core_DAO::storeValues($productDAO, $products[$productDAO->id]);
                     }
                 } else {
                     CRM_Core_DAO::storeValues($productDAO, $products[$productDAO->id]);
                 }
             }
             $options = $temp = array();
             $temp = explode(',', $productDAO->options);
             foreach ($temp as $value) {
                 $options[trim($value)] = trim($value);
             }
             if ($temp[0] != '') {
                 $form->addElement('select', 'options_' . $productDAO->id, NULL, $options);
             }
         }
         if (count($products)) {
             $form->assign('showPremium', $formItems);
             $form->assign('showSelectOptions', $formItems);
             $form->assign('products', $products);
             $form->assign('premiumBlock', $premiumBlock);
         }
     }
 }
Example #3
0
 /**
  * Function to build Premium Block im Contribution Pages 
  * 
  * @param int $pageId 
  * @static
  */
 function buildPremiumBlock(&$form, $pageID, $formItems = false, $selectedProductID = null, $selectedOption = null)
 {
     require_once 'CRM/Contribute/DAO/Premium.php';
     $dao = new CRM_Contribute_DAO_Premium();
     $dao->entity_table = 'civicrm_contribution_page';
     $dao->entity_id = $pageID;
     $dao->premiums_active = 1;
     if ($dao->find(true)) {
         $premiumID = $dao->id;
         $premiumBlock = array();
         CRM_Core_DAO::storeValues($dao, $premiumBlock);
         require_once 'CRM/Contribute/DAO/PremiumsProduct.php';
         $dao = new CRM_Contribute_DAO_PremiumsProduct();
         $dao->premiums_id = $premiumID;
         $dao->orderBy('weight');
         $dao->find();
         $products = array();
         $radio = array();
         while ($dao->fetch()) {
             require_once 'CRM/Contribute/DAO/Product.php';
             $productDAO = new CRM_Contribute_DAO_Product();
             $productDAO->id = $dao->product_id;
             $productDAO->is_active = 1;
             if ($productDAO->find(true)) {
                 if ($selectedProductID != null) {
                     if ($selectedProductID == $productDAO->id) {
                         if ($selectedOption) {
                             $productDAO->options = ts('Selected Option') . ': ' . $selectedOption;
                         } else {
                             $productDAO->options = null;
                         }
                         CRM_Core_DAO::storeValues($productDAO, $products[$productDAO->id]);
                     }
                 } else {
                     CRM_Core_DAO::storeValues($productDAO, $products[$productDAO->id]);
                 }
             }
             $radio[$productDAO->id] = $form->createElement('radio', null, null, null, $productDAO->id, null);
             $options = $temp = array();
             $temp = explode(',', $productDAO->options);
             foreach ($temp as $value) {
                 $options[trim($value)] = trim($value);
             }
             if ($temp[0] != '') {
                 $form->addElement('select', 'options_' . $productDAO->id, null, $options, array('onchange' => "return selectPremium(this);"));
             }
         }
         if (count($products)) {
             $form->assign('showRadioPremium', $formItems);
             if ($formItems) {
                 $radio[''] = $form->createElement('radio', null, null, '&nbsp ' . ts('No thank you'), 'no_thanks', null);
                 $form->addGroup($radio, 'selectProduct', null);
             }
             $form->assign('showSelectOptions', $formItems);
             $form->assign('products', $products);
             $form->assign('premiumBlock', $premiumBlock);
         }
     }
 }
Example #4
0
 /**
  * Get all premiums.
  *
  *
  * @param int $pageID
  * @return array
  *   array of all Premiums if any
  */
 public static function products($pageID = NULL)
 {
     $products = array();
     $dao = new CRM_Contribute_DAO_Product();
     $dao->is_active = 1;
     $dao->orderBy('id');
     $dao->find();
     while ($dao->fetch()) {
         $products[$dao->id] = $dao->name;
     }
     if ($pageID) {
         $dao = new CRM_Contribute_DAO_Premium();
         $dao->entity_table = 'civicrm_contribution_page';
         $dao->entity_id = $pageID;
         $dao->find(TRUE);
         $premiumID = $dao->id;
         $productID = array();
         $dao = new CRM_Contribute_DAO_PremiumsProduct();
         $dao->premiums_id = $premiumID;
         $dao->find();
         while ($dao->fetch()) {
             $productID[$dao->product_id] = $dao->product_id;
         }
         $tempProduct = array();
         foreach ($products as $key => $value) {
             if (!array_key_exists($key, $productID)) {
                 $tempProduct[$key] = $value;
             }
         }
         return $tempProduct;
     }
     return $products;
 }
Example #5
0
 /**
  * 
  * @return void
  * @access public
  * @static
  */
 function browse()
 {
     // get all custom groups sorted by weight
     $premiums = array();
     require_once 'CRM/Contribute/DAO/Product.php';
     $pageID = CRM_Utils_Request::retrieve('id', 'Positive', $this, false, 0);
     $dao = new CRM_Contribute_DAO_Premium();
     $dao->entity_table = 'civicrm_contribution_page';
     $dao->entity_id = $pageID;
     $dao->find(true);
     $premiumID = $dao->id;
     $this->assign('products', false);
     if (!$premiumID) {
         return;
     }
     require_once 'CRM/Contribute/DAO/PremiumsProduct.php';
     $dao = new CRM_Contribute_DAO_PremiumsProduct();
     $dao->premiums_id = $premiumID;
     $dao->orderBy('weight');
     $dao->find();
     while ($dao->fetch()) {
         $productDAO = new CRM_Contribute_DAO_Product();
         $productDAO->id = $dao->product_id;
         $productDAO->is_active = 1;
         if ($productDAO->find(true)) {
             $premiums[$productDAO->id] = array();
             $premiums[$productDAO->id]['weight'] = $dao->weight;
             CRM_Core_DAO::storeValues($productDAO, $premiums[$productDAO->id]);
             $action = array_sum(array_keys($this->links()));
             $premiums[$dao->product_id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $pageID, 'pid' => $dao->id));
         }
     }
     require_once 'CRM/Contribute/PseudoConstant.php';
     if (count(CRM_Contribute_PseudoConstant::products($pageID)) == 0) {
         $this->assign('products', false);
     } else {
         $this->assign('products', true);
     }
     // Add order changing widget to selector
     $returnURL = CRM_Utils_System::url('civicrm/admin/contribute/premium', "reset=1&action=update&id={$pageID}");
     $filter = "premiums_id = {$premiumID}";
     require_once 'CRM/Utils/Weight.php';
     CRM_Utils_Weight::addOrder($premiums, 'CRM_Contribute_DAO_PremiumsProduct', 'id', $returnURL, $filter);
     $this->assign('rows', $premiums);
 }