Gute Nachrichten!
Ich hab's hinbekommen das er die "Voreingestellte Anzahl" und "Anzahl nicht änderbar" mit auswertet. Die Funktionen waren einfach mal nicht mit eingebaut, erscheinen zwar im Backend, aber werden nicht behandelt.
folgendes muss getan werden:
rlmp_eventdb
Datei "pi1/class.tx_rlmpeventdb_pi1.php (86 K)"
Betrifft die Funktion function createFeaturesStepConf ($eventRow)
Zeile 1037 diese Zwei Zeilen in den 'config'-Array einfügen
'defaultvalue' => $featureArr['defaultamount'],
'disabled' => $featureArr['amountfixed'],
danach sieht die for each Schleife etwa so aus:
foreach ($featuresArr as $id => $featureArr) {
$label = $featureArr['description'] . (isset($featureArr['priceperunit']) ? ' ('.$this->moneylibObj->format ($featureArr['priceperunit'], $this->currency).')' : '');
$fieldsArr['tx_rlmpeventdb_registrations_featuresflex|amount-'.$id] = array(
'mode' => 'manual',
'config' => array(
'type' => 'input',
'size' => 5,
'tx_frontendformslib_swaphorizontally' => 1,
'defaultvalue' => $featureArr['defaultamount'],
'disabled' => $featureArr['amountfixed'],
),
'label' => $label,
'table' => 'tx_rlmpeventdb_registrations_featuresflex',
'name' => 'amount-'.$id,
);
}
Damit diese Werte auch interpretiert werden müssen wir auch noch die extension
Frontend forms code library (frontendformslib) anpassen:
Datei: class.tx_frontendformslib.php (30 K)
Funktion: function getSingleField_typeInput($fieldConf, $tcaFieldConf)
ab Zeile 462 wird ein $params Array erstellt.
folgende Zeile suchen:
'value' => htmlspecialchars($this->sessionData['data'][$fieldConf['table']][$fieldConf['name']]),
und mit dieser ersetzen:
'value' => ($tcaFieldConf['defaultvalue'] ? $tcaFieldConf['defaultvalue'] : (htmlspecialchars($this->sessionData['data'][$fieldConf['table']][$fieldConf['name']]))),
Das wäre für den voreingestellten Wert.
Das man das Feld nicht ändern kann hab ich erstmal nur soweit gelöst, dass das INPUT Feld deaktiviert wird bzw. readonly. Kann zwar jeder Web-ambitionierte Techniker mit Firebug in 5sek. umgehen, da ich jetzt noch keine weitere Abfrage nach der Formularübermittlung drin hab, aber das such ich mir noch, und so ist es jedenfalls schon mal besser als würde es gar nicht funktionieren.
Also um <input> Felder zu deaktivieren (readonly) die einen nicht änderbaren Wert enthalten sollen, einfach nach der $params Array Deklaration die Zeile mit dem output suchen (kommt gleich danach), also diese hier:
$output = '<input '.$this->implode_assoc_r('="', '" ', $params).'" />';
und DAVOR einfügen:
if($tcaFieldConf['disabled']) {
$temp_array = array('readonly' => 'readonly');
$params = array_merge($params, $temp_array);
}
musste es leider so lösen, direkt im array ding es so nicht, da sobald <input> ein readonly TAG hat deaktiviert wird. Dann hab ich es auch mit disabled="disabled" versucht, jedoch hat er aus unerfindlichen Gründen mich dann beim "weiter" klicken wieder zurück geschubst und gemeint, mein disabled feld wäre ein Pflichtfeld, welches ausgefüllt werden muss ó0 ? Es hatte doch nen Wert.
Scheinbar konnte er den Wert dann nicht richtig auslesen. var_dump hat es bestätigt. Mit readonly klappt es aber.
So viel Spaß damit.
Vielleicht kann das ja jemand gebrauchen.
Ich frag mich aber immer noch was "Anzahl anzeigen ?" genau bewirken soll. INPUT Feld ein/aus blenden, also type="hidden"??? Oder soll das eher Bezug auf die voreingestellte Anzahl haben? Das geht nämlich auch noch nicht.