| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace ModulesGarden\Servers\KerioEmail\App\UI\Admin\ProductConfiguration\Pages\Sections;
- use ModulesGarden\Servers\KerioEmail\App\Enums\ProductParams;
- use ModulesGarden\Servers\KerioEmail\App\Libs\Product\ProductManager;
- use ModulesGarden\Servers\KerioEmail\App\Services\ConfigurableOptions\Strategy\ConfigOptionsType;
- use ModulesGarden\Servers\KerioEmail\App\UI\Admin\Custom\Sections\BoxSectionExtended;
- use ModulesGarden\Servers\KerioEmail\App\UI\Admin\ProductConfiguration\Buttons\CreateConfigurableOptionsBaseModalButton;
- use ModulesGarden\Servers\KerioEmail\App\UI\Admin\ProductConfiguration\Helper\ConfigurableOptionsBuilder;
- use ModulesGarden\Servers\KerioEmail\App\Traits\KerioApiHandler;
- use ModulesGarden\Servers\KerioEmail\App\UI\Admin\ProductConfiguration\Providers\ConfigurableOptionManager;
- use ModulesGarden\Servers\KerioEmail\Core\UI\Interfaces\AdminArea;
- use ModulesGarden\Servers\KerioEmail\Core\UI\Widget\Forms\Sections\BoxSection;
- /**
- *
- * Created by PhpStorm.
- * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
- * Date: 29.08.19
- * Time: 08:32
- * Class ConfigurableOptionsSection
- */
- class ConfigurableOptions extends BoxSectionExtended implements AdminArea
- {
- protected $id = 'configurableOptions';
- protected $name = 'configurableOptions';
- protected $title = 'configurableOptions';
- use KerioApiHandler;
- public function initContent()
- {
- $this->addButton(new CreateConfigurableOptionsBaseModalButton());
- }
- /**
- * @return array
- * @throws \Exception
- */
- public function getOptions()
- {
- /**
- * product id
- */
- $productId = $this->getRequestValue('id');
- /**
- * product manager
- */
- $productManager = new ProductManager();
- $productManager
- ->loadById($productId);
- /**
- * config options strategy
- */
- $options = new ConfigOptionsType();
- $options->setType($productManager->get(ProductParams::CLASS_OF_SERVICE_NAME));
- $options->setProductId($productId);
- $options->load();
- ;
- /**
- * config option model
- */
- $configurableOptions = new \ModulesGarden\Servers\KerioEmail\App\Services\ConfigurableOptions\ConfigurableOptions($productId);
- /**
- * build co to show
- */
- ConfigurableOptionsBuilder::buildAll($configurableOptions, $options->getConfigurableOptions());
- /**
- *
- */
- $fields = $configurableOptions->show();
- /**
- *
- * add additional elements,
- * resolve none full line issue (#156)
- */
- $limit = count($fields) % 3;
- if($limit > 0)
- {
- while($limit < 3)
- {
- $fields['emptyFields'.$limit] = '-1';
- $limit++;
- }
- }
- return $fields;
- }
- }
|