File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/landing/lib/History/Action/EditEmbedAction.php
Back
<?php namespace Bitrix\Landing\History\Action; use Bitrix\Landing\Block; use Bitrix\Landing\Node; class EditEmbedAction extends BaseAction { protected const JS_COMMAND = 'editEmbed'; public function execute(bool $undo = true): bool { $block = new Block((int)$this->params['block']); $selector = $this->params['selector'] ?: ''; $position = (int)($this->params['position'] ?: 0); $value = $undo ? $this->params['valueBefore'] : $this->params['valueAfter']; if ($selector) { $doc = $block->getDom(); $resultList = $doc->querySelectorAll($selector); if (isset($resultList[$position])) { Node\Embed::saveNode($block, $selector, [ $position => $value ]); $block->saveContent($doc->saveHTML()); return $block->save(); } } return false; } public static function enrichParams(array $params): array { /** * @var $block Block */ $block = $params['block']; return [ 'block' => $block->getId(), 'selector' => $params['selector'] ?: '', 'position' => $params['position'] ?: 0, 'lid' => $block->getLandingId(), 'valueAfter' => $params['valueAfter'] ?: '', 'valueBefore' => $params['valueBefore'] ?: '', ]; } /** * @param bool $undo - if false - redo * @return array */ public function getJsCommand(bool $undo = true): array { $params = parent::getJsCommand($undo); $params['params']['selector'] .= '@' . $params['params']['position']; $params['params']['value'] = $undo ? $params['params']['valueBefore'] : $params['params']['valueAfter'] ; unset( $params['params']['valueAfter'], $params['params']['valueBefore'], $params['params']['position'], ); return $params; } /** * Check if params duplicated with previously step * @param array $oldParams * @param array $newParams * @return bool */ public static function compareParams(array $oldParams, array $newParams): bool { unset($oldParams['valueBefore'], $newParams['valueBefore']); return $oldParams === $newParams; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings