Hallo,
hier also das Ergebnis.
Ist noch ziemlich Patchwork, sodass ich es nicht komplett hier rein stellen kann.
Ich habe es folgendermaßen gelöst.
Eine View auf die entsprechenden Tabellen gesetzt - vielen Dank für die Hinweise hierzu.
CREATE VIEW rex_350_machinery_attributes2values AS SELECT rex_350_machinery_values.id as values_id, machine_id, attribute_id, value, pid, name, unit, clang, prio FROM rex_350_machinery_values INNER JOIN rex_350_machinery_attributes ON attribute_id = pid;
Damit hatte ich dann immerhin schon den Parameternamen (Länge / Length ...) usw., ist ja mehrsprachig - mit dem jeweiligen Wert zusammengebracht.
Anschließend habe ich die rex_a350_form Klasse so umgebogen, dass sie nicht meckert, wenn sie keine Table übergeben bekommt:
Zeile 24
Code: Alles auswählen
if ($tableName && $tableName != $REX['TABLE_PREFIX'].'350_'.$page)
Anschließend mussten noch die Felder generiert werden:
Code: Alles auswählen
$sql = new rex_sql;
$sql->debug = true;
$qry = "SELECT values_id, name, unit, value FROM ".$table."_attributes2values WHERE clang = $clang AND machine_id = ".rex_request('oid','int')." ORDER BY prio";
$sql->setQuery($qry);
$attribute_fields = $sql->getArray();
$form4 = new rex_a615_form2();
$form4->addParam('clang', $clang);
foreach ($attribute_fields as $attributes) {
$field =& $form4->addTextField("attr_".$attributes['values_id'],$attributes['value']);
$field->setLabel($attributes['name']." (".$attributes['unit'].")");
}
Fürs Speichern gibt es dann wieder eine eigene save() Funktion:
Code: Alles auswählen
function save() {
global $REX;
$sql = rex_sql::getInstance();
foreach($this->getFieldsets() as $fieldsetName) {
$fieldValues = $this->fieldsetPostValues($fieldsetName);
foreach($fieldValues as $fieldName => $fieldValue) {
$sql = new rex_sql;
$qry = 'UPDATE rex_350_machinery_values SET value="'.$fieldValue.'" WHERE id = '.substr($fieldName,5);
$sql->setQuery($qry);
}
}
return true;
}
Ist vielleicht nicht alles fürs Lehrbuch und auch nicht fertig. Wer mitwirken oder reinschauen will, bekommt gerne ftp und Redaxo Daten per pn.
Gruß Wolfgang