Пример #1
0
 public function exportMembers()
 {
     $db = JFactory::getDBO();
     foreach ($this->filter as $k => $v) {
         if (empty($v)) {
             $this->filter[$k] = array();
         }
     }
     // Assemble Database call
     if (!in_array('notconfig', $this->filter['status'])) {
         $where = array();
         if (!empty($this->filter['planid'])) {
             $where[] = '`plan` IN (' . implode(',', $this->filter['planid']) . ')';
         }
         $query = 'SELECT a.id, a.userid' . ' FROM #__acctexp_subscr AS a' . ' INNER JOIN #__users AS b ON a.userid = b.id';
         if (!empty($where)) {
             $query .= ' WHERE ( ' . implode(' OR ', $where) . ' )';
         }
         if (!empty($this->filter['status'])) {
             $stati = array();
             foreach ($this->filter['status'] as $status) {
                 $stati[] = 'LOWER( `status` ) = \'' . strtolower($status) . '\'';
             }
             if (!empty($where)) {
                 $query .= ' AND (' . implode(' OR ', $stati) . ')';
             } else {
                 $query .= ' WHERE (' . implode(' OR ', $stati) . ')';
             }
         }
         if (!empty($this->filter['orderby'])) {
             $query .= ' ORDER BY ' . $this->filter['orderby'] . '';
         }
     } else {
         $query = 'SELECT DISTINCT b.id AS `userid`' . ' FROM #__users as b' . ' WHERE b.id NOT IN (' . ' SELECT a.userid' . ' FROM #__acctexp_subscr as a);';
     }
     $db->setQuery($query);
     $descriptions = AECToolbox::rewriteEngineExplain($this->options['rewrite_rule']);
     $descarray = explode(';', $descriptions);
     $this->exphandler->putDescription($descarray);
     // Fetch Userlist
     $userlist = $db->loadObjectList();
     // Plans Array
     $plans = array();
     // Iterate through userlist
     if (!empty($userlist)) {
         foreach ($userlist as $entry) {
             $metaUser = new metaUser($entry->userid);
             if (!empty($entry->id)) {
                 $metaUser->moveFocus($entry->id);
             }
             if ($metaUser->hasSubscription) {
                 $planid = $metaUser->focusSubscription->plan;
                 if (!isset($plans[$planid])) {
                     $plans[$planid] = new SubscriptionPlan();
                     $plans[$planid]->load($planid);
                 }
                 $invoiceid = aecInvoiceHelper::lastClearedInvoiceIDbyUserID($metaUser->userid, $planid);
                 if ($invoiceid) {
                     $invoice = new Invoice();
                     $invoice->load($invoiceid);
                     $line = AECToolbox::rewriteEngine($this->options['rewrite_rule'], $metaUser, $plans[$planid], $invoice);
                 } else {
                     $line = AECToolbox::rewriteEngine($this->options['rewrite_rule'], $metaUser, $plans[$planid]);
                 }
             } else {
                 $line = AECToolbox::rewriteEngine($this->options['rewrite_rule'], $metaUser);
             }
             $larray = explode(';', $line);
             // Remove whitespaces and newlines
             foreach ($larray as $larrid => $larrval) {
                 $larray[$descarray[$larrid]] = trim($larrval);
                 unset($larray[$larrid]);
             }
             $this->exphandler->putln($larray);
         }
     }
 }
Пример #2
0
 public function loadLatest($userid, $plan, $subscr = null)
 {
     if (!empty($subscr)) {
         $this->loadbySubscriptionId($subscr, $userid);
     }
     if (empty($this->id)) {
         $this->load(aecInvoiceHelper::lastClearedInvoiceIDbyUserID($userid, $plan));
     }
     if (empty($this->id)) {
         $this->load(aecInvoiceHelper::lastUnclearedInvoiceIDbyUserID($userid, $plan));
     }
 }
Пример #3
0
 public function armRewrite()
 {
     global $aecConfig;
     $this->rewrite = array();
     $this->rewrite['system_timestamp'] = AECToolbox::formatDate((int) gmdate('U'), false, false);
     $this->rewrite['system_timestamp_backend'] = AECToolbox::formatDate((int) gmdate('U'), true, false);
     $this->rewrite['system_serverstamp_time'] = AECToolbox::formatDate((int) gmdate('U'));
     $this->rewrite['system_server_timestamp_backend'] = AECToolbox::formatDate((int) gmdate('U'), true);
     $this->rewrite['cms_absolute_path'] = JPATH_SITE;
     $this->rewrite['cms_live_site'] = JURI::root();
     if (empty($this->data['invoice'])) {
         $this->data['invoice'] = null;
     }
     if (!empty($this->data['metaUser'])) {
         if (is_object($this->data['metaUser'])) {
             if (isset($this->data['metaUser']->cmsUser->id)) {
                 $this->rewrite['user_id'] = $this->data['metaUser']->cmsUser->id;
             } else {
                 $this->rewrite['user_id'] = 0;
             }
             if (!empty($this->data['metaUser']->cmsUser->username)) {
                 $this->rewrite['user_username'] = $this->data['metaUser']->cmsUser->username;
             } else {
                 $this->rewrite['user_username'] = "";
             }
             if (!empty($this->data['metaUser']->cmsUser->name)) {
                 $this->rewrite['user_name'] = $this->data['metaUser']->cmsUser->name;
             } else {
                 $this->rewrite['user_name'] = "";
             }
             $name = $this->data['metaUser']->explodeName();
             $this->rewrite['user_first_name'] = $name['first'];
             $this->rewrite['user_first_first_name'] = $name['first_first'];
             $this->rewrite['user_last_name'] = $name['last'];
             if (!empty($this->data['metaUser']->cmsUser->email)) {
                 $this->rewrite['user_email'] = $this->data['metaUser']->cmsUser->email;
             } else {
                 $this->rewrite['user_name'] = "";
             }
             if (defined('JPATH_MANIFESTS')) {
                 if (empty($this->data['metaUser']->hasJProfile)) {
                     $this->data['metaUser']->loadJProfile();
                 }
                 if (!empty($this->data['metaUser']->hasJProfile)) {
                     foreach ($this->data['metaUser']->jProfile as $field => $value) {
                         $this->rewrite['user_' . $field] = $value;
                     }
                 }
             }
             if (aecComponentHelper::detect_component('JOMSOCIAL')) {
                 if (!$this->data['metaUser']->hasJSprofile) {
                     $this->data['metaUser']->loadJSuser();
                 }
                 if (!empty($this->data['metaUser']->hasJSprofile)) {
                     foreach ($this->data['metaUser']->jsUser as $k => $v) {
                         $this->rewrite['user_js_' . $k] = $v;
                     }
                 }
             }
             if (aecComponentHelper::detect_component('anyCB')) {
                 if (!$this->data['metaUser']->hasCBprofile) {
                     $this->data['metaUser']->loadCBuser();
                 }
                 if (!empty($this->data['metaUser']->hasCBprofile)) {
                     $fields = get_object_vars($this->data['metaUser']->cbUser);
                     if (!empty($fields)) {
                         foreach ($fields as $fieldname => $fieldcontents) {
                             $this->rewrite['user_' . $fieldname] = $fieldcontents;
                         }
                     }
                     if (isset($this->data['metaUser']->cbUser->cbactivation)) {
                         $this->rewrite['user_activationcode'] = $this->data['metaUser']->cbUser->cbactivation;
                         $this->rewrite['user_activationlink'] = JURI::root() . "index.php?option=com_comprofiler&task=confirm&confirmcode=" . $this->data['metaUser']->cbUser->cbactivation;
                     } else {
                         $this->rewrite['user_activationcode'] = "";
                         $this->rewrite['user_activationlink'] = "";
                     }
                 } else {
                     if (isset($this->data['metaUser']->cmsUser->activation)) {
                         $this->rewrite['user_activationcode'] = $this->data['metaUser']->cmsUser->activation;
                         $v = new JVersion();
                         if ($v->isCompatible('1.6')) {
                             $this->rewrite['user_activationlink'] = JURI::root() . 'index.php?option=com_users&task=registration.activate&token=' . $this->data['metaUser']->cmsUser->activation;
                         } else {
                             $this->rewrite['user_activationlink'] = JURI::root() . 'index.php?option=com_user&task=activate&activation=' . $this->data['metaUser']->cmsUser->activation;
                         }
                     } else {
                         $this->rewrite['user_activationcode'] = "";
                         $this->rewrite['user_activationlink'] = "";
                     }
                 }
             } else {
                 if (isset($this->data['metaUser']->cmsUser->activation)) {
                     $this->rewrite['user_activationcode'] = $this->data['metaUser']->cmsUser->activation;
                     $v = new JVersion();
                     if ($v->isCompatible('1.6')) {
                         $this->rewrite['user_activationlink'] = JURI::root() . 'index.php?option=com_users&task=registration.activate&token=' . $this->data['metaUser']->cmsUser->activation;
                     } else {
                         $this->rewrite['user_activationlink'] = JURI::root() . 'index.php?option=com_user&task=activate&activation=' . $this->data['metaUser']->cmsUser->activation;
                     }
                 }
             }
             if (!empty($this->data['metaUser']->meta->custom_params)) {
                 foreach ($this->data['metaUser']->meta->custom_params as $k => $v) {
                     if (is_array($v)) {
                         foreach ($v as $xk => $xv) {
                             if (is_array($xv)) {
                                 foreach ($xv as $xyk => $xyv) {
                                     $this->rewrite['user_' . $k . '_' . $xk . '_' . $xyk] = $xyv;
                                 }
                             } else {
                                 $this->rewrite['user_' . $k . '_' . $xk] = $xv;
                             }
                         }
                     } else {
                         $this->rewrite['user_' . $k] = $v;
                     }
                 }
             }
             if ($this->data['metaUser']->hasSubscription) {
                 $this->rewrite['subscription_id'] = $this->data['metaUser']->focusSubscription->id;
                 $this->rewrite['subscription_type'] = $this->data['metaUser']->focusSubscription->type;
                 $this->rewrite['subscription_status'] = $this->data['metaUser']->focusSubscription->status;
                 $this->rewrite['subscription_signup_date'] = AECToolbox::formatDate($this->data['metaUser']->focusSubscription->signup_date);
                 $this->rewrite['subscription_signup_date_backend'] = AECToolbox::formatDate($this->data['metaUser']->focusSubscription->signup_date, true);
                 $this->rewrite['subscription_lastpay_date'] = AECToolbox::formatDate($this->data['metaUser']->focusSubscription->lastpay_date);
                 $this->rewrite['subscription_lastpay_date_backend'] = AECToolbox::formatDate($this->data['metaUser']->focusSubscription->lastpay_date, true);
                 $this->rewrite['subscription_plan'] = $this->data['metaUser']->focusSubscription->plan;
                 if (!empty($this->data['metaUser']->focusSubscription->previous_plan)) {
                     $this->rewrite['subscription_previous_plan'] = $this->data['metaUser']->focusSubscription->previous_plan;
                 } else {
                     $this->rewrite['subscription_previous_plan'] = "";
                 }
                 $this->rewrite['subscription_recurring'] = $this->data['metaUser']->focusSubscription->recurring;
                 $this->rewrite['subscription_lifetime'] = $this->data['metaUser']->focusSubscription->lifetime;
                 $this->rewrite['subscription_expiration_date'] = AECToolbox::formatDate($this->data['metaUser']->focusSubscription->expiration);
                 $this->rewrite['subscription_expiration_date_backend'] = AECToolbox::formatDate($this->data['metaUser']->focusSubscription->expiration, true);
                 $this->rewrite['subscription_expiration_daysleft'] = round((strtotime($this->data['metaUser']->focusSubscription->expiration) - (int) gmdate('U')) / 86400);
                 if (!empty($this->data['metaUser']->focusSubscription->customparams['notes'])) {
                     $this->rewrite['subscription_notes'] = $this->data['metaUser']->focusSubscription->customparams['notes'];
                 } else {
                     $this->rewrite['subscription_notes'] = '';
                 }
             }
             if (empty($this->data['invoice']) && !empty($this->data['metaUser']->cmsUser->id)) {
                 $lastinvoice = aecInvoiceHelper::lastClearedInvoiceIDbyUserID($this->data['metaUser']->cmsUser->id);
                 $this->data['invoice'] = new Invoice();
                 $this->data['invoice']->load($lastinvoice);
             }
         }
     }
     if (is_object($this->data['invoice'])) {
         if (!empty($this->data['invoice']->id)) {
             $this->rewrite['invoice_id'] = $this->data['invoice']->id;
             $this->rewrite['invoice_number'] = $this->data['invoice']->invoice_number;
             $this->rewrite['invoice_created_date'] = $this->data['invoice']->created_date;
             $this->rewrite['invoice_transaction_date'] = $this->data['invoice']->transaction_date;
             $this->rewrite['invoice_method'] = $this->data['invoice']->method;
             $this->rewrite['invoice_amount'] = $this->data['invoice']->amount;
             $this->rewrite['invoice_currency'] = $this->data['invoice']->currency;
             if (!empty($this->data['invoice']->coupons) && is_array($this->data['invoice']->coupons)) {
                 $this->rewrite['invoice_coupons'] = implode(';', $this->data['invoice']->coupons);
             } else {
                 $this->rewrite['invoice_coupons'] = '';
             }
             if (!empty($this->data['metaUser']) && !empty($this->data['invoice'])) {
                 if (!empty($this->data['invoice']->id)) {
                     $this->data['invoice']->formatInvoiceNumber();
                     $this->rewrite['invoice_number_format'] = $this->data['invoice']->invoice_number;
                     $this->data['invoice']->deformatInvoiceNumber();
                 }
             }
         }
     }
     if (!empty($this->data['plan'])) {
         if (is_object($this->data['plan'])) {
             $this->rewrite['plan_name'] = $this->data['plan']->getProperty('name');
             $this->rewrite['plan_desc'] = $this->data['plan']->getProperty('desc');
             if (!empty($this->data['plan']->params['notes'])) {
                 $this->rewrite['plan_notes'] = $this->data['plan']->params['notes'];
             } else {
                 $this->rewrite['plan_notes'] = '';
             }
         }
     }
 }