Пример #1
0
 /**
  * Prepare category data for curl.
  *
  * @param FixtureInterface $fixture
  * @return array
  */
 protected function prepareData(FixtureInterface $fixture)
 {
     $data['general'] = $this->replaceMappingData($fixture->getData());
     $data['is_anchor'] = isset($data['is_anchor']) ? $data['is_anchor'] : 0;
     if ($fixture->hasData('landing_page')) {
         $data['general']['landing_page'] = $this->getBlockId($fixture->getLandingPage());
     }
     $diff = array_diff($this->dataUseConfig, array_keys($data['general']));
     if (!empty($diff)) {
         $data['use_config'] = $diff;
     }
     return $data;
 }
Пример #2
0
 /**
  * Post request for creating Subcategory.
  *
  * @param FixtureInterface|null $fixture [optional]
  * @return array
  */
 public function persist(FixtureInterface $fixture = null)
 {
     $data['general'] = $this->replaceMappingData($fixture->getData());
     if ($fixture->hasData('landing_page')) {
         $data['general']['landing_page'] = $this->getBlockId($fixture->getLandingPage());
     }
     if ($fixture->hasData('category_products')) {
         $data['category_products'] = $this->prepareCategoryProducts($fixture);
     }
     $diff = array_diff($this->dataUseConfig, array_keys($data['general']));
     if (!empty($diff)) {
         $data['use_config'] = $diff;
     }
     $parentCategoryId = $data['general']['parent_id'];
     $url = $_ENV['app_backend_url'] . 'catalog_category/save/store/0/parent/' . $parentCategoryId . '/?isAjax=true';
     $curl = new BackendDecorator(new CurlTransport(), $this->_configuration);
     $curl->write(CurlInterface::POST, $url, '1.1', [], $data);
     $response = $curl->read();
     $curl->close();
     preg_match('~http://.+/id/(\\d+).+?isAjax~', $response, $matches);
     $id = isset($matches[1]) ? (int) $matches[1] : null;
     return ['id' => $id];
 }