public function load(Object\Concrete $source, $destination, $fieldname, $ownertype, $ownername, $position, $type = "object")
{
if ($type == "object") {
$typeQuery = " AND (type = 'object' or type = '')";
} else {
$typeQuery = " AND type = " . $this->db->quote($type);
}
$dataRaw = $this->db->fetchAll("SELECT * FROM " . $this->getTablename($source) . " WHERE o_id = ? AND dest_id = ? AND fieldname = ? AND ownertype = ? AND ownername = ? and position = ? " . $typeQuery, [$source->getId(), $destination->getId(), $fieldname, $ownertype, $ownername, $position]);
if (!empty($dataRaw)) {
$this->model->setElement($destination);
$this->model->setFieldname($fieldname);
$columns = $this->model->getColumns();
foreach ($dataRaw as $row) {
if (in_array($row['column'], $columns)) {
$setter = "set" . ucfirst($row['column']);
$this->model->{$setter}($row['data']);
}
}
return $this->model;
} else {
return null;
}
}