/** * 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')); }
/** * 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'); }
/** * 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(); }
/** * 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'); } }
/** * 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'))); }
/** * 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(); } }
/** * 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'); } }
/** * 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'); }
/** * 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'); } }
/** * Place URL into engine's endpoints * * @return void */ protected function doActionLocate() { $engines = \XLite\Core\Request::getInstance()->engines; if ($engines) { foreach ($this->getEngines() as $key => $engine) { if (in_array($key, $engines)) { $url = urlencode(\XLite::getInstance()->getShopURL(\XLite\Core\Converter::buildURL('sitemap', '', array(), \XLite::CART_SELF))); $url = str_replace('%url%', $url, $engine['url']); $request = new \XLite\Core\HTTP\Request($url); $response = $request->sendRequest(); if (200 == $response->code) { \XLite\Core\TopMessage::addInfo('Site map successfully registred on X', array('engine' => $key)); } else { \XLite\Core\TopMessage::addWarning('Site map has not been registred in X', array('engine' => $key)); } } } } }
/** * Do action 'Update' * * @return void */ public function doActionUpdate() { $isUpdated = false; $postedData = \XLite\Core\Request::getInstance()->getData(); $a2cpEnableForDropping = !empty($postedData['a2cp_enable_for_dropping']); if ($a2cpEnableForDropping != \XLite\Core\Config::getInstance()->XC->Add2CartPopup->a2cp_enable_for_dropping) { \XLite\Core\Database::getRepo('\\XLite\\Model\\Config')->createOption(array('category' => 'XC\\Add2CartPopup', 'name' => 'a2cp_enable_for_dropping', 'value' => $a2cpEnableForDropping ? 'Y' : 'N')); $isUpdated = true; } $options = array(); if (isset($postedData['data']) && is_array($postedData['data'])) { foreach ($postedData['data'] as $code => $info) { $options[$code] = array('position' => $info['position'], 'enabled' => $info['enabled']); } \XLite\Core\Database::getRepo('\\XLite\\Model\\Config')->createOption(array('category' => 'XC\\Add2CartPopup', 'name' => 'product_sources', 'value' => serialize($options))); $isUpdated = true; } if ($isUpdated) { \XLite\Core\TopMessage::addInfo('Add to Cart popup module settings have been updated.'); } }
/** * Apply coupon to the cart * * @return void */ protected function doActionAdd() { $code = (string) \XLite\Core\Request::getInstance()->code; /** @var \XLite\Module\CDev\Coupons\Model\Coupon $coupon */ $coupon = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\Coupons\\Model\\Coupon')->findOneByCode($code); $cart = $this->getCart(); if ($coupon) { $error = $this->checkCompatibility($coupon, $cart); } else { $error = static::t('There is no such a coupon, please check the spelling: X', array('code' => $code)); } if ('' === $error) { $cart->addCoupon($coupon); \XLite\Core\Database::getEM()->flush(); $this->updateCart(); \XLite\Core\TopMessage::addInfo('The coupon has been applied to your order'); } elseif ($error) { \XLite\Core\Event::invalidElement('code', $error); } $this->setPureAction(); }
/** * Update payment method * * @return void */ protected function doActionUpdate() { $settings = \XLite\Core\Request::getInstance()->settings; $m = $this->getPaymentMethod(); if (!$m) { \XLite\Core\TopMessage::addError('An attempt to update settings of unknown payment method'); } else { if (is_array($settings)) { foreach ($settings as $name => $value) { $m->setSetting($name, $value); } } $properties = \XLite\Core\Request::getInstance()->properties; if (is_array($properties) && !empty($properties)) { $m->map($properties); } \XLite\Core\Database::getRepo('\\XLite\\Model\\Payment\\Method')->update($m); \XLite\Core\TopMessage::addInfo('The settings of payment method successfully updated'); $this->setReturnURL($this->buildURL('payment_settings')); } }
/** * Place URL into engine's endpoints * * @return void */ protected function doActionLocate() { $engines = \XLite\Core\Request::getInstance()->engines; if ($engines) { foreach ($this->getEngines() as $key => $engine) { if (in_array($key, $engines)) { $url = urlencode(\XLite::getInstance()->getShopURL(\XLite\Core\Converter::buildURL('sitemap', '', array(), \XLite::getCustomerScript()))); $url = str_replace('%url%', $url, $engine['url']); $request = new \XLite\Core\HTTP\Request($url); $response = $request->sendRequest(); if (200 == $response->code) { \XLite\Core\TopMessage::addInfo('Site map successfully registred on X', array('engine' => $key)); } else { \XLite\Core\TopMessage::addWarning('Site map has not been registred in X', array('engine' => $key)); } } } } $postedData = \XLite\Core\Request::getInstance()->getData(); $options = \XLite\Core\Database::getRepo('\\XLite\\Model\\Config')->findBy(array('category' => $this->getOptionsCategory())); $isUpdated = false; foreach ($options as $key => $option) { $name = $option->getName(); $type = $option->getType(); if (isset($postedData[$name]) || 'checkbox' == $type) { if ('checkbox' == $type) { $option->setValue(isset($postedData[$name]) ? 'Y' : 'N'); } else { $option->setValue($postedData[$name]); } $isUpdated = true; \XLite\Core\Database::getEM()->persist($option); } } if ($isUpdated) { \XLite\Core\Database::getEM()->flush(); } }
/** * doActionConfirm * * @return void */ protected function doActionConfirm() { if ($this->get('email') && \XLite\Core\Request::getInstance()->request_id && $this->doPasswordRecovery($this->get('email'), \XLite\Core\Request::getInstance()->request_id)) { \XLite\Core\TopMessage::addInfo('Please create a new password'); $this->setReturnURL($this->buildURL()); \XLite\Core\Event::recoverPasswordDone(array('email' => $this->get('email'))); } }
/** * Add top message * * @return void */ protected function addDataDeletedTopMessage() { \XLite\Core\TopMessage::addInfo('Data have been deleted successfully'); }
/** * Add top message * * @return void */ protected function addDataSavedTopMessage() { if ('create' !== $this->currentAction) { \XLite\Core\TopMessage::addInfo('The category has been updated'); } else { \XLite\Core\TopMessage::addInfo('The category has been added'); } }
/** * Request for upgrade * * @return void */ protected function doActionRequestForUpgrade() { $modules = \XLite\Upgrade\Cell::getInstance()->getIncompatibleModules(); if ($modules) { $result = \XLite\Core\Marketplace::getInstance()->requestForUpgrade($modules); if (!empty($result) && $result[\XLite\Core\Marketplace::FIELD_IS_REQUEST_FOR_UPGRADE_SENT]) { \XLite\Core\TopMessage::addInfo('Your request has been sent successfully'); } else { \XLite\Core\TopMessage::addWarning('An error occurred while sending the request'); } } }
/** * Do action disable * * @return void */ protected function doActionDisable() { $select = \XLite\Core\Request::getInstance()->select; if ($select && is_array($select)) { \XLite\Core\Database::getRepo('\\XLite\\Model\\Country')->updateInBatchById(array_fill_keys(array_keys($select), array('enabled' => false))); \XLite\Core\TopMessage::addInfo('Countries information has been successfully updated'); } else { \XLite\Core\TopMessage::addWarning('Please select the countries first'); } }
/** * Decorator run this method at the end of cache rebuild * * @return void */ public static function runBuildCacheHandler() { $language = \XLite\Core\Database::getRepo('\\XLite\\Model\\Language')->findOneByCode(static::LANG_CODE); if (isset($language)) { if (!$language->getEnabled()) { $language->setEnabled(true); \XLite\Core\Database::getRepo('\\XLite\\Model\\Language')->update($language); \XLite\Core\TopMessage::addInfo('The X language has been added and enabled successfully', array('language' => $language->getName()), $language->getCode()); } \XLite\Core\Translation::getInstance()->reset(); } else { \XLite\Core\TopMessage::addError('The language you want to add has not been found'); } }
/** * Import payment methods from X-Payments and return error or warning message (if any) * * @return void */ public function importPaymentMethods() { $list = \XLite\Module\CDev\XPaymentsConnector\Core\XPaymentsClient::getInstance()->requestPaymentMethods(); if (is_array($list) && !empty($list)) { foreach ($this->getPaymentMethods() as $pm) { if (!$this->checkMethodInImportedList($pm, $list)) { \XLite\Core\Database::getEM()->remove($pm); } } foreach ($list as $settings) { if (!isset($settings['paymentMethodId'])) { // Create new payment method $pm = new \XLite\Model\Payment\Method(); \XLite\Core\Database::getEM()->persist($pm); $xpModuleClass = $this->detectModuleClass($settings); $pm->setClass('Module\\CDev\\XPaymentsConnector\\Model\\Payment\\Processor\\XPayments'); $pm->setServiceName('XPayments.' . $xpModuleClass); $pm->setName($settings['moduleName']); $pm->setType(\XLite\Model\Payment\Method::TYPE_CC_GATEWAY); $pm->setOrderby(static::getPaymentMethodOrderby('XPayments.' . $xpModuleClass)); $pm->setAdded(true); // Tokenization is disabled by default $pm->setSetting('saveCards', 'N'); } else { // Use existsting payment method $pm = \XLite\Core\Database::getRepo('XLite\\Model\\Payment\\Method')->find($settings['paymentMethodId']); } $this->setPaymentMethodSettings($pm, $settings); } \XLite\Core\Database::getEM()->flush(); \XLite\Core\TopMessage::addInfo('Payment methods have been imported successfully'); } elseif (is_array($list)) { \XLite\Core\TopMessage::addWarning('There are no payment configurations for this store.'); } else { \XLite\Core\TopMessage::addError('Error had occured during the requesting of payment methods from X-Payments. See log files for details.'); } }
/** * Add top message * * @return void */ protected function addDataSavedTopMessage() { if ('create' != $this->currentAction) { if ($this->updateMessage) { \XLite\Core\TopMessage::addInfo($this->updateMessage); } } else { if ($this->createMessage) { \XLite\Core\TopMessage::addInfo($this->createMessage); } } }
/** * Update model * * @return void */ protected function doActionUpdate() { $data = $this->getRequestData(); $review = $this->getReview(); $status = false == \XLite\Core\Config::getInstance()->XC->Reviews->disablePendingReviews || empty($data['review']) ? \XLite\Module\XC\Reviews\Model\Review::STATUS_APPROVED : \XLite\Module\XC\Reviews\Model\Review::STATUS_PENDING; $review->setStatus($status); $review->map($data); \XLite\Core\Database::getEM()->flush(); $this->updateReviewIds($review); \XLite\Core\TopMessage::addInfo(static::t('Your review has been updated. Thank your for sharing your opinion with us!')); }
/** * Change product attribute values * * @return void */ protected function doActionChange() { if ('cart' == \XLite\Core\Request::getInstance()->source) { $attributeValues = $this->getProduct()->prepareAttributeValues(\XLite\Core\Request::getInstance()->attribute_values); if ($this->saveAttributeValues($attributeValues)) { $this->updateCart(); \XLite\Core\Database::getEM()->flush(); \XLite\Core\TopMessage::addInfo('Attributes have been successfully changed'); $this->checkItemsAmount(); $this->setSilenceClose(); } else { $message = $this->getErrorMessage(); \XLite\Core\TopMessage::addError($message); \XLite\Core\Session::getInstance()->error_message = static::t($message); $this->setInternalRedirect(); $this->internalError = true; } } }
/** * Set sale price parameters for products list * * @param resource $stream Stream * * @return void */ protected function addFromStreamAction($stream) { $product = \XLite\Core\Database::getRepo('XLite\\Model\\Product')->find(\XLite\Core\Request::getInstance()->product_id); if (!is_resource($stream)) { \XLite\Logger::getInstance()->log('No valid resource supplied to add pin codes controller.' . ' Data type: ' . gettype($stream), LOG_ERR); \XLite\Core\TopMessage::addError('Unknown error occurred'); } elseif (!$product) { \XLite\Logger::getInstance()->log('No valid product id supplied to add pin codes controller.' . ' Request data: ' . print_r(\XLite\Core\Request::getInstance()->getData(), true), LOG_ERR); \XLite\Core\TopMessage::addError('Unknown error occurred'); } else { $codes = array(); $created = 0; $duplicates = 0; $exceededLength = 0; $maxLength = 64; for ($data = fgetcsv($stream); false !== $data; $data = fgetcsv($stream)) { $code = trim($data[0]); if (strlen($code) > $maxLength) { $exceededLength++; $code = ''; } if (!empty($code)) { $existing = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\PINCodes\\Model\\PinCode')->findOneBy(array('product' => $product->getId(), 'code' => $code)); if (!$existing) { $existing = in_array($code, $codes); } if ($existing) { $duplicates++; } else { $object = new \XLite\Module\CDev\PINCodes\Model\PinCode(); $object->setCode($code); $object->setProduct($product); \XLite\Core\Database::getEM()->persist($object); $created++; } $codes[] = $code; if (1000 < count($codes)) { \XLite\Core\Database::getEM()->flush(); $codes = array(); } } } \XLite\Core\Database::getEM()->flush(); if ($created) { \XLite\Core\TopMessage::addInfo(static::t('X PIN codes created successfully.', array('count' => $created))); } if ($duplicates) { \XLite\Core\TopMessage::addWarning(static::t('X PIN code duplicates ignored.', array('count' => $duplicates))); } if ($exceededLength) { \XLite\Core\TopMessage::addError(static::t('X PIN codes longer than Y characters ignored.', array('count' => $exceededLength, 'max' => $maxLength))); } if (!$created && !$duplicates && !$exceededLength) { \XLite\Core\TopMessage::addError(static::t('No valid code found.')); } } }
/** * Request marketplace to resend license key info on the specified email * * @return void */ protected function doActionResendKey() { $result = \XLite\Core\Marketplace::getInstance()->doResendLicenseKey(\XLite\Core\Request::getInstance()->email); if ($result) { \XLite\Core\TopMessage::addInfo('Information about free license key has been sent', array('email' => \XLite\Core\Request::getInstance()->email)); } else { \XLite\Core\TopMessage::addError(\XLite\Core\Marketplace::getInstance()->getError()); } $this->setReturnURL($this->buildURL('activate_free_license')); }
/** * Common handler for product attachments * * @param string $methodToLoad Method to use for getting images * @param array $paramsToLoad Parameters to use in attachment getter method * * @return void */ protected function doActionSelectAttachmentAttachments($methodToLoad, array $paramsToLoad) { $attachment = $this->getAttachment(); if (isset($attachment)) { $storage = $attachment->getStorage(); $storage->setFilename(''); if (call_user_func_array(array($storage, $methodToLoad), $paramsToLoad)) { \XLite\Core\Database::getEM()->flush(); \XLite\Core\TopMessage::addInfo('The attachment has been successfully re-upload'); } else { \XLite\Core\TopMessage::addError('Failed to re-upload attachment'); } } else { \XLite\Core\TopMessage::addError('Failed to re-upload attachment'); } }
/** * doActionDelete * * @return void */ protected function doActionDelete() { $address = $this->getAddress(); if (isset($address)) { \XLite\Core\Database::getEM()->remove($address); \XLite\Core\Database::getEM()->flush(); \XLite\Core\TopMessage::addInfo('Address has been deleted'); } }
/** * Perform some actions on success * * @return void */ protected function postprocessSuccessActionDelete() { \XLite\Core\TopMessage::addInfo('Profile has been deleted successfully'); }
/** * Clear cart * * @return void */ protected function doActionClear() { if (!$this->getCart()->isEmpty()) { foreach ($this->getCart()->getItems() as $item) { \XLite\Core\Database::getEM()->remove($item); } $this->getCart()->getItems()->clear(); $this->updateCart(); } \XLite\Core\TopMessage::addInfo('Item has been deleted from cart'); $this->setReturnURL($this->buildURL('cart')); }