03. 11. 2017, 01:16

Das ist jetzt etwas tricky...

Ich hab in meiner Extension vorhin über Auswahllisten verschiedene Einstellung vorgenommen. In der neuen Version soll es nur noch über eine Zuordnung von Datensätzen gelöst werden.

Damit kann ich nun die "Besonderheiten" als array listen lassen.

Die alte Version kommt da aber nicht durch, und ich möchte nun verhindern, dass diese Datensätze alle geändert werden müssen. Damit bleiben die Felder in der Datenbank, und ich versuche jetzt einfach ein manuelles Array zu gestalten, das mir die selben Funktionen liefert.

Tatsächlich hab ich das soweit hinbekommen. Alle Angaben von den alten Einstellungen werden nun wie das neue Array ausgegeben, also die UIDs.

Bekomme ich das irgendwie hin, dass mir das mit dem Datensatz verknüpft wird?

[code]/**
* Returns the besonderheiten2
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Vorstellungstypen> $besonderheiten2
*/
public function getBesonderheiten2() {

if ($this->ua == '1') {
$ua = 1;
} else {
$ua = 0;
};

if ($this->deea == '1') {
$deea = 2;
} else {
$deea = 0;
};

if ($this->ea == '1') {
$eade = 3;
} else {
$eade = 0;
};

if ($this->ea == '2') {
$eaat = 4;
} else {
$eaat = 0;
};

if ($this->ea == '3') {
$each = 5;
} else {
$each = 0;
};

if ($this->ea == '4') {
$eabw = 6;
} else {
$eabw = 0;
};

if ($this->ea == '5') {
$eawe = 7;
} else {
$eawe = 0;
};

if ($this->premiereDerniere == '1') {
$p = 8;
} else {
$p = 0;
};

if ($this->premiereDerniere == '2') {
$d = 9;
} else {
$d = 0;
};

if ($this->premiereDerniere == '3') {
$wa = 16;
} else {
$wa = 0;
};

if ($this->wichtiges == '3') {
$pv = 14;
} else {
$pv = 0;
};

if ($this->wichtiges == '4') {
$zv = 15;
} else {
$zv = 0;
};

if ($this->wichtiges == '8') {
$sp = 11;
} else {
$sp = 0;
};

if ($this->wichtiges == '9') {
$sd = 12;
} else {
$sd = 0;
};

if ($this->wichtiges == '10') {
$ev = 10;
} else {
$ev = 0;
};

$alteDaten = [
$ua, $deea, $eade, $eaat, $each, $eabw, $eawe, $p, $d, $wa, $pv, $zv, $sp, $sd, $ev
];

$temp = array();

foreach($alteDaten as $new)
if (!empty($new))
$temp[] = $new;

if (empty($temp)) {
$ausgabe = $this->besonderheiten;
} else {
$ausgabe = $temp;
}

return $ausgabe;
}

[/code]