Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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);
         }
     }
 }
Ejemplo n.º 4
0
 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;
 }