Ejemplo n.º 1
0
 /**
  * Run task
  *
  * @return void
  */
 protected function doActionRun()
 {
     $event = \XLite\Core\Request::getInstance()->event;
     $result = false;
     $errors = array();
     $task = \XLite\Core\Database::getRepo('XLite\\Model\\EventTask')->findOneBy(array('name' => $event));
     if ($task) {
         if (\XLite\Core\EventListener::getInstance()->handle($task->getName(), $task->getArguments())) {
             \XLite\Core\Database::getEM()->remove($task);
             $result = true;
         }
         $errors = \XLite\Core\EventListener::getInstance()->getErrors();
     } else {
         \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->removeEventState($event);
     }
     \XLite\Core\Database::getEM()->flush();
     $state = \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->getEventState($event);
     $this->setPureAction(true);
     if ($result && $state) {
         \XLite\Core\Event::eventTaskRun(array('percent' => \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->getEventStatePercent($event), 'error' => !empty($errors)));
     } else {
         $result = false;
     }
     if ($errors) {
         foreach ($errors as $message) {
             \XLite\Core\TopMessage::addError($message);
         }
         $result = false;
     }
     $this->valid = $result;
 }
Ejemplo n.º 2
0
 /**
  * Clear list
  *
  * @return void
  */
 public function clearTopMessages()
 {
     parent::clearTopMessages();
     if (\XLite\Core\CMSConnector::isCMSStarted()) {
         \XLite\Module\CDev\DrupalConnector\Handler::getInstance()->clearTopMessages();
     }
 }
Ejemplo n.º 3
0
 /**
  * Update membership list
  *
  * @return void
  */
 protected function doActionUpdate()
 {
     $data = \XLite\Core\Request::getInstance()->update_memberships;
     if (!is_array($data)) {
         // TODO - add top message
     } else {
         $code = $this->getCurrentLanguage();
         $flag = false;
         foreach ($data as $id => $row) {
             $m = \XLite\Core\Database::getRepo('\\XLite\\Model\\Membership')->find($id);
             if ($m) {
                 $duplicate = \XLite\Core\Database::getRepo('\\XLite\\Model\\Membership')->createQueryBuilder()->andWhere('translations.name = :name', 'm.membership_id != :id')->setParameter('name', $row['name'])->setParameter('id', $id)->setMaxResults(1)->getSingleResult();
                 if (!is_null($duplicate)) {
                     \XLite\Core\TopMessage::addWarning('"' . $row['name'] . '" ' . ' membership name is already in use. ' . 'Please specify another name for this membership level');
                 } else {
                     \XLite\Core\Database::getRepo('\\XLite\\Model\\Membership')->update($m, $row);
                 }
                 $flag = true;
             } else {
                 \XLite\Core\TopMessage::addError('Could not find membership ID#' . $id . ' record in the database');
             }
         }
         if ($flag) {
             \XLite\Core\Database::getEM()->flush();
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * Switch state
  *
  * @return void
  */
 protected function doActionSwitch()
 {
     $value = !\XLite\Core\Config::getInstance()->XC->ThemeTweaker->edit_mode;
     \XLite\Core\Database::getRepo('XLite\\Model\\Config')->createOption(array('category' => 'XC\\ThemeTweaker', 'name' => 'edit_mode', 'value' => $value));
     \XLite\Core\TopMessage::addInfo($value ? 'Webmaster mode is enabled' : 'Webmaster mode is disabled');
     $this->setReturnURL($this->buildURL('theme_tweaker_templates'));
 }
Ejemplo n.º 5
0
 /**
  * Validate return from Canada Post merchant registration process
  *
  * @return void
  */
 protected function capostValidateMerchant()
 {
     $token = \XLite\Core\Request::getInstance()->{'token-id'};
     $status = \XLite\Core\Request::getInstance()->{'registration-status'};
     if (\XLite\Module\XC\CanadaPost\Core\Service\Platforms::REG_STATUS_SUCCESS === $status) {
         // Registration is complete
         // Send request to Canada Post server to retrieve merchant details
         $data = \XLite\Module\XC\CanadaPost\Core\Service\Platforms::getInstance()->callGetMerchantRegistrationInfoByToken($token);
         if (isset($data->merchantInfo)) {
             // Update Canada Post settings
             $this->updateCapostMerchantSettings($data->merchantInfo);
             // Disable wizard
             $this->disableCapostWizard();
             \XLite\Core\TopMessage::getInstance()->addInfo('Registration process has been completed successfully.');
         } else {
             foreach ($data->errors as $err) {
                 \XLite\Core\TopMessage::getInstance()->addError('ERROR: [' . $err->code . '] ' . $err->description);
             }
         }
     } else {
         // An error occurred
         if (\XLite\Module\XC\CanadaPost\Core\Service\Platforms::REG_STATUS_CANCELLED === $status) {
             \XLite\Core\TopMessage::getInstance()->addError('Registration process has been canceled.');
         } else {
             \XLite\Core\TopMessage::getInstance()->addError('Failure to finish registration process.');
         }
     }
     // Remove token from the session
     \XLite\Core\Session::getInstance()->capost_token_id = null;
     \XLite\Core\Session::getInstance()->capost_token_ts = null;
     // Redirect back to the Canada Post settings page
     $this->setReturnURL($this->buildURL('capost'));
 }
Ejemplo n.º 6
0
 /**
  * Preprocessor for no-action run
  *
  * @return void
  */
 protected function doNoAction()
 {
     $this->restoreOrder();
     if ($this->addedOrder) {
         $reason = $this->addedOrder->getFailureReason() ?: $this->getDefaultFailureReason();
         \XLite\Core\TopMessage::addError($reason);
     }
 }
Ejemplo n.º 7
0
Archivo: Main.php Proyecto: kingsj/core
 /**
  * doActionUpdateInventoryProducts
  *
  * @return void
  */
 protected function doActionUpdateInventoryProducts()
 {
     // Update price and other fields
     \XLite\Core\Database::getRepo('\\XLite\\Model\\Product')->updateInBatchById($this->getPostedData());
     // Update inventory
     \XLite\Core\Database::getRepo('\\XLite\\Model\\Inventory')->updateInBatchById($this->getPostedData());
     \XLite\Core\TopMessage::addInfo('Inventory has been successfully updated');
 }
Ejemplo n.º 8
0
 /**
  * Prevent users registering by administrator
  *
  * @return void
  */
 public function handleRequest()
 {
     if ($this->isRegisterMode() || 'delete' === \XLite\Core\Request::getInstance()->action) {
         \XLite\Core\TopMessage::addError('It is impossible to delete or create user accounts because your store currently works ' . 'as an integration with Drupal and shares users with Drupal. Deleting/creating user ' . 'accounts is possible via Drupal administrator interface.');
         $this->markAsAccessDenied();
     }
     return parent::handleRequest();
 }
Ejemplo n.º 9
0
 /**
  * Do action
  *
  * @return void
  */
 protected function doActionConfirmWithPassword()
 {
     $password = \XLite\Core\Request::getInstance()->password;
     $result = null !== $password && \XLite\Core\Auth::comparePassword(\XLite\Core\Auth::getInstance()->getProfile()->getPassword(), $password);
     if (!$result) {
         \XLite\Core\TopMessage::addError('Incorrect password. Please try again.');
     }
     \XLite\Core\Event::passwordConfirmed(array('result' => $result));
 }
Ejemplo n.º 10
0
 /**
  * doActionDelete
  *
  * @return void
  * @throws
  */
 protected function doActionDelete()
 {
     if (\Includes\Utils\FileManager::isExists($this->sqldumpFile) && !\Includes\Utils\FileManager::deleteFile($this->sqldumpFile)) {
         \XLite\Core\TopMessage::addError(static::t('Unable to delete file') . ' ' . $this->sqldumpFile);
     } else {
         \XLite\Core\TopMessage::addInfo('SQL file was deleted successfully');
     }
     $this->doRedirect();
 }
Ejemplo n.º 11
0
 /**
  * Check amazon S3 settings 
  * 
  * @return void
  */
 protected function checkAmazonS3Settings()
 {
     $config = \XLite\Core\Config::getInstance()->CDev->AmazonS3Images;
     if (!function_exists('curl_init')) {
         \XLite\Core\TopMessage::addError('This module uses PHP\'s cURL functions which are disabled on your web server');
     } elseif ($config->access_key && $config->secret_key && !\XLite\Module\CDev\AmazonS3Images\Core\S3::getInstance()->isValid()) {
         \XLite\Core\TopMessage::addWarning('Connection to Amazon S3 failed.' . ' Check whether the AWS Access key и AWS Secret key specified in the module settings are correct.');
     }
 }
Ejemplo n.º 12
0
 /**
  * Do action clone
  *
  * @return void
  */
 protected function doActionSaleCancelSale()
 {
     $select = \XLite\Core\Request::getInstance()->select;
     if ($select && is_array($select)) {
         \XLite\Core\Database::getRepo('\\XLite\\Model\\Product')->updateInBatchById($this->getUpdateInfo());
         \XLite\Core\TopMessage::addInfo('Products information has been successfully updated');
     } else {
         \XLite\Core\TopMessage::addWarning('Please select the products first');
     }
 }
Ejemplo n.º 13
0
 /**
  * Do redirect customer to iDEAL server for payment
  *
  * @return void
  */
 protected function doActionTransaction()
 {
     try {
         $processor = new \XLite\Module\XC\IdealPayments\Model\Payment\Processor\IdealProfessional();
         $processor->doTransactionRequest(\XLite\Core\Request::getInstance()->iid, \XLite\Core\Request::getInstance()->transid);
     } catch (\Exception $e) {
         \XLite\Core\TopMessage::addError(static::t('Something wrong in the iDEAL payment module settings. Please try later or use other payment option.'));
         $this->setReturnURL('checkout');
     }
 }
Ejemplo n.º 14
0
 /**
  * Request probe script
  *
  * @return void
  */
 protected function requestProbe()
 {
     $url = \XLite::getInstance()->getShopURL(\XLite\Core\Converter::buildURL('', '', array('key' => \XLite\Core\Config::getInstance()->Internal->probe_key), 'probe.php'));
     set_time_limit(0);
     $request = new \XLite\Core\HTTP\Request($url);
     $response = $request->sendRequest();
     if (200 != $response->code) {
         \XLite\Core\TopMessage::addError('Measuring productivity in manual mode failed.');
     }
 }
Ejemplo n.º 15
0
 /**
  * doActionRecoverPassword
  *
  * @return void
  */
 protected function doActionRecoverPassword()
 {
     // show recover message if email is valid
     if ($this->requestRecoverPassword($this->get('email'))) {
         $this->setReturnURL($this->buildURL('recover_password', '', array('mode' => 'recoverMessage', 'link_mailed' => 1, 'email' => $this->get('email'))));
     } else {
         $this->setReturnURL($this->buildURL('recover_password', '', array('valid' => 0)));
         \XLite\Core\TopMessage::addError('There is no user with specified email address');
     }
 }
Ejemplo n.º 16
0
 /**
  * This function is called if action is forbidden in demo mode
  *
  * @return void
  */
 protected function forbidInDemoMode()
 {
     $message = $this->getForbidInDemoModeMessage();
     if ($message) {
         \XLite\Core\TopMessage::addWarning($message);
     }
     $url = $this->getForbidInDemoModeRedirectURL();
     if ($url) {
         \Includes\Utils\Operator::redirect($url);
     }
 }
Ejemplo n.º 17
0
 /**
  * Do action
  *
  * @return void
  */
 protected function doActionConfirmWithPassword()
 {
     $password = \XLite\Core\Request::getInstance()->password;
     $result = null !== $password && \XLite\Core\Auth::comparePassword(\XLite\Core\Auth::getInstance()->getProfile()->getPassword(), $password);
     if ($result) {
         echo 1;
     } else {
         \XLite\Core\TopMessage::addError('Incorrect password. Please try again.');
         echo 0;
     }
 }
Ejemplo n.º 18
0
 /**
  * Action 'import'
  *
  * @return void
  */
 protected function doActionImport()
 {
     $fileName = \XLite\Core\Session::getInstance()->language_import_file;
     if (\Includes\Utils\FileManager::isExists($fileName)) {
         $result = \XLite\Core\Database::getRepo('XLite\\Model\\Language')->parseImportFile($fileName, true);
         \XLite\Core\Session::getInstance()->language_import_result = $result;
     } else {
         \XLite\Core\Session::getInstance()->language_import_file = null;
         \XLite\Core\TopMessage::addError('File not found');
     }
     $this->setReturnURL($this->buildURL('languages'));
 }
Ejemplo n.º 19
0
 /**
  * Set sale price parameters for products list
  *
  * @return void
  */
 protected function doActionSetSalePrice()
 {
     $form = new \XLite\Module\CDev\Sale\View\Form\SaleSelectedDialog();
     $form->getRequestData();
     if ($form->getValidationMessage()) {
         \XLite\Core\TopMessage::addError($form->getValidationMessage());
     } else {
         \XLite\Core\Database::getRepo('\\XLite\\Model\\Product')->updateInBatchById($this->getUpdateInfo());
         \XLite\Core\TopMessage::addInfo('Products information has been successfully updated');
     }
     $this->setReturnURL($this->buildURL('product_list', '', array('mode' => 'search')));
 }
Ejemplo n.º 20
0
 /**
  * Process 'Add item' success
  *
  * @return void
  */
 protected function processAddItemSuccess()
 {
     // todo: rewrite add2cartPopup top message block
     // parent::processAddItemSuccess();
     if (\XLite\Module\CDev\Paypal\Main::isExpressCheckoutEnabled()) {
         if (!\XLite\Core\Request::getInstance()->expressCheckout) {
             \XLite\Core\TopMessage::addInfo(new \XLite\Module\CDev\Paypal\View\Button\TopMessage\ExpressCheckout());
         }
     } else {
         parent::processAddItemSuccess();
     }
 }
Ejemplo n.º 21
0
 /**
  * Return current module object
  *
  * @return \XLite\Model\Module
  * @throws \Exception
  */
 public function getModule()
 {
     if (!isset($this->module)) {
         $this->module = \XLite\Core\Database::getRepo('\\XLite\\Model\\Module')->find($this->getModuleID());
         if (!$this->module) {
             \XLite\Core\TopMessage::addError('Add-on does not exist.');
             \XLite\Logger::getInstance()->log('Add-on does not exist (ID: ' . $this->getModuleID() . ')', LOG_ERR);
             $this->redirect($this->buildURL('addons_list_installed'));
         }
     }
     return $this->module;
 }
Ejemplo n.º 22
0
 /**
  * X-Cart Wrapper for BitPay Library
  * @param \XLite\Model\Payment\Method $method
  */
 public function __construct($method)
 {
     $this->method = $method;
     // Load up the BitPay library
     $autoloader = LC_DIR_MODULES . 'BitPay' . LC_DS . 'BitPay' . LC_DS . 'lib' . LC_DS . 'Bitpay' . LC_DS . 'xcartAutoloader.php';
     if (true === file_exists($autoloader) && true === is_readable($autoloader)) {
         require_once $autoloader;
         \Bitpay\xcartAutoloader::register();
     } else {
         \XLite\Core\TopMessage::getInstance()->addError('[Error] Unable to load BitPay library');
     }
 }
Ejemplo n.º 23
0
 protected function getFormURL()
 {
     $this->callEbanxLib();
     $params = array();
     $params = $this->getFormFields();
     $response = \Ebanx\Ebanx::doRequest($params);
     if ($response->status == 'SUCCESS') {
         $checkoutURL = $response->redirect_url;
     } else {
         \XLite\Core\TopMessage::addError('Erro processando pagamento! EBANX: ' . $response->status_code . ": " . $response->status_message);
         return;
     }
     return $checkoutURL;
 }
Ejemplo n.º 24
0
 /**
  * Renew egood link
  *
  * @return void
  */
 protected function doActionEgoodsRenew()
 {
     $id = \XLite\Core\Request::GetInstance()->attachment_id;
     $attachment = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\Egoods\\Model\\OrderItem\\PrivateAttachment')->find($id);
     if (!$attachment) {
         \XLite\Core\TopMessage::addError('Download link did not found');
     } elseif (!$attachment->isActive()) {
         \XLite\Core\TopMessage::addError('Download link is not active');
     } else {
         $attachment->renew();
         \XLite\Core\Database::getEM()->flush();
         \XLite\Core\Mailer::sendEgoodsLinks($attachment->getItem()->getOrder());
         \XLite\Core\TopMessage::addInfo('Download link is renew');
     }
 }
Ejemplo n.º 25
0
 /**
  * Login
  *
  * @return void
  */
 protected function doActionLogin()
 {
     $profile = \XLite\Core\Auth::getInstance()->loginAdministrator(\XLite\Core\Request::getInstance()->login, \XLite\Core\Request::getInstance()->password);
     if (is_int($profile) && \XLite\Core\Auth::RESULT_ACCESS_DENIED === $profile) {
         $this->set('valid', false);
         \XLite\Core\TopMessage::addError('Invalid login or password');
         $returnURL = $this->buildURL('login');
     } elseif (isset(\XLite\Core\Session::getInstance()->lastWorkingURL)) {
         $returnURL = \XLite\Core\Session::getInstance()->get('lastWorkingURL');
         \XLite\Core\Session::getInstance()->set('lastWorkingURL', null);
     } else {
         $returnURL = $this->buildURL();
     }
     $this->setReturnURL($returnURL);
 }
Ejemplo n.º 26
0
 /**
  * Common handler for pin codes import
  *
  * @param string $methodToLoad Method to use for getting file
  * @param array  $paramsToLoad Parameters to use in getter method
  *
  * @return void
  */
 protected function doActionSelectImportPinCodes($methodToLoad, array $paramsToLoad)
 {
     \XLite\Core\Session::getInstance()->importPinCodesCell = null;
     $methodToLoad .= 'Import';
     $path = call_user_func_array(array($this, $methodToLoad), $paramsToLoad);
     if (is_array($path)) {
         if (!$path[0] && $path[1]) {
             \XLite\Core\TopMessage::addError($path[1]);
         }
         $path = $path[0];
     }
     if ($path) {
         chmod($path, 0644);
         \XLite\Core\Session::getInstance()->pinCodesImportFile = $path;
     }
 }
Ejemplo n.º 27
0
 /**
  * Return zone
  *
  * @return \XLite\Model\Zone
  */
 public function getZone()
 {
     if (!isset($this->zone)) {
         if (isset(\XLite\Core\Request::getInstance()->zone_id)) {
             $zone = \XLite\Core\Database::getRepo('XLite\\Model\\Zone')->find(\XLite\Core\Request::getInstance()->zone_id);
             if (!isset($zone)) {
                 \XLite\Core\TopMessage::addError('Requested zone does not exists');
             } else {
                 $this->zone = $zone;
             }
         } else {
             $this->zone = new \XLite\Model\Zone();
         }
     }
     return $this->zone;
 }
Ejemplo n.º 28
0
 /**
  * Update pin codes action handler
  *
  * @return void
  */
 public function doActionUpdatePinCodes()
 {
     $product = $this->getProduct();
     $product->setPinCodesEnabled((bool) \XLite\Core\Request::getInstance()->pins_enabled);
     $product->setAutoPinCodes(\XLite\Core\Request::getInstance()->autoPinCodes);
     if (\XLite\Core\Request::getInstance()->delete) {
         foreach (\XLite\Core\Request::getInstance()->delete as $id => $checked) {
             $obj = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\PINCodes\\Model\\PinCode')->findOneBy(array('id' => $id, 'product' => $product->getId(), 'isSold' => 0));
             if ($obj) {
                 \XLite\Core\Database::getEM()->remove($obj);
             }
         }
     }
     \XLite\Core\Database::getEM()->flush();
     \XLite\Core\TopMessage::addInfo('PIN codes data have been successfully updated');
 }
Ejemplo n.º 29
0
 /**
  * Perform login action
  *
  * @return void
  */
 protected function doActionLogin()
 {
     $loginApi = new \XLite\Module\CDev\Paypal\Core\Login();
     $requestProcessed = false;
     $returnURL = '';
     \XLite\Module\CDev\Paypal\Main::addLog('Login return', \XLite\Core\Request::getInstance()->getData());
     if ($loginApi->checkRequest()) {
         $accessToken = $loginApi->createFromAuthorisationCode(\XLite\Core\Request::getInstance()->code);
         $profileInfo = isset($accessToken['access_token']) ? $loginApi->getUserinfo($accessToken['access_token']) : null;
         if ($profileInfo && !empty($profileInfo['user_id']) && !empty($profileInfo['email'])) {
             $profile = $this->getSocialLoginProfile($profileInfo['email'], 'PayPal', $profileInfo['user_id'], $profileInfo);
             if ($profile) {
                 if ($profile->isEnabled()) {
                     \XLite\Core\Auth::getInstance()->loginProfile($profile);
                     $accessToken['expirationTime'] = LC_START_TIME + $accessToken['expires_in'];
                     \XLite\Core\Session::getInstance()->paypalAccessToken = $accessToken;
                     // We merge the logged in cart into the session cart
                     $profileCart = $this->getCart();
                     $profileCart->login($profile);
                     \XLite\Core\Database::getEM()->flush();
                     if ($profileCart->isPersistent()) {
                         $this->updateCart();
                     }
                     $returnURL = $this->getAuthReturnURL();
                 } else {
                     \XLite\Core\TopMessage::addError('Profile is disabled');
                     $returnURL = $this->getAuthReturnURL(true);
                 }
             } else {
                 $provider = \XLite\Core\Database::getRepo('XLite\\Model\\Profile')->findOneBy(array('login' => $profileInfo['email'], 'order' => null))->getSocialLoginProvider();
                 if ($provider) {
                     $signInVia = 'Please sign in with ' . $provider . '.';
                 } else {
                     $signInVia = 'Profile with the same e-mail address already registered. ' . 'Please sign in the classic way.';
                 }
                 \XLite\Core\TopMessage::addError($signInVia);
                 $returnURL = $this->getAuthReturnURL(true);
             }
             $requestProcessed = true;
         }
     }
     if (!$requestProcessed) {
         \XLite\Core\TopMessage::addError('We were unable to process this request');
         $returnURL = '';
     }
     $this->closePopup($returnURL);
 }
Ejemplo n.º 30
0
 /**
  * Common handler for page images.
  *
  * @param string $methodToLoad Method to use for getting images
  * @param array  $paramsToLoad Parameters to use in image getter method
  *
  * @return void
  * @see    ____func_see____
  * @since  1.0.7
  */
 protected function doActionSelectPageImage($methodToLoad, array $paramsToLoad)
 {
     $pageId = intval(\XLite\Core\Request::getInstance()->objectId);
     $page = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\SimpleCMS\\Model\\Page')->find($pageId);
     $image = $page->getImage();
     if (!$image) {
         $image = new \XLite\Module\CDev\SimpleCMS\Model\Image\Page\Image();
     }
     if (call_user_func_array(array($image, $methodToLoad), $paramsToLoad)) {
         $image->setPage($page);
         $page->setImage($image);
         \XLite\Core\Database::getEM()->persist($image);
         \XLite\Core\Database::getEM()->flush();
         \XLite\Core\TopMessage::addInfo('The image has been updated');
     } else {
         \XLite\Core\TopMessage::addError('Failed to update page image');
     }
 }