Esempio n. 1
0
 public function getFilteredList(AddonListFilter $filter)
 {
     $filter->setType(AddonListFilterType::THEME);
     if (!isset($filter->status)) {
         $filter->setStatus(AddonListFilterStatus::ALL);
     }
     $themes = $this->getThemesOnDisk();
     if (count($filter->exclude) > 0) {
         foreach ($filter->exclude as $name) {
             unset($themes[$name]);
         }
     }
     return $themes;
 }
Esempio n. 2
0
 public function notificationAction()
 {
     $translator = $this->get('translator');
     $modulesProvider = $this->get('prestashop.core.admin.data_provider.module_interface');
     $moduleRepository = $this->get('prestashop.core.admin.module.repository');
     $filters = new AddonListFilter();
     $filters->setType(AddonListFilterType::MODULE | AddonListFilterType::SERVICE)->setStatus(AddonListFilterStatus::INSTALLED);
     $installedProducts = $moduleRepository->getFilteredList($filters);
     $modules = new \stdClass();
     foreach (array('to_configure', 'to_update') as $subpart) {
         $modules->{$subpart} = array();
     }
     foreach ($installedProducts as $installedProduct) {
         $warnings = array();
         $moduleProvider = $this->get('prestashop.adapter.data_provider.module');
         $moduleName = $installedProduct->attributes->get('name');
         if ($moduleProvider->isModuleMainClassValid($moduleName)) {
             require_once _PS_MODULE_DIR_ . $moduleName . '/' . $moduleName . '.php';
             $module = \PrestaShop\PrestaShop\Adapter\ServiceLocator::get($moduleName);
             $warnings = $module->warning;
         }
         if (!empty($warnings)) {
             $modules->to_configure[] = (object) $installedProduct;
         }
         if ($installedProduct->canBeUpgraded()) {
             $modules->to_update[] = (object) $installedProduct;
         }
     }
     foreach ($modules as $moduleLabel => $modulesPart) {
         $modules->{$moduleLabel} = $modulesProvider->generateAddonsUrls($modulesPart);
         $modules->{$moduleLabel} = $this->getPresentedProducts($modulesPart);
     }
     return $this->render('PrestaShopBundle:Admin/Module:notifications.html.twig', array('layoutHeaderToolbarBtn' => $this->getToolbarButtons(), 'layoutTitle' => $translator->trans('Module notifications', array(), 'Admin.Modules.Feature'), 'modules' => $modules, 'requireAddonsSearch' => false, 'requireBulkActions' => false, 'enableSidebar' => true, 'help_link' => $this->generateSidebarLink('AdminModules'), 'requireFilterStatus' => false));
 }
Esempio n. 3
0
 /**
  * @return AddonInterface[] retrieve the list of partners modules
  */
 public function getPartnersModules()
 {
     $filter = new AddonListFilter();
     $filter->setOrigin(AddonListFilterOrigin::ADDONS_NATIVE);
     $partnersModules = $this->getFilteredList($filter);
     foreach ($partnersModules as $key => $module) {
         $moduleAuthor = $module->attributes->get('author');
         if (self::PARTNER_AUTHOR !== $moduleAuthor) {
             unset($partnersModules[$key]);
         }
     }
     return $partnersModules;
 }
Esempio n. 4
0
 public function test_should_not_be_able_to_return_theme()
 {
     $filters = new AddonListFilter();
     $filters->setType(AddonListFilterType::THEME);
     $this->assertEquals(0, count($this->moduleRepositoryStub->getFilteredList($filters)));
 }