Пример #1
0
 /**
  * Get product modifier types
  *
  * @return array
  */
 protected function getProductModifierTypes()
 {
     $additional = null;
     $additionalVariants = null;
     $wholesale = null;
     if (!isset($this->productModifierTypes)) {
         if (\Includes\Utils\ModulesManager::isActiveModule('XC\\ProductVariants')) {
             // ProductVariants module detected
             $additional = \XLite\Core\Database::getRepo('XLite\\Module\\XC\\ProductVariants\\Model\\ProductVariant')->getModifierTypesByProduct($this->getProduct());
             $additionalVariants = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\Wholesale\\Model\\ProductVariantWholesalePrice')->getModifierTypesByProduct($this->getProduct());
         }
         if ((!isset($additional) || empty($additional['price'])) && (!isset($additionalVariants) || empty($additionalVariants['price']))) {
             // ProductVariants module is not detected or product has not variants
             $wholesale = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\Wholesale\\Model\\WholesalePrice')->getModifierTypesByProduct($this->getProduct());
         }
     }
     $result = parent::getProductModifierTypes();
     foreach (array($additional, $additionalVariants, $wholesale) as $modifierTypes) {
         if (isset($modifierTypes)) {
             $result += $modifierTypes;
             if (!$result['price'] && $modifierTypes['price']) {
                 $result['price'] = true;
             }
             $this->productModifierTypes = $result;
         }
     }
     return $result;
 }
Пример #2
0
 /**
  * Check if module is active
  *
  * @param string $file File name
  *
  * @return boolean
  */
 protected static function checkFile($file)
 {
     $module = \Includes\Utils\ModulesManager::getFileModule($file);
     return !isset($module) || \Includes\Utils\ModulesManager::isActiveModule($module);
 }
Пример #3
0
 function widgetDisplayCode(array $attrs, $target, $module, $name)
 {
     $result = '';
     if (!isset($module) || \Includes\Utils\ModulesManager::isActiveModule($module)) {
         $class = isset($attrs['class']) ? $this->flexyAttribute($attrs['class'], false) : null;
         $arguments = isset($class) ? $this->flexyAttribute($attrs['class']) : (isset($name) ? 'null' : '');
         $arguments .= isset($name) ? ', ' . $this->flexyAttribute($name) : '';
         $conditions = array();
         if (isset($target)) {
             $target = str_replace(',', '\',\'', preg_replace('/[^\\w,]+/', '', $target));
         } elseif (isset($class) && preg_match('/^\\\\?XLite\\\\/i', $class)) {
             $target = implode('\',\'', $class::getAllowedTargets());
         }
         if (!empty($target)) {
             $conditions[] = '$this->isDisplayRequired(array(\'' . $target . '\'))';
         }
         if (!empty($attrs['mode'])) {
             $modes = str_replace(',', '\',\'', preg_replace('/[^\\w,]+/', '', $attrs['mode']));
             $conditions[] = '$this->isDisplayRequiredForMode(array(\'' . $modes . '\'))';
         }
         if (isset($attrs['IF'])) {
             $attrs['IF'] = $this->flexyCondition($attrs['IF']);
             if (!empty($conditions)) {
                 $attrs['IF'] = '(' . $attrs['IF'] . ')';
             }
             $conditions[] = $attrs['IF'];
         }
         $this->unsetAttributes($attrs, array('IF', 'FOREACH', 'class', 'mode'));
         if (empty($arguments) && 1 == count($attrs) && isset($attrs['template'])) {
             $result .= '$this->display(' . $this->flexyAttribute($attrs['template']) . ');';
         } else {
             $result .= '$this->getWidget(' . (empty($attrs) ? empty($arguments) ? '' : 'array()' : $this->getAttributesList($attrs)) . (empty($arguments) ? '' : ', ' . $arguments) . ')->display();';
         }
         if (!empty($conditions)) {
             $result = 'if (' . implode(' && ', $conditions) . '):' . "\n" . '  ' . $result . "\n" . 'endif;';
         }
     }
     return $result;
 }