// validate item data
$this->validateImport($data);
+ // try to find an existing item for updating
+ $sqlData = $this->findExistingItem($data);
+
+ // handle items which do not support updating (e.g. cronjobs)
+ if ($sqlData === null) {
+ $row = false;
+ } else {
+ $statement = WCF::getDB()->prepareStatement($sqlData['sql']);
+ $statement->execute($sqlData['parameters']);
+ $row = $statement->fetchArray();
+ }
+
+ // ensure a valid parameter for import()
+ if ($row === false) {
+ $row = [];
+ }
+
+ // import items
+ $this->import($row, $data);
+
$pipData[] = $data;
}
if ($this instanceof IUniqueNameXMLPackageInstallationPlugin) {
$names = \array_map(function ($data) {
+ \assert($this instanceof IUniqueNameXMLPackageInstallationPlugin);
return $this->getNameByData($data);
}, $pipData);
}
}
- foreach ($pipData as $data) {
- // try to find an existing item for updating
- $sqlData = $this->findExistingItem($data);
-
- // handle items which do not support updating (e.g. cronjobs)
- if ($sqlData === null) {
- $row = false;
- } else {
- $statement = WCF::getDB()->prepareStatement($sqlData['sql']);
- $statement->execute($sqlData['parameters']);
- $row = $statement->fetchArray();
- }
-
- // ensure a valid parameter for import()
- if ($row === false) {
- $row = [];
- }
-
- // import items
- $this->import($row, $data);
- }
-
// fire after import
$this->postImport();
}