Skip to content

Commit

Permalink
Reverse changes made by #66
Browse files Browse the repository at this point in the history
  • Loading branch information
jalendport committed Jul 2, 2021
1 parent 807d09d commit d7a3127
Showing 1 changed file with 22 additions and 26 deletions.
48 changes: 22 additions & 26 deletions src/PreparseField.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,36 +112,32 @@ function (ElementEvent $event) {
return;
}

if ($event->element->getId()) {
// Since it's already been saved, we need to fetch the element again.
/** @var Element $element */
$element = Craft::$app->elements->getElementById($event->element->getId(), null, $event->element->siteId);
$key = $element->id . '__' . $element->siteId;

if (!isset($this->preparsedElements['onSave'][$key])) {
$this->preparsedElements['onSave'][$key] = true;

// Still pass the event element here to generate the preparse fields content, not the $element fetched above.
$content = self::$plugin->preparseFieldService->getPreparseFieldsContent($event->element, 'onSave');
/** @var Element $element */
$element = $event->element;
$key = $element->id . '__' . $element->siteId;

if (!empty($content)) {
$this->resetUploads();

if ($element instanceof Asset) {
$element->setScenario(Element::SCENARIO_DEFAULT);
}

$element->setFieldValues($content);
$success = Craft::$app->elements->saveElement($element, true, false);

// if no success, log error
if (!$success) {
Craft::error('Couldn’t save element with id “' . $element->id . '', __METHOD__);
}
if (!isset($this->preparsedElements['onSave'][$key])) {
$this->preparsedElements['onSave'][$key] = true;

$content = self::$plugin->preparseFieldService->getPreparseFieldsContent($element, 'onSave');

if (!empty($content)) {
$this->resetUploads();

if ($element instanceof Asset) {
$element->setScenario(Element::SCENARIO_DEFAULT);
}

unset($this->preparsedElements['onSave'][$key]);
$element->setFieldValues($content);
$success = Craft::$app->elements->saveElement($element, true, false);

// if no success, log error
if (!$success) {
Craft::error('Couldn’t save element with id “' . $element->id . '', __METHOD__);
}
}

unset($this->preparsedElements['onSave'][$key]);
}
}
);
Expand Down

0 comments on commit d7a3127

Please sign in to comment.