Skip to content

Commit 4bda93a

Browse files
authored
Merge pull request #34 from venveo/develop
Fix some bugs with multi-site element selects
2 parents 5f74892 + 42e1000 commit 4bda93a

File tree

7 files changed

+20
-14
lines changed

7 files changed

+20
-14
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Bulk Edit Changelog
22

3+
## 2.0.6 - 2021-07-22
4+
### Fixed
5+
- Fixed a bug where fields may not always get the correct source site ID
6+
7+
### Other
8+
- Tested on Craft 3.7
9+
310
## 2.0.5
411
### Fixed
512
- Bug where multi-site bulk editing was not working properly (Thanks @monachilada)

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "venveo/craft-bulkedit",
33
"description": "Bulk edit Craft CMS element fields",
44
"type": "craft-plugin",
5-
"version": "2.0.5",
5+
"version": "2.0.6",
66
"keywords": [
77
"craft",
88
"cms",

src/base/AbstractElementTypeProcessor.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public static function getEditableAttributes(): array
1515
public static function getMockElement($elementIds = [], $params = []): Element
1616
{
1717
/** @var Element $elementPlaceholder */
18-
$elementPlaceholder = Craft::createObject(static::getType(), $params);
18+
$params['type'] = static::getType();
19+
$elementPlaceholder = Craft::$app->elements->createElement($params);
1920
return $elementPlaceholder;
2021
}
2122
}

src/elements/processors/AssetProcessor.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,8 @@ public static function hasPermission($elementIds, User $user): bool
6666

6767
public static function getMockElement($elementIds = [], $params = []): Element
6868
{
69-
$asset = Craft::$app->assets->getAssetById($elementIds[0]);
70-
/** @var Asset $elementPlaceholder */
71-
$elementPlaceholder = Craft::createObject(static::getType(), $params);
69+
$elementPlaceholder = parent::getMockElement($elementIds, $params);
70+
$asset = Craft::$app->assets->getAssetById($elementIds[0], $params['siteId']);
7271
// Field availability is determined by volume ID
7372
$elementPlaceholder->volumeId = $asset->volumeId;
7473
return $elementPlaceholder;

src/elements/processors/CategoryProcessor.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ public static function hasPermission($elementIds, User $user): bool
6666

6767
public static function getMockElement($elementIds = [], $params = []): Element
6868
{
69-
$category = Craft::$app->categories->getCategoryById($elementIds[0]);
69+
$elementPlaceholder = parent::getMockElement($elementIds, $params);
70+
$category = Craft::$app->categories->getCategoryById($elementIds[0], $params['siteId']);
7071
/** @var Category $elementPlaceholder */
71-
$elementPlaceholder = Craft::createObject(static::getType(), $params);
7272
// Field availability is determined by volume ID
7373
$elementPlaceholder->groupId = $category->groupId;
7474
return $elementPlaceholder;

src/elements/processors/EntryProcessor.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,10 @@ public static function getEditableAttributes(): array {
7777
*/
7878
public static function getMockElement($elementIds = [], $params = []): Element
7979
{
80+
$elementPlaceholder = parent::getMockElement($elementIds, $params);
8081
$templateEntry = Craft::$app->entries->getEntryById($elementIds[0], $params['siteId']);
81-
/** @var Entry $entry */
82-
$entry = Craft::createObject(self::getType(), $params);
83-
$entry->typeId = $templateEntry->typeId;
84-
$entry->sectionId = $templateEntry->sectionId;
85-
return $entry;
82+
$elementPlaceholder->typeId = $templateEntry->typeId;
83+
$elementPlaceholder->sectionId = $templateEntry->sectionId;
84+
return $elementPlaceholder;
8685
}
8786
}

src/elements/processors/ProductProcessor.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ public static function hasPermission($elementIds, User $user): bool
6666

6767
public static function getMockElement($elementIds = [], $params = []): Element
6868
{
69+
$elementPlaceholder = parent::getMockElement($elementIds, $params);
6970
/** @var \craft\commerce\elements\Product $product */
70-
$product = \Craft::$app->elements->getElementById($elementIds[0], \craft\commerce\elements\Product::class);
71+
$product = \Craft::$app->elements->getElementById($elementIds[0], \craft\commerce\elements\Product::class, $params['siteId']);
7172
/** @var \craft\commerce\elements\Product $elementPlaceholder */
72-
$elementPlaceholder = Craft::createObject(static::getType(), $params);
7373
// Field availability is determined by volume ID
7474
$elementPlaceholder->typeId = $product->typeId;
7575
return $elementPlaceholder;

0 commit comments

Comments
 (0)