private function sendMessage(NewsletterSentMessage $sent, LiveCart $application) { $config = $application->getConfig(); $email = new Email($application); $email->setTemplate('newsletter/template'); $email->set('subject', $this->subject->get()); $email->set('htmlMessage', $this->html->get()); $email->set('text', $this->text->get()); $email->set('email', $this->text->get()); $email->setFrom($config->get('NEWSLETTER_EMAIL') ? $config->get('NEWSLETTER_EMAIL') : $config->get('MAIN_EMAIL'), $config->get('STORE_NAME')); if ($user = $sent->user->get()) { $email->setTo($user->email->get(), $user->getName()); $email->set('email', $user->email->get()); } else { if ($subscriber = $sent->subscriber->get()) { $email->setTo($subscriber->email->get()); $email->set('email', $subscriber->email->get()); } } //$sent->time->set(new ARExpressionHandle('NOW()')); $sent->save(); if ($this->status->get() == self::STATUS_NOT_SENT) { $this->status->set(self::STATUS_PARTIALLY_SENT); $this->time->set(new ARExpressionHandle('NOW()')); $this->save(); } return $email->send(); }
public static function getConfiguredRepos(LiveCart $application, $domain) { $k = 0; $repos = array(); $config = $application->getConfig(); while ($config->isValueSet('UPDATE_REPO_' . ++$k)) { $repo = $config->get('UPDATE_REPO_' . $k); if ($repo) { $repos[$repo] = new ModuleRepo($application, $repo, $domain); } } return $repos; }
protected function getPendingModuleUpdateStats(LiveCart $application) { $config = $application->getConfig(); // modules needing update if (!$config->isValueSet('MODULE_STATS_UPDATED') || time() - $config->get('MODULE_STATS_UPDATED') > 3600) { $config->set('MODULE_STATS_UPDATED', time()); $config->save(); $controller = new ModuleController($this->application); $controller->initRepos(); $updateResponse = $controller->index(); $modules = $updateResponse->get('sortedModules'); $config->set('MODULE_STATS_NEED_UPDATING', isset($modules['needUpdate']) ? count($modules['needUpdate']) : 0); $config->save(); foreach ($this->getConfigFiles() as $file) { $this->loadLanguageFile($file); } } }
public function getVariationData(LiveCart $app) { $variations = $this->getVariationMatrix(); if (!$variations) { return array(); } $trackInventory = $app->getConfig()->get('INVENTORY_TRACKING') != 'DISABLE'; foreach ($variations['products'] as $parentID => $products) { $variations['options'][$parentID] = array(); // filter out unavailable products foreach ($variations['products'][$parentID] as $key => &$product) { if (!$product['isEnabled'] || $trackInventory && $product['stockCount'] <= 0) { unset($variations['products'][$parentID][$key]); } } // get used variations $usedVariations = array(); foreach ($variations['products'][$parentID] as $key => &$product) { $usedVariations = array_merge($usedVariations, explode('-', $key)); } $usedVariations = array_flip($usedVariations); // prepare select options foreach ($variations['variations'][$parentID] as &$type) { $type['selectOptions'] = array(); foreach ($type['variations'] as $variation) { $var = $variation['Variation']; if (isset($usedVariations[$var['ID']])) { $type['selectOptions'][$var['ID']] = $var['name_lang']; } } $variations['options'][$parentID] = $variations['options'][$parentID] + $type['selectOptions']; } // set used variation names foreach ($variations['products'][$parentID] as $key => &$product) { $product['variationNames'] = array_intersect_key($variations['options'][$parentID], array_flip(explode('-', $key))); } } return $variations; }