/** * 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; }
/** * 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); }
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; }