/** * Prepare Data Source * * @param array $dataSource * @return array */ public function prepareDataSource(array $dataSource) { if (!isset($dataSource['data']['items'])) { return $dataSource; } $hasSubscription = false; if ($subscription = $this->moduleFactory->create()->load('Swissup_SubscriptionChecker')) { $hasSubscription = (bool) $subscription->getLocal(); } foreach ($dataSource['data']['items'] as &$item) { // add installer links $module = $this->moduleFactory->create()->load($item['code']); if ($module->getInstaller()->hasUpgradesDir()) { $item[$this->getData('name')]['installer'] = ['href' => $this->urlBuilder->getUrl(static::URL_PATH_INSTALL, ['code' => $item['code']]), 'label' => __('Open Installer')]; if ($module->isInstalled() && $module->getInstaller()->getUpgradesToRun()) { $item[$this->getData('name')]['upgrade'] = ['href' => $this->urlBuilder->getUrl(static::URL_PATH_UPGRADE, ['code' => $item['code']]), 'label' => __('Run Upgrades')]; } } // add external links foreach ($this->getData('links') as $link) { if (empty($item[$link['key']])) { continue; } if ($link['key'] === 'download_link' && !$hasSubscription) { continue; } $item[$this->getData('name')][$link['key']] = ['href' => $item[$link['key']], 'label' => __($link['label'])]; } } return $dataSource; }
public function execute(\Magento\Framework\Event\Observer $observer) { foreach ($this->loader->getItems() as $component) { $module = $this->moduleFactory->create()->load($component['code']); $module->addData($component); $module->save(); } }
public function execute(\Magento\Framework\Event\Observer $observer) { foreach ($observer->getModuleCollection() as $module) { $component = $this->loader->getItemById($module->getCode()); if (!$component) { $this->moduleFactory->create()->load($module->getCode())->delete(); continue; } $module->addData($component); } }
/** * Returns loded module object with copied new_store_ids and skip_upgrade * instructions into it * * @return Swissup\Core\Model\Module */ protected function getModuleObject($code) { $module = $this->moduleFactory->create()->load($code)->setNewStores($this->module->getNewStores()); if (!$module->getIdentityKey()) { $module->setIdentityKey($this->module->getIdentityKey()); } return $module; }