public function insert($fieldsCols = NULL) { $extractorConfig = Collection::find($this->provider); if (is_null($extractorConfig)) { throw new Exception('Не верный extractor'); } $extractorClass = $extractorConfig['class']; /** @var \app\services\GetArticle\ExtractorInterface $extractor */ $extractor = new $extractorClass($this->url); $articleObject = Chenneling::insertExtractorInterface($extractor); $articleObject->update(['tree_node_id_mask' => (new BitMask($this->tree_node_id_mask))->getMask()]); return true; }
public function actionIndex() { if (count(Yii::$app->request->post()) > 0) { $formValues = Yii::$app->request->post((new Investigator())->formName()); $add = []; $skip = []; foreach ($formValues as $name => $value) { if (StringHelper::startsWith($name, 'id')) { $id = substr($name, 2); foreach (Yii::$app->session->get('items') as $sessionItem) { if ($sessionItem['id'] == $id) { switch ($value) { // пропустить case 1: $skip[] = $sessionItem['id']; break; // добавить // добавить case 2: $add[] = $sessionItem['id']; break; } } } } } if (count($skip) > 0) { (new Query())->createCommand()->update(Inv::TABLE, ['status' => Inv::STATUS_SKIP], ['in', 'id', $skip])->execute(); } foreach ($add as $item) { $i = Inv::find($item); $class = $i->getField('class_name'); // послание /** @var \app\services\investigator\InvestigatorInterface $class */ $class = new $class(); $extractor = $class->getItem($i->getField('url')); // добавляю Chenneling::insertExtractorInterface($extractor); } if (count($add) > 0) { (new Query())->createCommand()->update(Inv::TABLE, ['status' => Inv::STATUS_ADD], ['in', 'id', $add])->execute(); } Yii::$app->session->remove('items'); Yii::$app->session->setFlash('contactFlash'); return $this->render([]); } else { $items = \app\models\Investigator::query(['status' => \app\models\Investigator::STATUS_NEW])->select(['class_name as class', 'id', 'url', 'date_insert', 'status', 'name'])->all(); Yii::$app->session->set('items', $items); return $this->render(['items' => $items]); } }