/** * 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); }
/** * 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, '  ' . ts('No thank you'), 'no_thanks', null); $form->addGroup($radio, 'selectProduct', null); } $form->assign('showSelectOptions', $formItems); $form->assign('products', $products); $form->assign('premiumBlock', $premiumBlock); } } }
/** * 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); } } }
/** * * @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); }