コード例 #1
0
ファイル: admin.acctexp.php プロジェクト: Ibrahim1/aec
 public function edit($id)
 {
     global $aecConfig;
     $lists = array();
     $params_values = array();
     $restrictions_values = array();
     $customparams_values = array();
     $customparamsarray = new stdClass();
     $row = new SubscriptionPlan();
     $row->load($id);
     $restrictionHelper = new aecRestrictionHelper();
     if (!$row->id) {
         $row->ordering = 9999;
         $hasrecusers = false;
         $params_values['active'] = 1;
         $params_values['visible'] = 0;
         $params_values['processors'] = 0;
         $restrictions_values['gid_enabled'] = 1;
         if (defined('JPATH_MANIFESTS')) {
             $restrictions_values['gid'] = 2;
         } else {
             $restrictions_values['gid'] = 18;
         }
     } else {
         $params_values = $row->params;
         $restrictions_values = $row->restrictions;
         if (empty($restrictions_values)) {
             $restrictions_values = array();
         }
         // Clean up custom params
         if (!empty($row->customparams)) {
             foreach ($row->customparams as $n => $v) {
                 if (isset($params_values[$n]) || isset($restrictions_values[$n])) {
                     unset($row->customparams[$n]);
                 }
             }
         }
         $customparams_values = $row->custom_params;
         // We need to convert the values that are set as object properties
         $params_values['active'] = $row->active;
         $params_values['visible'] = $row->visible;
         $params_values['email_desc'] = $row->getProperty('email_desc');
         $params_values['name'] = $row->getProperty('name');
         $params_values['desc'] = $row->getProperty('desc');
         $params_values['micro_integrations'] = $row->micro_integrations;
         $params_values['processors'] = $row->params['processors'];
         // Checking if there is already a user, which disables certain actions
         $query = 'SELECT count(*)' . ' FROM #__users AS a' . ' LEFT JOIN #__acctexp_subscr AS b ON a.id = b.userid' . ' WHERE b.plan = ' . $row->id . ' AND (b.status = \'Active\' OR b.status = \'Trial\')' . ' AND b.recurring =\'1\'';
         $this->db->setQuery($query);
         $hasrecusers = $this->db->loadResult() > 0 ? true : false;
     }
     $stdformat = '{aecjson}{"cmd":"condition","vars":[{"cmd":"data","vars":"payment.freetrial"},' . '{"cmd":"concat","vars":[{"cmd":"jtext","vars":"CONFIRM_FREETRIAL"}," ",{"cmd":"data","vars":"payment.method_name"}]},' . '{"cmd":"concat","vars":[{"cmd":"data","vars":"payment.amount"},{"cmd":"data","vars":"payment.currency_symbol"}," ",{"cmd":"data","vars":"payment.method_name"}]}' . ']}{/aecjson}';
     // params and their type values
     $params['active'] = array('toggle', 1);
     $params['visible'] = array('toggle', 1);
     $params['name'] = array('inputC', '');
     $params['desc'] = array('editor', '');
     $params['customamountformat'] = array('inputD', $stdformat);
     $params['customthanks'] = array('inputC', '');
     $params['customtext_thanks_keeporiginal'] = array('toggle', 1);
     $params['customtext_thanks'] = array('editor', '');
     $params['email_desc'] = array('inputD', '');
     $params['meta'] = array('inputD', '');
     $params['micro_integrations_inherited'] = array('list', '');
     $params['micro_integrations'] = array('list', '');
     $params['micro_integrations_plan'] = array('list', '');
     $params['params_remap'] = array('subarea_change', 'groups');
     $groups = ItemGroupHandler::parentGroups($row->id, 'item');
     if (!empty($groups)) {
         $gs = array();
         foreach ($groups as $groupid) {
             $group = new ItemGroup();
             $group->load($groupid);
             $g = array();
             $g['id'] = $group->id;
             $g['name'] = $group->getProperty('name');
             $g['color'] = $group->params['color'];
             $g['group'] = '<strong>' . $groupid . '</strong>';
             $gs[$groupid] = $g;
         }
         $customparamsarray->groups = $gs;
     } else {
         $customparamsarray->groups = null;
     }
     $grouplist = ItemGroupHandler::getTree();
     $glist = array();
     $glist[] = JHTML::_('select.option', 0, '- - - - - -');
     $groupids = array();
     foreach ($grouplist as $id => $glisti) {
         if (defined('JPATH_MANIFESTS')) {
             $glist[] = JHTML::_('select.option', $glisti[0], str_replace('&nbsp;', ' ', $glisti[1]), 'value', 'text', in_array($glisti[0], $groups));
         } else {
             $glist[] = JHTML::_('select.option', $glisti[0], $glisti[1], 'value', 'text', in_array($glisti[0], $groups));
         }
         $groupids[$glisti[0]] = ItemGroupHandler::groupColor($glisti[0]);
     }
     $lists['add_group'] = JHTML::_('select.genericlist', $glist, 'add_group', 'size="1"', 'value', 'text', $row->id ? 0 : 1);
     $params['add_group'] = array('list', '', '', $row->id ? 0 : 1);
     $params['params_remap'] = array('subarea_change', 'params');
     $params['override_activation'] = array('toggle', 0);
     $params['override_regmail'] = array('toggle', 0);
     $params['full_free'] = array('toggle', '');
     $params['full_amount'] = array('inputA', '');
     $params['full_period'] = array('inputA', '');
     $params['full_periodunit'] = array('list', 'D');
     $params['trial_free'] = array('toggle', '');
     $params['trial_amount'] = array('inputA', '');
     $params['trial_period'] = array('inputA', '');
     $params['trial_periodunit'] = array('list', 'D');
     $params['gid_enabled'] = array('toggle', 1);
     $params['gid'] = array('list', defined('JPATH_MANIFESTS') ? 2 : 18);
     $params['lifetime'] = array('toggle', 0);
     $params['processors'] = array('list', '');
     $params['processor_selectmode'] = array('list', '');
     $params['standard_parent'] = array('list', '');
     $params['fallback'] = array('list', '');
     $params['fallback_req_parent'] = array('toggle', 0);
     $params['make_active'] = array('toggle', 1);
     $params['make_primary'] = array('toggle', 1);
     $params['update_existing'] = array('toggle', 1);
     $params['similarplans'] = array('list', '');
     $params['equalplans'] = array('list', '');
     $params['notauth_redirect'] = array('inputC', '');
     $params['fixed_redirect'] = array('inputC', '');
     $params['hide_duration_checkout'] = array('toggle', 0);
     $params['cart_behavior'] = array('list', 0);
     $params['addtocart_redirect'] = array('inputC', '');
     $params['addtocart_max'] = array('inputA', '');
     $params['notes'] = array('textarea', '');
     $params['restr_remap'] = array('subarea_change', 'restrictions');
     $params['inventory_amount_enabled'] = array('toggle', 0);
     $params['inventory_amount'] = array('inputB', 0);
     $params['inventory_amount_used'] = array('inputB', 0);
     $params = array_merge($params, $restrictionHelper->getParams());
     $rewriteswitches = array('cms', 'user');
     $params['rewriteInfo'] = array('fieldset', '', AECToolbox::rewriteEngineInfo($rewriteswitches));
     // make the select list for first trial period units
     $perunit[] = JHTML::_('select.option', 'D', JText::_('PAYPLAN_PERUNIT1'));
     $perunit[] = JHTML::_('select.option', 'W', JText::_('PAYPLAN_PERUNIT2'));
     $perunit[] = JHTML::_('select.option', 'M', JText::_('PAYPLAN_PERUNIT3'));
     $perunit[] = JHTML::_('select.option', 'Y', JText::_('PAYPLAN_PERUNIT4'));
     $lists['trial_periodunit'] = JHTML::_('select.genericlist', $perunit, 'trial_periodunit', 'size="4"', 'value', 'text', arrayValueDefault($params_values, 'trial_periodunit', "D"));
     $lists['full_periodunit'] = JHTML::_('select.genericlist', $perunit, 'full_periodunit', 'size="4"', 'value', 'text', arrayValueDefault($params_values, 'full_periodunit', "D"));
     // make the select list for first trial period units
     $selectmode[] = JHTML::_('select.option', '0', JText::_('PAYPLAN_PROCESSOR_SELECTMODE_LIST'));
     $selectmode[] = JHTML::_('select.option', '1', JText::_('PAYPLAN_PROCESSOR_SELECTMODE_CONFIRMATION'));
     $selectmode[] = JHTML::_('select.option', '2', JText::_('PAYPLAN_PROCESSOR_SELECTMODE_BOTH'));
     $lists['processor_selectmode'] = JHTML::_('select.genericlist', $selectmode, 'processor_selectmode', 'size="3"', 'value', 'text', arrayValueDefault($params_values, 'processor_selectmode', "0"));
     $params['processors_remap'] = array("subarea_change", "plan_params");
     $pps = PaymentProcessorHandler::getInstalledObjectList(1);
     if (empty($params_values['processors'])) {
         $plan_procs = array();
     } else {
         $plan_procs = $params_values['processors'];
     }
     if (!empty($plan_procs)) {
         foreach ($plan_procs as $proc) {
             foreach ($pps as $pk => $ppo) {
                 if ($ppo->id == $proc) {
                     $pps[] = $ppo;
                     unset($pps[$pk]);
                 }
             }
         }
     }
     $custompar = array();
     foreach ($pps as $ppobj) {
         if (!$ppobj->active) {
             continue;
         }
         $pp = new PaymentProcessor();
         if (!$pp->loadName($ppobj->name)) {
             continue;
         }
         $pp->init();
         $pp->getInfo();
         $custompar[$pp->id] = array();
         $custompar[$pp->id]['handle'] = $ppobj->name;
         $custompar[$pp->id]['name'] = $pp->info['longname'];
         $custompar[$pp->id]['params'] = array();
         $params['processor_' . $pp->id] = array('toggle', JText::_('PAYPLAN_PROCESSORS_ACTIVATE_NAME'), JText::_('PAYPLAN_PROCESSORS_ACTIVATE_DESC'));
         $custompar[$pp->id]['params'][] = 'processor_' . $pp->id;
         $params[$pp->id . '_aec_overwrite_settings'] = array('toggle', JText::_('PAYPLAN_PROCESSORS_OVERWRITE_SETTINGS_NAME'), JText::_('PAYPLAN_PROCESSORS_OVERWRITE_SETTINGS_DESC'));
         $custompar[$pp->id]['params'][] = $pp->id . '_aec_overwrite_settings';
         $customparams = $pp->getCustomPlanParams();
         if (is_array($customparams)) {
             foreach ($customparams as $customparam => $cpcontent) {
                 $naming = array($pp->getParamLang($customparam . '_NAME'), $pp->getParamLang($customparam . '_DESC'));
                 $shortname = $pp->id . "_" . $customparam;
                 $params[$shortname] = array_merge($cpcontent, $naming);
                 $custompar[$pp->id]['params'][] = $shortname;
             }
         }
         if (empty($plan_procs)) {
             continue;
         }
         if (!in_array($pp->id, $plan_procs)) {
             continue;
         }
         $params_values['processor_' . $pp->id] = 1;
         if (isset($customparams_values[$pp->id . '_aec_overwrite_settings'])) {
             if (!$customparams_values[$pp->id . '_aec_overwrite_settings']) {
                 continue;
             }
         } else {
             continue;
         }
         $settings_array = $pp->getBackendSettings();
         if (isset($settings_array['lists'])) {
             foreach ($settings_array['lists'] as $listname => $listcontent) {
                 $lists[$pp->id . '_' . $listname] = $listcontent;
             }
             unset($settings_array['lists']);
         }
         // Iterate through settings form to...
         foreach ($settings_array as $name => $values) {
             $setting_name = $pp->id . '_' . $name;
             if (isset($params[$setting_name])) {
                 continue;
             }
             if (isset($customparams_values[$setting_name])) {
                 $value = $customparams_values[$setting_name];
             } elseif (isset($pp->settings[$name])) {
                 $value = $pp->settings[$name];
             } else {
                 $value = '';
             }
             // ...assign new list fields
             switch ($settings_array[$name][0]) {
                 case 'list_yesno':
                     $arr = array(JHTML::_('select.option', 0, JText::_('no')), JHTML::_('select.option', 1, JText::_('yes')));
                     $lists[$setting_name] = JHTML::_('select.genericlist', $arr, $setting_name, '', 'value', 'text', (int) $value);
                     $settings_array[$name][0] = 'list';
                     break;
                 case 'list_currency':
                     // Get currency list
                     $currency_array = explode(',', $pp->info['currencies']);
                     // Transform currencies into OptionArray
                     $currency_code_list = array();
                     foreach ($currency_array as $currency) {
                         if ($this->lang->hasKey('CURRENCY_' . $currency)) {
                             $currency_code_list[] = JHTML::_('select.option', $currency, JText::_('CURRENCY_' . $currency));
                         }
                     }
                     // Create list
                     $lists[$setting_name] = JHTML::_('select.genericlist', $currency_code_list, $setting_name, 'size="10"', 'value', 'text', $value);
                     $settings_array[$name][0] = 'list';
                     break;
                 case 'list_language':
                     // Get language list
                     if (!is_array($pp->info['languages'])) {
                         $this->language_array = explode(',', $pp->info['languages']);
                     } else {
                         $this->language_array = $pp->info['languages'];
                     }
                     // Transform languages into OptionArray
                     $this->language_code_list = array();
                     foreach ($this->language_array as $this->language) {
                         $this->language_code_list[] = JHTML::_('select.option', $this->language, $this->lang->hasKey('LANGUAGECODE_' . $this->language) ? JText::_('LANGUAGECODE_' . $this->language) : $this->language);
                     }
                     // Create list
                     $lists[$setting_name] = JHTML::_('select.genericlist', $this->language_code_list, $setting_name, 'size="10"', 'value', 'text', $value);
                     $settings_array[$name][0] = 'list';
                     break;
                 case 'list_plan':
                     unset($settings_array[$name]);
                     break;
                 default:
                     break;
             }
             // ...put in missing language fields
             if (!isset($settings_array[$name][1])) {
                 $settings_array[$name][1] = $pp->getParamLang($name . '_NAME');
                 $settings_array[$name][2] = $pp->getParamLang($name . '_DESC');
             }
             $params[$setting_name] = $settings_array[$name];
             $custompar[$pp->id]['params'][] = $setting_name;
         }
     }
     $customparamsarray->pp = $custompar;
     // get available active plans
     $fallback_plans = array(JHTML::_('select.option', '0', JText::_('PAYPLAN_NOFALLBACKPLAN')));
     $parent_plans = array(JHTML::_('select.option', '0', JText::_('PAYPLAN_NOPARENTPLAN')));
     $query = 'SELECT `id` AS value, `name` AS text' . ' FROM #__acctexp_plans' . ' WHERE `active` = 1' . ' AND `id` != \'' . $row->id . '\'';
     $this->db->setQuery($query);
     $payment_plans = $this->db->loadObjectList();
     if (is_array($payment_plans)) {
         $fallback_plans = array_merge($fallback_plans, $payment_plans);
         $parent_plans = array_merge($parent_plans, $payment_plans);
     }
     $lists['fallback'] = JHTML::_('select.genericlist', $fallback_plans, 'fallback', 'size="1"', 'value', 'text', arrayValueDefault($params_values, 'fallback', 0));
     $lists['standard_parent'] = JHTML::_('select.genericlist', $parent_plans, 'standard_parent', 'size="1"', 'value', 'text', arrayValueDefault($params_values, 'standard_parent', 0));
     // get similar plans
     if (!empty($params_values['similarplans'])) {
         $query = 'SELECT `id` AS value, `name` As text' . ' FROM #__acctexp_plans' . ' WHERE `id` IN (' . implode(',', $params_values['similarplans']) . ')';
         $this->db->setQuery($query);
         $sel_similar_plans = $this->db->loadObjectList();
     } else {
         $sel_similar_plans = 0;
     }
     $lists['similarplans'] = JHTML::_('select.genericlist', $payment_plans, 'similarplans[]', 'size="1" multiple="multiple"', 'value', 'text', $sel_similar_plans);
     // get equal plans
     if (!empty($params_values['equalplans'])) {
         $query = 'SELECT `id` AS value, `name` AS text' . ' FROM #__acctexp_plans' . ' WHERE `id` IN (' . implode(',', $params_values['equalplans']) . ')';
         $this->db->setQuery($query);
         $sel_equal_plans = $this->db->loadObjectList();
     } else {
         $sel_equal_plans = 0;
     }
     $lists['equalplans'] = JHTML::_('select.genericlist', $payment_plans, 'equalplans[]', 'size="1" multiple="multiple"', 'value', 'text', $sel_equal_plans);
     $lists = array_merge($lists, $restrictionHelper->getLists($params_values, $restrictions_values));
     // make the select list for first trial period units
     $cartmode[] = JHTML::_('select.option', '0', JText::_('PAYPLAN_CARTMODE_INHERIT'));
     $cartmode[] = JHTML::_('select.option', '1', JText::_('PAYPLAN_CARTMODE_FORCE_CART'));
     $cartmode[] = JHTML::_('select.option', '2', JText::_('PAYPLAN_CARTMODE_FORCE_DIRECT'));
     $lists['cart_behavior'] = JHTML::_('select.genericlist', $cartmode, 'cart_behavior', 'size="1"', 'value', 'text', arrayValueDefault($params_values, 'cart_behavior', "0"));
     $mi_list = microIntegrationHandler::getDetailedList();
     $mi_settings = array('inherited' => array(), 'attached' => array(), 'custom' => array());
     $attached_mis = $row->getMicroIntegrationsSeparate(true);
     foreach ($mi_list as $mi_details) {
         $mi_details->inherited = false;
         if (!empty($attached_mis['inherited']) && in_array($mi_details->id, $attached_mis['inherited'])) {
             $mi_details->inherited = true;
             $mi_settings['inherited'][] = $mi_details;
         }
         $mi_details->attached = false;
         if (!empty($attached_mis['plan']) && in_array($mi_details->id, $attached_mis['plan'])) {
             $mi_details->attached = true;
         }
         $mi_settings['attached'][] = $mi_details;
     }
     $mi_handler = new microIntegrationHandler();
     $mi_list = $mi_handler->getIntegrationList();
     $mi_htmllist = array();
     $mi_htmllist[] = JHTML::_('select.option', '', JText::_('AEC_CMN_NONE_SELECTED'));
     foreach ($mi_list as $name) {
         $mi = new microIntegration();
         $mi->class_name = 'mi_' . $name;
         if ($mi->callIntegration()) {
             $len = 30 - AECToolbox::visualstrlen(trim($mi->name));
             $fullname = str_replace('#', '&nbsp;', str_pad($mi->name, $len, '#')) . ' - ' . substr($mi->desc, 0, 120);
             $mi_htmllist[] = JHTML::_('select.option', $name, $fullname);
         }
     }
     if (!empty($row->micro_integrations) && is_array($row->micro_integrations)) {
         $query = 'SELECT `id`' . ' FROM #__acctexp_microintegrations' . ' WHERE `id` IN (' . implode(',', $row->micro_integrations) . ')' . ' AND `hidden` = \'1\'';
         $this->db->setQuery($query);
         $hidden_mi = $this->db->loadObjectList();
     } else {
         $hidden_mi = array();
     }
     $customparamsarray->hasperplanmi = false;
     if (!empty($aecConfig->cfg['per_plan_mis']) || !empty($hidden_mi)) {
         $customparamsarray->hasperplanmi = true;
         $lists['micro_integrations_plan'] = JHTML::_('select.genericlist', $mi_htmllist, 'micro_integrations_plan[]', 'size="' . min(count($mi_list) + 1, 25) . '" multiple="multiple"', 'value', 'text', array());
         $custompar = array();
         $hidden_mi_list = array();
         if (!empty($hidden_mi)) {
             foreach ($hidden_mi as $miobj) {
                 $hidden_mi_list[] = $miobj->id;
             }
         }
         $params['micro_integrations_hidden'] = array('hidden', '');
         $params_values['micro_integrations_hidden'] = $hidden_mi_list;
         if (!empty($hidden_mi)) {
             foreach ($hidden_mi as $miobj) {
                 $mi = new microIntegration();
                 if (!$mi->load($miobj->id)) {
                     continue;
                 }
                 if (!$mi->callIntegration(1)) {
                     continue;
                 }
                 $custompar[$mi->id] = array();
                 $custompar[$mi->id]['name'] = $mi->name;
                 $custompar[$mi->id]['params'] = array();
                 $prefix = 'MI_' . $mi->id . '_';
                 $params[] = array('area_change', 'MI');
                 $params[] = array('subarea_change', 'E');
                 $params[] = array('add_prefix', $prefix);
                 $params[] = array('section_paper', JText::_('MI_E_TITLE'));
                 $generalsettings = $mi->getGeneralSettings();
                 foreach ($generalsettings as $name => $value) {
                     $params[$prefix . $name] = $value;
                     $custompar[$mi->id]['params'][] = $prefix . $name;
                     if (isset($mi->{$name})) {
                         $params_values[$prefix . $name] = $mi->{$name};
                     } else {
                         $params_values[$prefix . $name] = '';
                     }
                 }
                 $params[] = array('section_end', 0);
                 $misettings = $mi->getSettings();
                 if (isset($misettings['lists'])) {
                     foreach ($misettings['lists'] as $listname => $listcontent) {
                         $lists[$prefix . $listname] = str_replace('name="', 'name="' . $prefix, $listcontent);
                     }
                     unset($misettings['lists']);
                 }
                 $params[] = array('area_change', 'MI');
                 $params[] = array('subarea_change', $mi->class_name);
                 $params[] = array('add_prefix', $prefix);
                 $params[] = array('section_paper', JText::_('MI_E_SETTINGS'));
                 foreach ($misettings as $name => $value) {
                     $params[$prefix . $name] = $value;
                     $custompar[$mi->id]['params'][] = $prefix . $name;
                 }
                 $params[] = array('section_end', 0);
             }
         }
         if (!empty($custompar)) {
             $mi_settings['custom'] = $custompar;
         }
     }
     $customparamsarray->mi = $mi_settings;
     $settings = new aecSettings('payplan', 'general');
     if (is_array($customparams_values)) {
         $settingsparams = array_merge($params_values, $customparams_values, $restrictions_values);
     } else {
         $settingsparams = array_merge($params_values, $restrictions_values);
     }
     $settings->fullSettingsArray($params, $settingsparams, $lists);
     // Call HTML Class
     $aecHTML = new aecHTML($settings->settings, $settings->lists);
     if (!empty($customparamsarray)) {
         $aecHTML->customparams = $customparamsarray;
     }
     HTML_AcctExp::editSubscriptionPlan($aecHTML, $row, $hasrecusers);
 }
コード例 #2
0
ファイル: acctexp.cart.class.php プロジェクト: Ibrahim1/aec
 public function getCheckout($metaUser, $counter = 0, $InvoiceFactory = null)
 {
     $c = array();
     $totalcost = 0;
     if (empty($this->content)) {
         return array();
     }
     $return = array();
     foreach ($this->content as $cid => $content) {
         // Cache items
         if (!isset($c[$content['type']][$content['id']])) {
             switch ($content['type']) {
                 case 'plan':
                     $obj = new SubscriptionPlan();
                     $obj->load($content['id']);
                     $o = array();
                     $o['obj'] = $obj;
                     $o['name'] = $obj->getProperty('name');
                     $o['desc'] = $obj->getProperty('desc');
                     $terms = $obj->getTermsForUser(false, $metaUser);
                     if ($counter) {
                         $terms->incrementPointer($counter);
                     }
                     $o['terms'] = $terms;
                     $o['cost'] = $terms->nextterm->renderCost();
                     $c[$content['type']][$content['id']] = $o;
                     break;
             }
         }
         $entry = array();
         $entry['obj'] = $c[$content['type']][$content['id']]['obj'];
         $entry['fullamount'] = $c[$content['type']][$content['id']]['cost'];
         $entry['name'] = $c[$content['type']][$content['id']]['name'];
         $entry['desc'] = $c[$content['type']][$content['id']]['desc'];
         $entry['terms'] = $c[$content['type']][$content['id']]['terms'];
         $item = array('item' => array('obj' => $entry['obj']), 'terms' => $entry['terms']);
         if (!empty($content['coupons'])) {
             $cpsh = new couponsHandler($metaUser, false, $content['coupons']);
             $item = $cpsh->applyAllToItems(0, $item);
             $entry['terms'] = $item['terms'];
         }
         $entry['cost'] = $entry['terms']->nextterm->renderTotal();
         if ($entry['cost'] > 0) {
             $total = $content['quantity'] * $entry['cost'];
             $entry['cost_total'] = AECToolbox::correctAmount($total);
         } else {
             $entry['cost_total'] = AECToolbox::correctAmount('0.00');
         }
         if ($entry['cost_total'] == '0.00') {
             $entry['free'] = true;
         } else {
             $entry['free'] = false;
         }
         $entry['cost'] = AECToolbox::correctAmount($entry['cost']);
         $entry['quantity'] = $content['quantity'];
         $totalcost += $entry['cost_total'];
         $return[$cid] = $entry;
     }
     if (!empty($this->params['overall_coupons'])) {
         $cpsh = new couponsHandler($metaUser, $InvoiceFactory, $this->params['overall_coupons']);
         $totalcost_ncp = $totalcost;
         $totalcost = $cpsh->applyToAmount($totalcost);
     } else {
         $totalcost_ncp = $totalcost;
     }
     // Append total cost
     $return[] = array('name' => '', 'count' => '', 'cost' => AECToolbox::correctAmount($totalcost_ncp), 'cost_total' => AECToolbox::correctAmount($totalcost), 'is_total' => true, 'obj' => false);
     return $return;
 }
コード例 #3
0
 /**
  * @param SubscriptionPlan $plan
  */
 static function getItemListItem($plan)
 {
     if (empty($plan->params['processor_selectmode'])) {
         $select_mode = '0';
     } else {
         $select_mode = $plan->params['processor_selectmode'];
     }
     $details = array('type' => 'item', 'id' => $plan->id, 'plan' => $plan, 'name' => $plan->getProperty('name'), 'desc' => $plan->getProperty('desc'), 'ordering' => $plan->ordering, 'lifetime' => $plan->params['lifetime'], 'select_mode' => $select_mode, 'meta' => array());
     if (!empty($plan->params['meta'])) {
         $details['meta'] = parameterHandler::decode($plan->params['meta']);
     }
     return $details;
 }
コード例 #4
0
ファイル: admin.acctexp.html.php プロジェクト: Ibrahim1/aec
    /**
     * @param aecHTML $aecHTML
     * @param SubscriptionPlan $row
     * @param boolean $hasrecusers
     */
    static function editSubscriptionPlan($aecHTML, $row, $hasrecusers)
    {
        global $aecConfig;
        jimport('joomla.html.editor');
        $editor = JFactory::getEditor();
        HTML_myCommon::startCommon('aec-wrap-squary', 'aec-wrap-inner-light');
        $buttons = array('apply' => array('style' => 'info', 'text' => JText::_('APPLY'), 'actionable' => true, 'icon' => 'ok-sign'), 'save' => array('style' => 'success', 'text' => JText::_('SAVE'), 'actionable' => true, 'icon' => 'ok'), 'hl1' => array(), 'cancel' => array('style' => 'danger', 'text' => JText::_('CANCEL'), 'icon' => 'remove'));
        HTML_myCommon::startForm();
        HTML_myCommon::getHeader('', 'plans', $row->id ? $row->getProperty('name') : JText::_('AEC_HEAD_PLAN_INFO') . JText::_('AEC_CMN_NEW'), false, $buttons, 'SubscriptionPlan');
        ?>
<div class="col-sm-12"><?php 
        $tabs = new bsPaneTabs();
        $tabs->startTabs();
        $tabs->newTab('plan', JText::_('PAYPLAN_DETAIL_TITLE'));
        $tabs->newTab('processors', JText::_('PAYPLAN_PROCESSORS_TITLE'));
        $tabs->newTab('text', JText::_('PAYPLAN_TEXT_TITLE'));
        $tabs->newTab('restrictions', JText::_('PAYPLAN_RESTRICTIONS_TITLE'));
        $tabs->newTab('trial', JText::_('PAYPLAN_TRIAL_TITLE'));
        $tabs->newTab('relations', JText::_('PAYPLAN_RELATIONS_TITLE'));
        $tabs->newTab('mis', JText::_('PAYPLAN_MI'));
        $tabs->endTabs();
        $tabs->startPanes();
        $tabs->nextPane('plan', true);
        ?>
		<div class="row">
			<div class="col-sm-6 col-md-4">
				<section class="paper">
					<h4>General</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('name');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('active');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('visible');
        ?>
					<div>
						<?php 
        if ($row->id) {
            ?>
							<p style="text-align: center;">
								<a href="<?php 
            echo str_replace("/administrator/", "/", AECToolbox::deadsureURL('index.php?option=com_acctexp&task=subscribe&usage=' . $row->id));
            ?>
" title="<?php 
            echo JText::_('AEC_CGF_LINK_ABO_FRONTEND');
            ?>
" target="_blank">
									<?php 
            echo JText::_('AEC_CGF_LINK_ABO_FRONTEND');
            ?>
								</a>
								&nbsp;|&nbsp;<a href="<?php 
            echo str_replace("/administrator/", "/", AECToolbox::deadsureURL('index.php?option=com_acctexp&task=addtocart&usage=' . $row->id));
            ?>
" title="<?php 
            echo JText::_('AEC_CGF_LINK_CART_FRONTEND');
            ?>
" target="_blank">
									<?php 
            echo JText::_('AEC_CGF_LINK_CART_FRONTEND');
            ?>
								</a>
							</p>
							<?php 
            if (!$aecConfig->cfg['plans_first']) {
                ?>
								<div class="alert alert-info">
									<p><span class="label label-info"><?php 
                echo JText::_('Please Note');
                ?>
:</span> <?php 
                echo JText::_('A direct frontend link only works for existing users who are logged in, or with the Plans First setting');
                ?>
.</p>
								</div>
							<?php 
            }
        }
        ?>
					</div>
				</section>
				<section class="paper">
					<h4>Details</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('make_active');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('make_primary');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('update_existing');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('fixed_redirect');
        ?>
				</section>

				<section class="paper">
					<h4><?php 
        echo JText::_('ITEMGROUPS_TITLE');
        ?>
</h4>
					<?php 
        if ($row->id) {
            ?>
						<table style="width:100%;" class="table table-striped table-hover table-condensed aec-grouplist">
							<thead>
							<tr>
								<th>Group</th>
								<th class="text-right text-muted">Remove</th>
							</tr>
							</thead>
							<tbody>
							<?php 
            if (!empty($aecHTML->customparams->groups)) {
                foreach ($aecHTML->customparams->groups as $id => $group) {
                    HTML_AcctExp::groupRow('item', $group);
                }
            }
            ?>
							</tbody>
							<tfoot>
							<tr>
								<td><?php 
            echo $aecHTML->createSettingsParticle('add_group');
            ?>
</td>
								<td>
									<a class="btn btn-success pull-right" id="addgroup-btn" onClick="addGroup('item','addgroup-btn')"><?php 
            echo aecHTML::Icon('plus');
            ?>
</a>
								</td>
							</tr>
							</tfoot>
						</table>
					<?php 
        } else {
            ?>
						<p>You can select groups after saving this plan for the first time.</p>
					<?php 
        }
        ?>
				</section>
			</div>
			<div class="col-sm-6 col-md-4">
				<section class="paper">
					<h4>Cost&amp;Details</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('full_free');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('full_amount');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('lifetime');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('full_period');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('full_periodunit');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('hide_duration_checkout');
        ?>
					<?php 
        if ($hasrecusers) {
            ?>
						<div class="alert alert-danger">
							<strong><?php 
            echo JText::_('PAYPLAN_AMOUNT_EDITABLE_NOTICE');
            ?>
</strong>
						</div>
					<?php 
        }
        ?>
				</section>
				<section class="paper">
					<h4>Joomla User</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('gid_enabled');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('gid');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('override_activation');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('override_regmail');
        ?>
				</section>
			</div>
			<div class="col-sm-6 col-md-4">
				<section class="paper">
					<h4>Plan Relation</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('fallback');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('fallback_req_parent');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('standard_parent');
        ?>
				</section>
				<section class="paper">
					<h4>Shopping Cart</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('cart_behavior');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('addtocart_max');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('addtocart_redirect');
        ?>
				</section>
				<section class="paper">
					<h4><?php 
        echo 'Notes';
        ?>
</h4>
					<div style="text-align: left;">
						<?php 
        echo $aecHTML->createSettingsParticle('notes');
        ?>
					</div>
				</section>
			</div>
		</div>
		<?php 
        $tabs->nextPane('processors');
        ?>
		<div class="row">
			<div class="col-sm-8 col-sm-offset-2">
				<div class="row">
					<div class="col-sm-4 col-sm-offset-4">
						<br/>
						<?php 
        echo $aecHTML->createSettingsParticle('processor_selectmode');
        ?>
						<br/>
						<input type="button" class="btn btn-success btn-block enable-sorting" value="Unlock Sorting"/>
						<p>&nbsp;</p>
						<p class="text-center">
							You can unlock the processor sorting to rearrange them via drag&amp;drop.
						</p>
					</div>
				</div>
				<ul class="sortable">
					<?php 
        if (!empty($aecHTML->customparams->pp)) {
            foreach ($aecHTML->customparams->pp as $id => $processor) {
                ?>
							<li>
								<section class="paper">
									<h2><?php 
                echo $processor['name'];
                ?>
</h2>
									<p><a href="<?php 
                echo str_replace("/administrator/", "/", AECToolbox::deadsureURL('index.php?option=com_acctexp&task=subscribe&usage=' . $row->id . '&processor=' . $processor['handle']));
                ?>
" title="<?php 
                echo JText::_('AEC_CGF_LINK_ABO_FRONTEND');
                ?>
" target="_blank"><?php 
                echo JText::_('AEC_CGF_LINK_ABO_FRONTEND');
                ?>
</a></p>
									<?php 
                foreach ($processor['params'] as $customparam) {
                    echo $aecHTML->createSettingsParticle($customparam);
                }
                ?>
								</section>
							</li>
						<?php 
            }
        }
        ?>
				</ul>
			</div>
		</div>
		<?php 
        $tabs->nextPane('text');
        ?>
		<div class="row">
			<div class="col-sm-6">
				<section class="paper">
					<h4><?php 
        echo JText::_('Customize');
        ?>
</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('customamountformat');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('desc');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('email_desc');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('meta');
        ?>
				</section>
			</div>
			<div class="col-sm-6">
				<section class="paper">
					<h4><?php 
        echo JText::_('Custom Thanks');
        ?>
</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('customthanks');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('customtext_thanks_keeporiginal');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('customtext_thanks');
        ?>
				</section>
			</div>
		</div>
		<?php 
        $tabs->nextPane('restrictions');
        ?>
		<div class="row">
			<div class="col-sm-6">
				<section class="paper">
					<h4><?php 
        echo JText::_('AEC_RESTRICTIONS_INVENTORY_HEADER');
        ?>
</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('inventory_amount_enabled');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('inventory_amount');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('inventory_amount_used');
        ?>
				</section>
			</div>
			<div class="col-sm-6">
				<section class="paper">
					<h4><?php 
        echo JText::_('AEC_RESTRICTIONS_REDIRECT_HEADER');
        ?>
</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('notauth_redirect');
        ?>
				</section>
			</div>
		</div>
		<?php 
        aecRestrictionHelper::echoSettings($aecHTML);
        ?>
		<?php 
        $tabs->nextPane('trial');
        ?>
		<div class="row">
			<div class="col-sm-8 col-sm-offset-2">
				<section class="paper">
					<h4><?php 
        echo JText::_('PAYPLAN_TRIAL_TITLE');
        ?>
</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('trial_free');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('trial_amount');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('trial_period');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('trial_periodunit');
        ?>
					<div class="alert alert-danger">
						<?php 
        echo JText::_('PAYPLAN_AMOUNT_NOTICE_TEXT');
        ?>
					</div>
				</section>
			</div>
		</div>
		<?php 
        $tabs->nextPane('relations');
        ?>
		<div class="row">
			<div class="col-sm-8 col-sm-offset-2">
				<section class="paper">
					<h4><?php 
        echo JText::_('PAYPLAN_RELATIONS_TITLE');
        ?>
</h4>
					<?php 
        echo $aecHTML->createSettingsParticle('similarplans');
        ?>
					<?php 
        echo $aecHTML->createSettingsParticle('equalplans');
        ?>
				</section>
			</div>
		</div>
		<?php 
        $tabs->nextPane('mis');
        ?>
		<div class="row">
			<div class="col-sm-6">
				<section class="paper">
					<h4><?php 
        echo JText::_('Inherited Micro Integrations');
        ?>
</h4>
					<?php 
        if (!empty($aecHTML->customparams->mi['inherited'])) {
            echo '<p>' . JText::_('These MIs were inherited from groups that this subscription plan is in') . '</p>';
            echo '<ul>';
            foreach ($aecHTML->customparams->mi['inherited'] as $id => $mi) {
                ?>
							<li>
								<p>
									<input type="checkbox" name="inherited_micro_integrations[]" value="<?php 
                echo $mi->id;
                ?>
" checked="checked" disabled="disabled" />
									<strong><?php 
                echo $mi->name;
                ?>
</strong> (#<?php 
                echo $mi->id;
                ?>
)
									(<a href="index.php?option=com_acctexp&amp;task=edit&amp;entity=microintegration&amp;id=<?php 
                echo $mi->id;
                ?>
" target="_blank"><?php 
                echo JText::_('edit');
                ?>
</a>)
								</p>
								<p><?php 
                echo $mi->desc;
                ?>
</p>
							</li>
						<?php 
            }
            echo '</ul>';
        } else {
            echo '<p>' . JText::_('No inherited MIs - A subscription plan can inherit MIs from groups that it is in') . '</p>';
        }
        ?>
				</section>
			</div>
			<div class="col-sm-6">
				<section class="paper">
					<h4><?php 
        echo JText::_('Attached Micro Integrations');
        ?>
</h4>
					<?php 
        if (!empty($aecHTML->customparams->mi['attached'])) {
            echo '<table style="margin: 0 auto;">';
            foreach ($aecHTML->customparams->mi['attached'] as $id => $mi) {
                ?>
							<tr>
								<td>
									<h5>
										<strong><?php 
                echo $mi->name;
                ?>
</strong>
										(#<?php 
                echo $mi->id;
                ?>
)
										<?php 
                echo $mi->inherited ? ' (' . JText::_('inherited from parent group') . '!)' : '';
                ?>
										(<a href="index.php?option=com_acctexp&amp;task=edit&amp;entity=microintegration&amp;id=<?php 
                echo $mi->id;
                ?>
" target="_blank"><?php 
                echo JText::_('edit');
                ?>
</a>)
									</h5>
								</td>
								<td>
									<input id="micro_integrations_<?php 
                echo $mi->id;
                ?>
" class="bootstrap-toggle" type="checkbox" name="micro_integrations[]"<?php 
                echo $mi->attached ? ' checked="checked"' : '';
                ?>
 value="<?php 
                echo $mi->id;
                ?>
" data-state="<?php 
                echo $mi->attached ? '1' : '0';
                ?>
"/>
								</td>
							</tr>
							<tr>
								<td colspan="2" style="border-bottom: 1px dashed #999;">
									<p><?php 
                echo $mi->desc;
                ?>
</p>
								</td>
							</tr>
						<?php 
            }
            echo '</table>';
        } else {
            echo '<p>' . JText::_('No MIs to attach') . '<a href="index.php?option=com_acctexp&amp;task=edit&amp;entity=microintegration" target="_blank">(' . JText::_('create one now?') . ')</a></p>';
        }
        ?>
				</section>
			</div>
		</div>
		<?php 
        if (!empty($aecHTML->customparams->hasperplanmi)) {
            ?>
		<div class="row">
			<div class="col-sm-6">
				<section class="paper">
					<?php 
            echo $aecHTML->createSettingsParticle('micro_integrations_plan');
            ?>
					<?php 
            echo $aecHTML->createSettingsParticle('micro_integrations_hidden');
            ?>
				</section>
			</div>
		</div>
	<?php 
        }
        ?>
		<?php 
        if (!empty($aecHTML->customparams->mi['custom'])) {
            ?>
			<div class="row">
				<?php 
            foreach ($aecHTML->customparams->mi['custom'] as $id => $mi) {
                ?>
					<div class="col-sm-8 col-sm-offset-2">
						<section class="paper">
							<h2><?php 
                echo $mi['name'];
                ?>
</h2>
							<?php 
                foreach ($mi['params'] as $customparam) {
                    echo $aecHTML->createSettingsParticle($customparam);
                }
                ?>
						</section>
					</div>
				<?php 
            }
            ?>
			</div>
		<?php 
        }
        ?>
		<?php 
        $tabs->endPanes();
        ?>
		<input type="hidden" name="id" value="<?php 
        echo $row->id;
        ?>
" />
		<input type="hidden" name="option" value="com_acctexp" />
		<input type="hidden" name="entity" value="SubscriptionPlan" />
		<input type="hidden" name="task" value="save" />
		</form>

		</div>

		<?php 
        HTML_myCommon::endCommon();
    }