122 if (!isset($this->siteData, $this->stepId))
133 if (isset(
$entity[
'requestId']))
139 $prompt->setMarkers([
'format' =>
'square']);
142 if (
$request->send($prompt, $this->connector))
144 RequestToEntitiesTable::add([
146 'ENTITY_TYPE' =>
Type\RequestEntities::Image->value,
147 'LANDING_ID' =>
$entity[
'landingId'],
156 $responseApplied =
false;
158 $isNeedSetPreviewImageSrcToNode =
false;
160 $this->
getEvent()->send(self::EVENT_NAME);
162 if (empty($this->request->getError()))
164 $result = $this->request->getResult();
169 $isNeedSetPreviewImageSrcToNode =
true;
172 $responseApplied =
true;
175 if ($responseApplied ===
false)
177 $fixedPreview = $this->fixPreview();
178 if ($fixedPreview !==
null)
180 $previewSrc = $fixedPreview;
181 $responseApplied =
true;
185 if ($previewSrc && $previewSrc !== $this->siteData->getPreviewImageSrc())
187 $this->siteData->setPreviewImageSrc($previewSrc);
188 if ($isNeedSetPreviewImageSrcToNode)
193 $landingId = $this->siteData->getLandingId();
196 $additionalFields = [
197 'METAOG_IMAGE' => $previewSrc,
205 return $responseApplied;
279 $isFindFirstNode =
false;
280 $imgNodesUsesPreviewImage = Collector::getImgNodesUsePreviewImage();
281 foreach ($this->siteData->getBlocks() as $block)
283 if ($isFindFirstNode)
287 $codeBlock = $block->getCode();
288 foreach ($block->getNodes() as $node)
290 $codeNode = $node->getCode();
292 isset($imgNodesUsesPreviewImage[$codeBlock])
293 && in_array($codeNode, $imgNodesUsesPreviewImage[$codeBlock])
294 && method_exists($node,
'setImageFromPath')
298 $previewImageSrc = $this->siteData->getPreviewImageSrc();
299 if ($previewImageSrc ===
null)
306 ->setImageFromPath($previewImageSrc, $position)
307 ->toLanding($position);
309 $isFindFirstNode =
true;
310 $blockId = $block->getId();
312 $requestId = $this->request->getId();
313 $existingRecord = RequestToEntitiesTable::getList([
315 'REQUEST_ID' => $requestId,
316 'ENTITY_TYPE' => RequestEntities::Image->value,
317 'BLOCK_ID' => $blockId,
318 'NODE_CODE' =>$codeNode,
319 'POSITION' => $position,
323 if (!$existingRecord)
325 RequestToEntitiesTable::add([
326 'REQUEST_ID' => $requestId,
327 'ENTITY_TYPE' => RequestEntities::Image->value,
328 'LANDING_ID' =>
null,
329 'BLOCK_ID' => $blockId,
330 'NODE_CODE' => $codeNode,
338 $blockInstance = $this->siteData->getLandingInstance()?->getBlockById($blockId);
339 $blockNodes = $block->getNodes();
340 if ($blockInstance && $blockNodes)
342 $nodesArray[$codeNode] = $node->getValues();
343 $blockInstance->updateNodes($nodesArray);
344 $blockInstance->save();