Skip to content

Commit

Permalink
Always propagate when saving elements
Browse files Browse the repository at this point in the history
Fixes #564
  • Loading branch information
brandonkelly committed Jul 7, 2019
1 parent 84391d2 commit bd2faaf
Show file tree
Hide file tree
Showing 8 changed files with 12 additions and 21 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## Unreleased

### Fixed
- Fixed a bug where multi-site elements were only getting saved in the site chosen in the feed settings. ([#564](https://github.com/craftcms/feed-me/issues/564))

## 4.1.1 - 2019-07-06

### Changed
Expand Down
4 changes: 1 addition & 3 deletions src/base/Element.php
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,11 @@ public function save($element, $settings)
return true;
}

$propagate = isset($settings['siteId']) && $settings['siteId'] ? false : true;

if (Craft::$app->getIsMultiSite()) {
$this->element->enabledForSite = $this->element->enabled;
}

if (!Craft::$app->getElements()->saveElement($this->element, true, $propagate)) {
if (!Craft::$app->getElements()->saveElement($this->element)) {
return false;
}

Expand Down
6 changes: 1 addition & 5 deletions src/base/Field.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,11 @@ protected function populateElementFields($elementIds)
]
]);

$propagate = isset($this->feed['siteId']) && $this->feed['siteId'] ? false : true;

if (!$elementsService->saveElement($element, true, $propagate)) {
if (!$elementsService->saveElement($element)) {
Plugin::error('`{handle}` - Unable to save sub-field: `{e}`.', ['e' => json_encode($element->getErrors()), 'handle' => $this->fieldHandle]);
}

Plugin::info('`{handle}` - Processed {name} [`#{id}`]({url}) sub-fields with content: `{content}`.', ['name' => $element->displayName(), 'id' => $elementId, 'url' => $element->cpEditUrl, 'handle' => $this->fieldHandle, 'content' => json_encode($fieldContent)]);
}
}


}
3 changes: 1 addition & 2 deletions src/fields/Categories.php
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,14 @@ private function _createElement($dataValue, $groupId)
$element->groupId = $groupId;

$siteId = Hash::get($this->feed, 'siteId');
$propagate = $siteId ? false : true;

if ($siteId) {
$element->siteId = $siteId;
}

$element->setScenario(BaseElement::SCENARIO_ESSENTIALS);

if (!Craft::$app->getElements()->saveElement($element, true, $propagate)) {
if (!Craft::$app->getElements()->saveElement($element)) {
Plugin::error('`{handle}` - Category error: Could not create - `{e}`.', ['e' => json_encode($element->getErrors()), 'handle' => $this->field->handle]);
} else {
Plugin::info('`{handle}` - Category `#{id}` added.', ['id' => $element->id, 'handle' => $this->field->handle]);
Expand Down
4 changes: 1 addition & 3 deletions src/fields/Entries.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,6 @@ private function _createElement($dataValue, $sources)
$element->typeId = $typeId;

$siteId = Hash::get($this->feed, 'siteId');
$propagate = $siteId ? false : true;

$section = Craft::$app->sections->getSectionById($element->sectionId);

if ($siteId) {
Expand All @@ -199,7 +197,7 @@ private function _createElement($dataValue, $sources)

$element->setScenario(BaseElement::SCENARIO_ESSENTIALS);

if (!Craft::$app->getElements()->saveElement($element, true, $propagate)) {
if (!Craft::$app->getElements()->saveElement($element)) {
Plugin::error('`{handle}` - Entry error: Could not create - `{e}`.', ['e' => json_encode($element->getErrors()), 'handle' => $this->field->handle]);
} else {
Plugin::info('`{handle}` - Entry `#{id}` added.', ['id' => $element->id, 'handle' => $this->field->handle]);
Expand Down
3 changes: 1 addition & 2 deletions src/fields/Tags.php
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,14 @@ private function _createElement($dataValue, $groupId)
$element->groupId = $groupId;

$siteId = Hash::get($this->feed, 'siteId');
$propagate = $siteId ? false : true;

if ($siteId) {
$element->siteId = $siteId;
}

$element->setScenario(BaseElement::SCENARIO_ESSENTIALS);

if (!Craft::$app->getElements()->saveElement($element, true, $propagate)) {
if (!Craft::$app->getElements()->saveElement($element)) {
Plugin::error('`{handle}` - Tag error: Could not create - `{e}`.', ['e' => json_encode($element->getErrors()), 'handle' => $this->field->handle]);
} else {
Plugin::info('`{handle}` - Tag `#{id}` added.', ['id' => $element->id, 'handle' => $this->field->handle]);
Expand Down
3 changes: 1 addition & 2 deletions src/fields/Users.php
Original file line number Diff line number Diff line change
Expand Up @@ -144,15 +144,14 @@ private function _createElement($dataValue, $groupId)
}

$siteId = Hash::get($this->feed, 'siteId');
$propagate = $siteId ? false : true;

if ($siteId) {
$element->siteId = $siteId;
}

$element->setScenario(BaseElement::SCENARIO_ESSENTIALS);

if (!Craft::$app->getElements()->saveElement($element, true, $propagate)) {
if (!Craft::$app->getElements()->saveElement($element)) {
Plugin::error('`{handle}` - User error: Could not create - `{e}`.', ['e' => json_encode($element->getErrors()), 'handle' => $this->field->handle]);
} else {
Plugin::info('`{handle}` - User `#{id}` added.', ['id' => $element->id, 'handle' => $this->field->handle]);
Expand Down
5 changes: 1 addition & 4 deletions src/helpers/AssetHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,6 @@ private static function createAsset($tempFilePath, $filename, $folderId, $feed,
$asset->avoidFilenameConflicts = true;
$asset->setScenario(AssetElement::SCENARIO_CREATE);

$propagate = isset($feed['siteId']) && $feed['siteId'] ? false : true;

Plugin::info('Creating asset with content `{i}`', [
'i' => json_encode([
'tempFilePath' => $tempFilePath,
Expand All @@ -196,12 +194,11 @@ private static function createAsset($tempFilePath, $filename, $folderId, $feed,
'volumeId' => $folder->volumeId,
'avoidFilenameConflicts' => true,
'scenario' => AssetElement::SCENARIO_CREATE,
'propagate' => $propagate,
'conflict' => $conflict,
])
]);

$result = Craft::$app->getElements()->saveElement($asset, true, $propagate);
$result = Craft::$app->getElements()->saveElement($asset);

if ($result) {
// Annoyingly, you have to create the asset field, then move it to the temp directly, then replace the conflicting
Expand Down

0 comments on commit bd2faaf

Please sign in to comment.