/** * Get promotion message * * @return string */ protected function getPromotionMessage() { $addons = $this->getAddons(); $modules = array(); $params = array('clearCnd' => 1); foreach ($addons as $addon => $title) { if (!\Includes\Utils\Operator::checkIfClassExists('\\XLite\\Module\\' . $addon . '\\Main')) { $match = explode('\\', $addon); $mainClassFile = LC_DIR_MODULES . str_replace('\\', '/', $addon) . '/Main.php'; if (\Includes\Utils\FileManager::isExists($mainClassFile)) { // Module is installed but not enabled $limit = \XLite\View\Pager\Admin\Module\Manage::getInstance()->getItemsPerPage(); $pageId = \XLite\Core\Database::getRepo('XLite\\Model\\Module')->getInstalledPageId($match[0], $match[1], $limit); $pageParam = 'page'; $target = 'addons_list_installed'; } else { // Module is not installed list(, $limit) = $this->getWidget(array(), '\\XLite\\View\\Pager\\Admin\\Module\\Install')->getLimitCondition()->limit; $pageId = \XLite\Core\Database::getRepo('XLite\\Model\\Module')->getMarketplacePageId($match[0], $match[1], $limit); $pageParam = 'pageId'; $target = 'addons_list_marketplace'; } if (0 < $pageId) { $params[$pageParam] = $pageId; } $url = $this->buildURL($target, '', $params) . '#' . $match[1]; $modules[] = '<a href="' . $url . '">' . $title . '</a>'; } } return 0 < count($modules) ? static::t('Install additional modules to add more product sources', array('list' => implode(', ', $modules))) : ''; }
/** * Execute certain hook handler * * @return void */ public function executeHookHandler() { // To cache data \Includes\Utils\ModulesManager::getActiveModules(); // Walk through the "XLite/Module" directory foreach ($this->getModuleMainFileIterator()->getIterator() as $path => $data) { $dir = $path; $name = basename($dir = dirname($dir)); $author = basename($dir = dirname($dir)); $class = \Includes\Utils\ModulesManager::getClassNameByAuthorAndName($author, $name); if (!\Includes\Utils\Operator::checkIfClassExists($class)) { require_once $path; } \Includes\Utils\ModulesManager::switchModule($author, $name); } \Includes\Utils\ModulesManager::removeFile(); }
/** * 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; }
/** * Check if we can call method from the module main class * * @return boolean */ public function checkModuleMainClass() { $result = $this->isInstalled(); if ($result && !\Includes\Utils\Operator::checkIfClassExists($this->getMainClass())) { if (defined('LC_MODULE_CONTROL')) { $path = LC_DIR_CLASSES . \Includes\Utils\Converter::getClassFile($this->getMainClass()); if (\Includes\Utils\FileManager::isFileReadable($path)) { require_once $path; } else { $result = false; } } else { $result = false; } } return $result; }
/** * Assemble default dump surcharge * * @param string $type Type * @param string $code Code * @param string $class Class * @param string $name Name * * @return array */ protected function assembleDefaultDumpSurcharge($type, $code, $class, $name) { $surcharge = new \XLite\Model\Order\Surcharge(); $surcharge->setType($type); $surcharge->setCode($code); $surcharge->setClass($class); $surcharge->setValue(0); $surcharge->setName($name); $surcharge->setOwner(static::getTemporaryOrder($this->getOrder()->getOrderId(), false) ?: $this->getOrder()); return array('name' => $surcharge->getTypeName(), 'cost' => $surcharge->getValue(), 'available' => $surcharge->getAvailable(), 'count' => 1, 'lastName' => $surcharge->getName(), 'code' => $surcharge->getCode(), 'widget' => \Includes\Utils\Operator::checkIfClassExists($class) ? $class::getWidgetClass() : \XLite\Logic\Order\Modifier\AModifier::getWidgetClass(), 'object' => $surcharge); }
/** * Check if module is installed * * @param string $module Module actual name * * @return boolean */ public static function isModuleInstalled($module) { return \Includes\Utils\Operator::checkIfClassExists(static::getClassNameByModuleName($module)); }
/** * Check if we can call method from the module main class * * @return boolean */ protected function checkModuleMainClass() { return $this->isInstalled() && \Includes\Utils\Operator::checkIfClassExists($this->getMainClass()); }