예제 #1
0
파일: Database.php 프로젝트: kingsj/core
 /**
  * Connect
  *
  * @return void
  */
 public function connect()
 {
     if (\XLite::isAdminZone()) {
         \Includes\Utils\ConfigParser::registerConfigFile('config.demo.php');
     }
     parent::connect();
 }
예제 #2
0
 /**
  * Return common data to send to JS
  *
  * @return array
  */
 protected function getCommonJSData()
 {
     $data = parent::getCommonJSData();
     if (!\XLite::isAdminZone()) {
         $data += $this->getCloudSearchInitData();
     }
     return $data;
 }
예제 #3
0
 /**
  * Return list of the form default parameters
  *
  * @return array
  */
 protected function getDefaultParams()
 {
     $params = array();
     if (\XLite::isAdminZone()) {
         $params = array('amount' => \XLite\Core\Request::getInstance()->amount, 'order_number' => \XLite\Core\Request::getInstance()->order_number);
     }
     return $params;
 }
예제 #4
0
파일: Rate.php 프로젝트: kingsj/core
 /**
  * Get total rate
  *
  * @return float
  */
 public function getTotalRate()
 {
     $total = parent::getTotalRate();
     if (!\XLite::isAdminZone() && $this->getMethod()) {
         $total = \XLite\Module\CDev\VAT\Logic\Shipping\Tax::getInstance()->calculateRateCost($this, $total);
     }
     return $total;
 }
예제 #5
0
 /**
  * Return list of required CSS files
  *
  * @return array
  */
 public function getCSSFiles()
 {
     $list = parent::getCSSFiles();
     if (!\XLite::isAdminZone()) {
         $list[] = 'common/grid-list.css';
     }
     return $list;
 }
예제 #6
0
파일: Method.php 프로젝트: kewaunited/xcart
 /**
  * get Shipping Method name
  * for Canada Post add '(Canada Post)' (except admin area, shipping methods page)
  *
  * @return string
  */
 public function getName()
 {
     $name = parent::getName();
     if ('capost' == $this->getProcessor() && !(\XLite::isAdminZone() && \XLite::getController() instanceof \XLite\Controller\Admin\ShippingMethods)) {
         $name = 'Canada Post ' . $name;
     }
     return $name;
 }
예제 #7
0
 /**
  * Return widget default template
  *
  * @return string
  */
 protected function getDefaultTemplate()
 {
     if (!\XLite::isAdminZone() && method_exists('\\XLite\\Core\\Request', 'isMobileDevice') && \XLite\Core\Request::isMobileDevice()) {
         return 'modules/Amazon/PayWithAmazon/checkout_mobile.tpl';
     } else {
         return 'modules/Amazon/PayWithAmazon/checkout.tpl';
     }
 }
예제 #8
0
 /**
  * Return list of the form default parameters
  *
  * @return array
  */
 protected function getDefaultParams()
 {
     $params = array();
     if (\XLite::isAdminZone()) {
         $params = array('profile_id' => \XLite\Core\Request::getInstance()->profile_id);
     }
     return $params;
 }
예제 #9
0
 /**
  * Return list of allowed targets
  *
  * @return array
  */
 public static function getAllowedTargets()
 {
     $targets = parent::getAllowedTargets();
     $targets[] = 'order';
     if (!\XLite::isAdminZone()) {
         $targets[] = 'checkoutSuccess';
     }
     return $targets;
 }
예제 #10
0
파일: AView.php 프로젝트: kewaunited/xcart
 /**
  * getJSFiles
  *
  * @return array
  */
 public function getJSFiles()
 {
     $list = parent::getJSFiles();
     if (!\XLite::isAdminZone() && \XLite\Module\CDev\Paypal\Main::isExpressCheckoutEnabled() && \XLite\Module\CDev\Paypal\Main::isInContextCheckoutAvailable()) {
         $list[] = 'modules/CDev/Paypal/button/in_context.js';
     } else {
         $list[] = 'modules/CDev/Paypal/button/default.js';
     }
     return $list;
 }
예제 #11
0
파일: AView.php 프로젝트: kirkbauer2/kirkxc
 /**
  * Return theme common files
  *
  * @param boolean $adminZone Admin zone flag OPTIONAL
  *
  * @return array
  */
 protected function getThemeFiles($adminZone = null)
 {
     $list = parent::getThemeFiles($adminZone);
     if (!(null === $adminZone ? \XLite::isAdminZone() : $adminZone)) {
         $list[static::RESOURCE_CSS][] = \XLite\Module\XC\ColorSchemes\Main::getColorSchemeCSS();
         if (!\XLite\Module\XC\ColorSchemes\Main::isDefaultColorScheme()) {
             $list[static::RESOURCE_CSS][] = array('file' => \XLite\Module\XC\ColorSchemes\Main::getColorSchemeLess(), 'media' => 'screen', 'merge' => 'bootstrap/css/bootstrap.less');
         }
     }
     return $list;
 }
예제 #12
0
파일: AView.php 프로젝트: kewaunited/xcart
 /**
  * Get a list of JS files required to display the widget properly
  *
  * @return array
  */
 public function getJSFiles()
 {
     $list = parent::getJSFiles();
     if (!\XLite::isAdminZone()) {
         $list[] = 'modules/QSL/CloudSearch/loader.js';
         $list[] = 'modules/QSL/CloudSearch/init.js';
         $list[] = 'modules/QSL/CloudSearch/lib/handlebars.min.js';
         $list[] = 'modules/QSL/CloudSearch/lib/jquery.hoverIntent.min.js';
     }
     return $list;
 }
예제 #13
0
파일: Session.php 프로젝트: kingsj/core
 /**
  * Get current language
  *
  * @return string Language code
  */
 protected function getCurrentLanguage()
 {
     // DO NOT change call order here
     if (!\XLite::isAdminZone() && function_exists('drupal_multilingual') && drupal_multilingual()) {
         global $language;
         if ($language instanceof \stdClass) {
             $object = \XLite\Core\Database::getRepo('XLite\\Model\\Language')->findOneByCode($language->language);
             // DO NOT use "===" here
             if (isset($object) && \XLite\Model\Language::ENABLED == $object->getStatus()) {
                 $result = $object->getCode();
             }
         }
     }
     return isset($result) ? $result : parent::getCurrentLanguage();
 }
예제 #14
0
파일: Product.php 프로젝트: kingsj/core
 /**
  * Assign price range-based search condition
  *
  * @param \Doctrine\ORM\QueryBuilder $queryBuilder Query builder
  * @param float                      $min          Minimum
  * @param float                      $max          Maximum
  *
  * @return void
  */
 protected function assignPriceRangeCondition(\Doctrine\ORM\QueryBuilder $queryBuilder, $min, $max)
 {
     if (\XLite::isAdminZone()) {
         parent::assignPriceRangeCondition($queryBuilder, $min, $max);
     } else {
         $queryBuilder->leftJoin('p.classes', 'classes', 'WITH');
         $cnd = \XLite\Module\CDev\VAT\Logic\Product\Tax::getInstance()->getSearchPriceCondition('p.price', 'classes');
         if (isset($min)) {
             $queryBuilder->andWhere($cnd . ' > :minPrice')->setParameter('minPrice', doubleval($min));
         }
         if (isset($max)) {
             $queryBuilder->andWhere($cnd . ' < :maxPrice')->setParameter('maxPrice', doubleval($max));
         }
     }
 }
예제 #15
0
 public function testIsAvailable()
 {
     $order = $this->getTestOrder();
     $t = $order->getPaymentTransactions()->get(0);
     $r = $t->getData()->get(0);
     if (\XLite::isAdminZone()) {
         $r->setAccessLevel($r::ACCESS_ADMIN);
         $this->assertTrue($r->isAvailable(), 'check admin access');
         $r->setAccessLevel($r::ACCESS_CUSTOMER);
         $this->assertTrue($r->isAvailable(), 'check admin access #2');
     } else {
         $r->setAccessLevel($r::ACCESS_ADMIN);
         $this->assertFalse($r->isAvailable(), 'check customer access');
         $r->setAccessLevel($r::ACCESS_CUSTOMER);
         $this->assertTrue($r->isAvailable(), 'check customer access #2');
     }
 }
예제 #16
0
파일: AView.php 프로젝트: kewaunited/xcart
 /**
  * Mark templates
  *
  * @return boolean
  */
 protected function isMarkTemplates()
 {
     return !\XLite::isAdminZone() && \XLite\Module\XC\ThemeTweaker\Main::isTargetAllowed() && \XLite\Module\XC\ThemeTweaker\Main::isUserAllowed() && !\XLite\Core\Request::getInstance()->isPost() && !\XLite\Core\Request::getInstance()->isCLI() && !\XLite\Core\Request::getInstance()->isAJAX() && !\Includes\Decorator\Utils\CacheManager::isRebuildNeeded() && \XLite\Core\Config::getInstance()->XC->ThemeTweaker->edit_mode;
 }
예제 #17
0
 /**
  * Check - second sidebar is visible or not
  *
  * @return boolean
  */
 public function isSidebarSecondVisible()
 {
     return \XLite::isAdminZone() ? $this->isAdminSidebarSecondVisible() : $this->isCustomerSidebarSecondVisible();
 }
예제 #18
0
 /**
  * Adds additional condition to the query for checking if product has available membership
  *
  * @param \Doctrine\ORM\QueryBuilder $queryBuilder Query builder object
  * @param string                     $alias        Entity alias OPTIONAL
  *
  * @return void
  */
 protected function addMembershipCondition(\Doctrine\ORM\QueryBuilder $queryBuilder, $alias = null)
 {
     if (!\XLite::isAdminZone()) {
         $alias = $alias ?: $queryBuilder->getRootAlias();
         $membership = \XLite\Core\Auth::getInstance()->getMembershipId();
         $queryBuilder->linkLeft($alias . '.memberships', 'membership');
         if ($membership) {
             $queryBuilder->andWhere('membership.membership_id = :membershipId OR membership.membership_id IS NULL')->setParameter('membershipId', \XLite\Core\Auth::getInstance()->getMembershipId());
         } else {
             $queryBuilder->andWhere('membership.membership_id IS NULL');
         }
     }
 }
예제 #19
0
 /**
  * Return class of button panel widget
  *
  * @return string
  */
 protected function getButtonPanelClass()
 {
     return \XLite::isAdminZone() ? '\\XLite\\View\\StickyPanel\\Model\\Model' : null;
 }
예제 #20
0
파일: APager.php 프로젝트: kewaunited/xcart
 /**
  * Add some additional information for the pages inner structure which is specific for view
  *
  * @return void
  */
 protected function preparePagesForView()
 {
     foreach ($this->pages as $k => $page) {
         $num = isset($page['num']) ? $page['num'] : null;
         $type = $page['type'];
         $isItem = isset($num) && in_array($type, array('item', 'first-page', 'last-page'));
         $isOmittedItems = 'more-pages' === $type;
         $isSpecialItem = !$isItem && !$isOmittedItems;
         $isCurrent = isset($num) && $this->isCurrentPage($num);
         $isSelected = $isItem && $isCurrent;
         $isDisabled = $isSpecialItem && $isCurrent;
         $isActive = !$isSelected && !$isOmittedItems && !$isDisabled && !\XLite::isAdminZone() || $isSelected && \XLite::isAdminZone();
         if ($isItem || 'first-page' === $type || 'last-page' === $type) {
             $this->pages[$k]['text'] = $num;
         } elseif ($isOmittedItems) {
             $this->pages[$k]['text'] = '...';
         } elseif ('previous-page' === $type && \XLite::isAdminZone()) {
             $this->pages[$k]['text'] = '&laquo;';
         } elseif ('next-page' === $type && \XLite::isAdminZone()) {
             $this->pages[$k]['text'] = '&raquo;';
         } else {
             $this->pages[$k]['text'] = '&nbsp;';
         }
         $this->pages[$k]['page'] = !isset($num) ? null : 'page-' . $num;
         $needHrefForCustomer = isset($num) && !$isSelected && !$isDisabled && !\XLite::isAdminZone();
         $needHrefForAdmin = isset($num) && !$isOmittedItems && \XLite::isAdminZone();
         if ($needHrefForCustomer || $needHrefForAdmin) {
             $this->pages[$k]['href'] = $this->buildURLByPageId($num);
         }
         $classes = array('item' => $isItem || $isSpecialItem, 'selected' => $isSelected, 'disabled' => $isDisabled, 'active' => $isActive, $this->pages[$k]['page'] => $isItem, $type => true);
         $css = array();
         foreach ($classes as $class => $enabled) {
             if ($enabled) {
                 $css[] = $class;
             }
         }
         $this->pages[$k]['classes'] = join(' ', $css);
     }
 }
예제 #21
0
 /**
  * Compose URL from target, action and additional params
  *
  * @param string  $target        Page identifier OPTIONAL
  * @param string  $action        Action to perform OPTIONAL
  * @param array   $params        Additional params OPTIONAL
  * @param string  $interface     Interface script OPTIONAL
  * @param boolean $forceCleanURL Force flag - use Clean URL OPTIONAL
  * @param boolean $forceCuFlag   Force cu flag ?? OPTIONAL
  *
  * @return string
  */
 public static function buildURL($target = '', $action = '', array $params = array(), $interface = null, $forceCleanURL = false, $forceCuFlag = null)
 {
     $result = null;
     $cuFlag = null !== $forceCuFlag ? $forceCuFlag : LC_USE_CLEAN_URLS && (!\XLite::isAdminZone() || $forceCleanURL);
     if ($cuFlag) {
         $result = static::buildCleanURL($target, $action, $params);
     }
     if (null === $result) {
         if (null === $interface && !$cuFlag) {
             $interface = \XLite::getInstance()->getScript();
         }
         $result = \Includes\Utils\Converter::buildURL($target, $action, $params, $interface);
         if ($cuFlag && !$result) {
             $result = \XLite::getInstance()->getShopURL($result, null, array());
         }
     }
     return $result;
 }
예제 #22
0
파일: Converter.php 프로젝트: kingsj/core
 /**
  * Compose URL from target, action and additional params
  *
  * @param string $target    Page identifier OPTIONAL
  * @param string $action    Action to perform OPTIONAL
  * @param array  $params    Additional params OPTIONAL
  * @param string $interface Interface script OPTIONAL
  *
  * @return string
  */
 public static function buildURL($target = '', $action = '', array $params = array(), $interface = null, $forceCleanURL = false)
 {
     $result = null;
     $cuFlag = LC_USE_CLEAN_URLS && (!\XLite::isAdminZone() || $forceCleanURL);
     if ($cuFlag) {
         $result = static::buildCleanURL($target, $action, $params);
     }
     if (!isset($result)) {
         if (!isset($interface) && !$cuFlag) {
             $interface = \XLite::getInstance()->getScript();
         }
         $result = \Includes\Utils\Converter::buildURL($target, $action, $params, $interface);
         if ($cuFlag && !$result) {
             $result = \XLite::getInstance()->getShopURL($result, null, array(), \Includes\Utils\URLManager::URL_OUTPUT_SHORT);
         }
     }
     return $result;
 }
예제 #23
0
 /**
  * Check if product is accessible
  *
  * @return boolean
  */
 public function isAvailable()
 {
     return \XLite::isAdminZone() || $this->isPublicAvailable();
 }
예제 #24
0
 /**
  * doQuery
  *
  * @param array   $data        Data
  * @param boolean $ignoreCache Flag: if true then do not get rates from cache
  *
  * @return array
  */
 protected function doQuery($data, $ignoreCache)
 {
     $rates = array();
     $key = $this->getConfigurationFingerPrint() . serialize($data);
     if (!$ignoreCache) {
         $cachedResponse = $this->getDataFromCache($key);
     }
     $response = null;
     if (isset($cachedResponse)) {
         $response = $cachedResponse;
     } elseif (!\XLite\Model\Shipping::isIgnoreLongCalculations()) {
         $APIConnector = $this->getAPIConnector();
         $this->setRequestData($data);
         $status = false;
         if (\XLite\Module\XC\AuctionInc\Main::isSSAvailable()) {
             $status = $APIConnector->GetItemShipRateSS($response);
         } elseif (\XLite\Module\XC\AuctionInc\Main::isXSAvailable()) {
             $methods = $this->getEnabledMethods();
             if (count($methods)) {
                 $status = $APIConnector->GetItemShipRateXS($response);
             }
         }
         $this->logResponse($status, $data, $response);
         if ($status) {
             $this->saveDataInCache($key, $response);
             // drop selected shipping method to set it to cheapest
             if (!\XLite::isAdminZone()) {
                 /** @var \XLite\Model\Cart $cart */
                 $cart = \XLite::getController()->getCart();
                 $cart->setShippingId(0);
                 if ($cart->getProfile()) {
                     $cart->getProfile()->setLastShippingId(0);
                 }
             }
         } elseif (isset($response['ErrorList'])) {
             // report error
             $errorMessages = array();
             foreach ($response['ErrorList'] as $error) {
                 $errorMessages[] = $error['Message'];
             }
             $this->errorMsg = implode('; ', $errorMessages);
         }
     }
     if ($response && empty($this->errorMsg)) {
         $rates = $this->parseResponse($response);
     } else {
         $this->saveDataInCache($key, $response, static::CACHE_TTL);
     }
     if (!$response || empty($rates)) {
         // Apply fallback rate
         if (empty($rates) && 'N' != \XLite\Core\Config::getInstance()->XC->AuctionInc->fallbackRate) {
             $rateValue = $this->getFallbackRateValue($data['package']);
             $rate = new \XLite\Model\Shipping\Rate();
             $rate->setBaseRate($rateValue);
             $method = $this->findMethod('FF', 'FIXEDFEE', 'Fixed fee');
             $rate->setMethod($method);
             $rates[] = $rate;
             $this->errorMsg = null;
         }
     }
     return $rates;
 }
예제 #25
0
 /**
  * Define default variant
  *
  * @return \XLite\Module\XC\ProductVariants\Model\ProductVariant
  */
 protected function defineDefaultVariant()
 {
     $defVariant = null;
     if ($this->mustHaveVariants() && $this->hasVariants()) {
         $repo = \XLite\Core\Database::getRepo('\\XLite\\Module\\XC\\ProductVariants\\Model\\ProductVariant');
         $defVariant = $repo->findOneBy(array('product' => $this, 'defaultValue' => true));
         if (!$defVariant || !\XLite::isAdminZone() && $defVariant->isOutOfStock()) {
             $minPrice = $minPriceOutOfStock = false;
             $defVariantOutOfStock = null;
             foreach ($this->getVariants() as $variant) {
                 if (!$variant->isOutOfStock()) {
                     if (false === $minPrice || $minPrice > $variant->getClearPrice()) {
                         $minPrice = $variant->getClearPrice();
                         $defVariant = $variant;
                     }
                 } elseif (!$defVariant) {
                     if (false === $minPriceOutOfStock || $minPriceOutOfStock > $variant->getClearPrice()) {
                         $minPriceOutOfStock = $variant->getClearPrice();
                         $defVariantOutOfStock = $variant;
                     }
                 }
             }
             $defVariant = $defVariant ?: $defVariantOutOfStock;
         }
     }
     return $defVariant;
 }
예제 #26
0
 /**
  * Check record availability
  *
  * @return boolean
  */
 public function isAvailable()
 {
     return \XLite::isAdminZone() && \XLite\Model\Payment\TransactionData::ACCESS_ADMIN == $this->getAccessLevel() || \XLite\Model\Payment\TransactionData::ACCESS_CUSTOMER == $this->getAccessLevel();
 }
예제 #27
0
파일: AView.php 프로젝트: kirkbauer2/kirkxc
 /**
  * Detect current view zone
  *
  * @return string
  */
 protected static function detectCurrentViewZone()
 {
     if (\XLite\View\Mailer::isComposeRunned()) {
         $zone = \XLite\Model\ViewList::INTERFACE_MAIL;
     } elseif (\XLite\Core\Request::getInstance()->isCLI()) {
         $zone = \XLite\Model\ViewList::INTERFACE_CONSOLE;
     } elseif (\XLite::isAdminZone()) {
         $zone = \XLite\Model\ViewList::INTERFACE_ADMIN;
     } else {
         $zone = \XLite\Model\ViewList::INTERFACE_CUSTOMER;
     }
     return $zone;
 }
예제 #28
0
 /**
  * @todo: remove since we do not use it anymore.
  * Use the Form classes instead
  * 
  * @staticvar null $script_start
  * @param type $tokenIndex
  */
 protected function attachFormID($tokenIndex)
 {
     if (\XLite::isAdminZone()) {
         $token = $this->tokens[$tokenIndex];
         $token['name'] = empty($token['name']) ? '' : strtolower($token['name']);
         // sign each form with generated form_id
         if ('tag' == $token['type'] && 'form' == $token['name']) {
             $genFormId = $this->getXliteFormIDText();
             $this->subst($token['end'], 0, '<fieldset><input type="hidden" name="' . \XLite::FORM_ID . '" value="' . $genFormId . '" /></fieldset>');
         }
         // attach form_id to all links inside attributes (in case they contain javascript links)
         if ('attribute-value' == $token['type']) {
             $str = $this->getTokenText($tokenIndex);
             $this->_addFormIdToActions($str, $token['start']);
         }
         // attach form_id to all links inside scripts
         static $script_start = null;
         if ('tag' == $token['type'] && 'script' == $token['name']) {
             $script_start = $token['end'];
         } elseif ('close-tag' == $token['type'] && 'script' == $token['name'] && isset($script_start)) {
             $script_end = $token['start'];
             $script_body = substr($this->source, $script_start, $script_end - $script_start);
             $this->_addFormIdToActions($script_body, $script_start);
             $script_start = null;
         }
     }
 }
예제 #29
0
 /**
  * Send headers
  *
  * @return void
  */
 public static function sendHeaders()
 {
     // send no-cache headers
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
     header('Cache-Control: no-store, no-cache, must-revalidate');
     header('Cache-Control: post-check=0, pre-check=0', false);
     header('Pragma: no-cache');
     header('Content-Type: text/html; charset=utf-8');
     if (\XLite::isAdminZone()) {
         header('X-Robots-Tag: noindex, nofollow');
     }
     foreach (\XLite\Core\URLManager::getAllowedDomains() as $domain) {
         header('Access-Control-Allow-Origin: ' . $domain, false);
     }
     $option = \XLite::getInstance()->getOptions(array('other', 'x_frame_options'));
     if (isset($option) && 'disabled' !== $option) {
         header('X-Frame-Options:' . $option);
     }
 }
예제 #30
0
 /**
  * Get surcharge totals
  *
  * @return array
  */
 public function getSurchargeTotals()
 {
     $surcharges = array();
     $rawSurcharges = \XLite::isAdminZone() ? array_merge($this->getExcludeSurcharges(), $this->getIncludeSurcharges()) : $this->getExcludeSurcharges();
     foreach ($rawSurcharges as $surcharge) {
         $code = $surcharge->getCode();
         if (!isset($surcharges[$code])) {
             $modifierClass = $surcharge->getClass();
             $surcharges[$code] = array('name' => $surcharge->getTypeName(), 'cost' => 0, 'available' => $surcharge->getAvailable(), 'count' => 0, 'lastName' => null, 'code' => $code, 'widget' => \Includes\Utils\Operator::checkIfClassExists($modifierClass) ? $modifierClass::getWidgetClass() : \XLite\Logic\Order\Modifier\AModifier::getWidgetClass(), 'object' => $surcharge);
         }
         $surcharges[$code]['cost'] += $surcharge->getValue();
         $surcharges[$code]['count']++;
         $surcharges[$code]['lastName'] = $surcharge->getName();
         $surcharges[$code]['weight'] = $surcharge->getSortingWeight();
     }
     uasort($surcharges, function ($a, $b) {
         return $a['weight'] < $b['weight'] ? -1 : $a['weight'] > $b['weight'];
     });
     return $surcharges;
 }