/** * This is not the best example to follow * Please see the category plugin for a better example */ public function post() { require_once JPATH_SITE . '/components/com_acctexp/acctexp.class.php'; $db =& JFactory::getDBO(); $app = JFactory::getApplication(); $userid = JRequest::getInt('user_id', 0); $planid = JRequest::getInt('plan_id', 0); //$new_expiry = JRequest::getString('date',0); $obj = new stdClass(); //validate plan $plans = SubscriptionPlanHandler::getPlanList(); $muser = metaUserDB::getIDbyUserid($userid); //$pplan = metaUserDB::getPreviousPlan($muser); //$uplan = metaUserDB::getUsedPlans($muser); //print_r($new_expiry);die; if (!$userid) { $obj->success = 0; $obj->code = 21; $obj->message = "invalid user id"; } elseif (!$plans[array_search($planid, $plans)]) { $obj->success = 0; $obj->code = 22; $obj->message = "invalid plan id"; } else { $plan = new SubscriptionPlan($db); $plan->load($planid); //print_r($plan->params['full_period']);die; //check user is metauser /*if ( is_a( $user, 'metaUser' ) ) { $metaUser = $user; } elseif( is_a( $user, 'Subscription' ) ) { $metaUser = new metaUser( $user->userid ); $metaUser->focusSubscription = $user; }*/ $metaUser = new metaUser($userid); $renew = $metaUser->is_renewing(); //$metaUser->focusSubscription->lifetime; $metaUser->focusSubscription->plan = $planid; $metaUser->focusSubscription->status = 'Active'; $metaUser->temporaryRFIX(); //$metaUser->focusSubscription->lifetime = 1; //set expiration $now = (int) gmdate('U'); //$current = strtotime($new_expiry); //$metaUser->focusSubscription->expiration = $new_expiry; //$metaUser->objSubscription->expiration = $new_expiry; $reply = $metaUser->focusSubscription->storeload(); if ($reply && $planid) { $history = new logHistory($db); $obj->success = 1; $obj->message = "User added to plan"; } } $this->plugin->setResponse($obj); }
/** * This is not the best example to follow * Please see the category plugin for a better example */ public function post() { require_once JPATH_SITE . '/components/com_acctexp/acctexp.class.php'; $db =& JFactory::getDBO(); $app = JFactory::getApplication(); $userid = JRequest::getInt('user_id', 0); $planid = JRequest::getInt('plan_id', 0); $new_expiry = JRequest::getString('date', 0); //convert date in format $new_expiry = date("Y-m-d h:i:s", strtotime($new_expiry)); $obj = new stdClass(); //validate plan $plans = SubscriptionPlanHandler::getPlanList(); $muser = metaUserDB::getIDbyUserid($userid); $plnuser = SubscriptionPlanHandler::getPlanUserlist($planid); if (!$userid) { $obj->success = 0; $obj->code = 21; $obj->message = "invalid user id"; } elseif (!$plans[array_search($planid, $plans)]) { $obj->success = 0; $obj->code = 22; $obj->message = "invalid plan id"; } elseif ($userid == $plnuser[array_search($userid, $plnuser)]) { $plan = new SubscriptionPlan($db); $plan->load($planid); $metaUser = new metaUser($userid); $renew = $metaUser->is_renewing(); $lifetime = $metaUser->focusSubscription->lifetime; $metaUser->focusSubscription->plan = $planid; $metaUser->focusSubscription->status = 'Active'; $metaUser->temporaryRFIX(); $metaUser->focusSubscription->lifetime = 0; //set expiration //$now = (int) gmdate('U'); $metaUser->focusSubscription->expiration = $new_expiry; //$metaUser->objSubscription->expiration = $new_expiry; $reply = $metaUser->focusSubscription->storeload(); if ($reply && $planid) { $obj->success = 1; $obj->message = "Expiry updated"; } } else { $obj->success = 0; $obj->code = 31; $obj->message = "Plan not assigned to user"; } $this->plugin->setResponse($obj); }
public function Action() { if (empty($_POST['delete'])) { return '<p>Please select a processor to remove.</p>'; } if (empty($_POST['replace'])) { return '<p>Please select a processor to replace the removed processor with.</p>'; } $db = JFactory::getDBO(); $replacepp = new PaymentProcessor(); $replacepp->loadName($_POST['replace']); $deletepp = new PaymentProcessor(); $deletepp->loadName($_POST['delete']); $query = 'UPDATE #__acctexp_invoices' . ' SET `method` = \'' . $replacepp->processor_name . '\'' . ' WHERE `method` = \'' . $deletepp->processor_name . '\''; $db->setQuery($query); $db->query(); $query = 'UPDATE #__acctexp_subscr' . ' SET `type` = \'' . $replacepp->processor_name . '\'' . ' WHERE `type` = \'' . $deletepp->processor_name . '\''; $db->setQuery($query); $db->query(); $query = 'UPDATE #__acctexp_log_history' . ' SET `proc_id` = \'' . $replacepp->id . '\', `proc_name` = \'' . $replacepp->processor_name . '\'' . ' WHERE `proc_name` = \'' . $replacepp->processor_name . '\''; $db->setQuery($query); $db->query(); $planlist = SubscriptionPlanHandler::getPlanList(); foreach ($planlist as $planid) { $plan = new SubscriptionPlan(); $plan->load($planid); if (empty($plan->params['processors'])) { continue; } if (in_array($deletepp->id, $plan->params['processors'])) { unset($plan->params['processors'][array_search($deletepp->id, $plan->params['processors'])]); if (!in_array($replacepp->id, $plan->params['processors'])) { $plan->params['processors'][] = $replacepp->id; } $plan->check(); $plan->store(); } } $query = 'DELETE FROM #__acctexp_config_processors' . ' WHERE `id` = \'' . $deletepp->id . '\''; $db->setQuery($query); $db->query(); return "<p>Alright, replaced and deleted!</p>"; }
public function edit($id) { $lists = array(); $mi = new microIntegration(); $mi->load($id); $aecHTML = null; $attached = array(); $mi_gsettings = $mi->getGeneralSettings(); if (!$mi->id) { // Create MI Selection List $mi_handler = new microIntegrationHandler(); $mi_list = $mi_handler->getIntegrationList(); $drilldown = array('all' => array()); $mi_gsettings['class_name'] = array('hidden'); $mi_gsettings['class_list'] = array('list'); if (count($mi_list) > 0) { foreach ($mi_list as $name) { $mi_item = new microIntegration(); if ($mi_item->callDry($name)) { $handle = str_replace('mi_', '', $mi_item->class_name); if (isset($mi_item->info['type'])) { foreach ($mi_item->info['type'] as $type) { $drill = explode('.', $type); $cursor =& $drilldown; $mi_item->name = str_replace(array(' AEC ', ' MI '), ' ', $mi_item->name); foreach ($drill as $i => $k) { if (!isset($cursor[$k])) { $cursor[$k] = array(); } if ($i == count($drill) - 1) { $cursor[$k][] = '<a href="#' . $handle . '" class="mi-menu-mi"><span class="mi-menu-mi-name">' . $mi_item->name . '</span><span class="mi-menu-mi-desc">' . $mi_item->desc . '</span></a>'; } else { $cursor =& $cursor[$k]; } } } } $drilldown['all'][] = '<a href="#' . $handle . '" class="mi-menu-mi"><span class="mi-menu-mi-name">' . $mi_item->name . '</span><span class="mi-menu-mi-desc">' . $mi_item->desc . '</span></a>'; } } deep_ksort($drilldown); $lists['class_list'] = '<a tabindex="0" href="#mi-select-list" class="btn btn-primary" id="drilldown">Select an Integration</a>'; $lists['class_list'] .= '<div id="mi-select-list" class="hidden"><ul>'; foreach ($drilldown as $lin => $li) { if ($this->lang->hasKey('AEC_MI_LIST_' . strtoupper($lin))) { $kkey = JText::_('AEC_MI_LIST_' . strtoupper($lin)); } else { $kkey = ucwords(str_replace('_', ' ', $lin)); } $lists['class_list'] .= '<li><a href="#">' . $kkey . '</a><ul>'; foreach ($li as $lixn => $lix) { if (is_array($lix)) { if ($this->lang->hasKey('AEC_MI_LIST_' . strtoupper($lixn))) { $xkey = JText::_('AEC_MI_LIST_' . strtoupper($lixn)); } else { $xkey = ucwords(str_replace('_', ' ', $lixn)); } $lists['class_list'] .= '<li><a href="#">' . $xkey . '</a><ul>'; foreach ($lix as $mix) { $lists['class_list'] .= '<li>' . $mix . '</li>'; } $lists['class_list'] .= '</ul></li>'; } else { $lists['class_list'] .= '<li>' . $lix . '</li>'; } } $lists['class_list'] .= '</ul></li>'; } $lists['class_list'] .= '</ul></div>'; } else { $lists['class_list'] = ''; } } if ($mi->id) { // Call MI (override active check) and Settings if ($mi->callIntegration(true)) { $attached['plans'] = microIntegrationHandler::getPlansbyMI($mi->id, false, true); $attached['groups'] = microIntegrationHandler::getGroupsbyMI($mi->id, false, true); $set = array(); foreach ($mi_gsettings as $n => $v) { if (!isset($mi->{$n})) { if (isset($mi->settings[$n])) { $set[$n] = $mi->settings[$n]; } else { $set[$n] = null; } } else { $set[$n] = $mi->{$n}; } } $restrictionHelper = new aecRestrictionHelper(); $mi_gsettings['restr_remaps'] = array('subarea_change', 'restrictions'); $mi_gsettings = array_merge($mi_gsettings, $restrictionHelper->getParams()); if (empty($mi->restrictions)) { $mi->restrictions = array(); } $lists = array_merge($lists, $restrictionHelper->getLists($set, $mi->restrictions)); $mi_gsettings[$mi->id . 'remap'] = array('area_change', 'MI'); $mi_gsettings[$mi->id . 'remaps'] = array('subarea_change', $mi->class_name); $mi_settings = $mi->getSettings(); // Get lists supplied by the MI if (!empty($mi_settings['lists'])) { $lists = array_merge($lists, $mi_settings['lists']); unset($mi_settings['lists']); } $available_plans = SubscriptionPlanHandler::getPlanList(false, false, true, null, true); $selected_plans = array(); foreach ($attached['plans'] as $p) { $selected_plans[] = (object) array('value' => $p->id, 'text' => $p->name); } $lists['attach_to_plans'] = JHTML::_('select.genericlist', $available_plans, 'attach_to_plans[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', $selected_plans); $available_groups = ItemGroupHandler::getGroups(null, true); $selected_groups = array(); foreach ($attached['groups'] as $g) { $selected_groups[] = (object) array('value' => $g->id, 'text' => $g->name); } $lists['attach_to_groups'] = JHTML::_('select.genericlist', $available_groups, 'attach_to_groups[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', $selected_groups); $gsettings = new aecSettings('MI', 'E'); $gsettings->fullSettingsArray($mi_gsettings, array_merge($set, $mi->restrictions), $lists); $settings = new aecSettings('MI', $mi->class_name); $settings->fullSettingsArray($mi_settings, $set, $lists); // Call HTML Class $aecHTML = new aecHTML(array_merge($gsettings->settings, $settings->settings), array_merge($gsettings->lists, $settings->lists)); $aecHTML->hasHacks = method_exists($mi->mi_class, 'hacks'); $aecHTML->customparams = array(); foreach ($mi_settings as $n => $v) { $aecHTML->customparams[] = $n; } $aecHTML->hasSettings = true; $aecHTML->hasRestrictions = !empty($mi->settings['has_restrictions']); } else { $short = 'microIntegration loading failure'; $event = 'When trying to load microIntegration: ' . $mi->id . ', callIntegration failed'; $tags = 'microintegration,loading,error'; $params = array(); $eventlog = new eventLog(); $eventlog->issue($short, $tags, $event, 128, $params); } } else { $settings = new aecSettings('MI', 'E'); $settings->fullSettingsArray($mi_gsettings, array(), $lists); // Call HTML Class $aecHTML = new aecHTML($settings->settings, $settings->lists); $aecHTML->hasSettings = false; $aecHTML->hasRestrictions = false; $available_plans = SubscriptionPlanHandler::getPlanList(false, false, true, null, true); $lists['attach_to_plans'] = JHTML::_('select.genericlist', $available_plans, 'attach_to_plans[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', null); $available_groups = ItemGroupHandler::getGroups(null, true); $lists['attach_to_groups'] = JHTML::_('select.genericlist', $available_groups, 'attach_to_groups[]', 'size="1" multiple="multiple" class="select2-bootstrap"', 'value', 'text', null); } HTML_AcctExp::editMicroIntegration($mi, $lists, $aecHTML, $attached); }
* @version $Id: upgrade_1_2_0.inc.php * @package AEC - Account Control Expiration - Membership Manager * @subpackage Install Includes * @copyright 2011-2015 Copyright (C) David Deutsch * @author David Deutsch <*****@*****.**> & Team AEC - http://www.valanx.org * @license GNU/GPL v.3 http://www.gnu.org/licenses/gpl.html or, at your option, any later version */ // Dont allow direct linking defined('_JEXEC') or die('Direct Access to this location is not allowed.'); $eucaInstalldb->addColifNotExists('hidden', "int(4) NOT NULL default '0'", 'microintegrations'); $eucaInstalldb->addColifNotExists('restrictions', "text NULL", 'microintegrations'); // Due to a bug around 1.2 development, ALL processors were installed. Frequently. // This fixes them. $processors = PaymentProcessorHandler::getInstalledObjectList(); if (count($processors) > 50) { $plans = SubscriptionPlanHandler::getPlanList(); $used_processors = array(); foreach ($plans as $planid) { $plan = new SubscriptionPlan(); $plan->load($planid); if (empty($plan->params['processors'])) { continue; } foreach ($plan->params['processors'] as $processor_id) { if (in_array($processor_id, $used_processors)) { continue; } $used_processors[] = $processor_id; } } foreach ($processors as $processor) {
public function readPlans() { $db = JFactory::getDBO(); $r = array(); $r['head'] = "Payment Plans"; $r['type'] = "table"; $r['def'] = array("ID" => array('id'), "Published" => array('active', 'bool'), "Visible" => array('visible', 'bool'), "Name" => array('name', 'smartlimit haslink', 'editSubscriptionPlan', 'id'), "Desc" => array('desc', 'notags smartlimit'), "Primary" => array(array('params', 'make_primary'), 'bool'), "Activate" => array(array('params', 'make_active'), 'bool'), "Update Exist." => array(array('params', 'update_existing'), 'bool'), "Override Activat." => array(array('params', 'override_activation'), 'bool'), "Override Reg. Email" => array(array('params', 'override_regmail'), 'bool'), "Set GID" => array(array('params', 'gid_enabled'), 'bool'), "GID" => array(array('params', 'gid'), 'list', 'gid'), "Standard Parent Plan" => array(array('params', 'standard_parent'), 'list', 'plan'), "Fallback Plan" => array(array('params', 'fallback'), 'list', 'plan'), "Free" => array(array('params', 'full_free'), 'bool'), "Cost" => array(array('params', 'full_amount')), "Lifetime" => array(array('params', 'lifetime'), 'bool'), "Period" => array(array('params', 'full_period')), "Unit" => array(array('params', 'full_periodunit')), "Free Trial" => array(array('params', 'trial_free'), 'bool'), "Trial Cost" => array(array('params', 'trial_amount')), "Trial Period" => array(array('params', 'trial_period')), "Trial Unit" => array(array('params', 'trial_periodunit')), "Has MinGID" => array(array('restrictions', 'mingid_enabled'), 'bool'), "MinGID" => array(array('restrictions', 'mingid'), 'list', 'gid'), "Has FixGID" => array(array('restrictions', 'fixgid_enabled'), 'bool'), "FixGID" => array(array('restrictions', 'fixgid'), 'list', 'gid'), "Has MaxGID" => array(array('restrictions', 'fixgid_enabled'), 'bool'), "MaxGID" => array(array('restrictions', 'fixgid'), 'list', 'gid'), "Requires Prev. Plan" => array(array('restrictions', 'previousplan_req_enabled'), 'bool'), "Prev. Plan" => array(array('restrictions', 'previousplan_req'), 'list', 'plan'), "Excluding Prev. Plan" => array(array('restrictions', 'previousplan_req_enabled_excluded'), 'bool'), "Excl. Prev. Plan" => array(array('restrictions', 'previousplan_req_excluded'), 'list', 'plan'), "Requires Curr. Plan" => array(array('restrictions', 'currentplan_req_enabled'), 'bool'), "Curr. Plan" => array(array('restrictions', 'currentplan_req'), 'list', 'plan'), "Excluding Curr. Plan" => array(array('restrictions', 'currentplan_req_enabled_excluded'), 'bool'), "Excl. Curr. Plan" => array(array('restrictions', 'currentplan_req_excluded'), 'list', 'plan'), "Requires Overall Plan" => array(array('restrictions', 'overallplan_req_enabled'), 'bool'), "Overall Plan" => array(array('restrictions', 'overallplan_req'), 'list', 'plan'), "Excluding Overall. Plan" => array(array('restrictions', 'overallplan_req_enabled_excluded'), 'bool'), "Excl. Overall. Plan" => array(array('restrictions', 'overallplan_req_excluded'), 'list', 'plan'), "Min Used Plan" => array(array('restrictions', 'used_plan_min_enabled'), 'bool'), "Min Used Plan Amount" => array(array('restrictions', 'used_plan_min_amount')), "Min Used Plans" => array(array('restrictions', 'used_plan_min'), 'list', 'plan'), "Max Used Plan" => array(array('restrictions', 'used_plan_max_enabled'), 'bool'), "Max Used Plan Amount" => array(array('restrictions', 'used_plan_max_amount')), "Max Used Plans" => array(array('restrictions', 'used_plan_max'), 'list', 'plan'), "Custom Restrictions" => array(array('restrictions', 'custom_restrictions_enabled'), 'bool'), "Restrictions" => array(array('restrictions', 'custom_restrictions'))); $plans = SubscriptionPlanHandler::getPlanList(null, null, isset($_POST['use_ordering'])); $r['set'] = array(); foreach ($plans as $planid) { $plan = new SubscriptionPlan(); $plan->load($planid); $ps = array(); foreach ($r['def'] as $nn => $def) { $ps = array_merge($ps, $this->conversionHelper($def, $plan)); } $r['set'][] = $ps; } return $r; }