_postFactory = $postFactory; $this->_categoryFactory = $categoryFactory; $this->_tagFactory = $tagFactory; $this->_storeManager = $storeManager; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } /** * Retrieve import statistic * @return \Magento\Framework\DataObject */ public function getImportStatistic() { return new \Magento\Framework\DataObject([ 'imported_posts_count' => $this->_importedPostsCount, 'imported_categories_count' => $this->_importedCategoriesCount, 'skipped_posts' => $this->_skippedPosts, 'skipped_categories' => $this->_skippedCategories, 'imported_count' => $this->_importedPostsCount + $this->_importedCategoriesCount + $this->_importedTagsCount, 'skipped_count' => count($this->_skippedPosts) + count($this->_skippedCategories) + count($this->_skippedTags), 'imported_tags_count' => $this->_importedTagsCount, 'skipped_tags' => $this->_skippedTags, ]); } /** * Prepare import data * @param array $data * @return $this */ public function prepareData($data) { if (!is_array($data)) { $data = (array) $data; } foreach($this->_requiredFields as $field) { if (empty($data[$field])) { throw new \Exception(__('Parameter %1 is required', $field), 1); } } foreach($data as $field => $value) { if (!in_array($field, $this->_requiredFields)) { unset($data[$field]); } } $this->setData($data); return $this; } /** * Execute mysql query */ protected function _mysqliQuery($sql) { $result = mysqli_query($this->_connect, $sql); if (!$result) { throw new \Exception( __('Mysql error: %1.', mysqli_error($this->_connect)) ); } return $result; } }