Hallo,
hier geht es weiter mit der Frage, wie man den Extratext in die Datenbank bekommt und wie man ihn dann wieder ausliest.
Nochmal zu Schritt 3, Verarbeitung:Das auf der Zahlungsauswahl-Seite eventuell ausgefüllt Feld muss entsprechend ausgelesen und in die Session geschrieben werden, von wo es ausgelesen werden kann.
if ($_POST['extracomments'] != '')
$_SESSION['extracomments'] = xtc_db_prepare_input($_POST['extracomments']);
(/checkout_confirmation.php)
Schritt 4: Datenbank erweitern- Datenbank z.B. mit phpMyAdmin öffnen -> Tabelle "orders"
- Struktur
- 1 Spalte einfügen (wo immer ihr wollt, z.B. hinter comments)
- Name: <freie Wahl>, Typ: Text, Standard: NULL, NULL: ja
Oder direkt per SQL-Query:
ALTER TABLE `orders` ADD `extracomments` TEXT NULL DEFAULT NULL AFTER `comments`;
[ Für Gäste sind keine Dateianhänge sichtbar ]
[ Für Gäste sind keine Dateianhänge sichtbar ]
Schritt 5: Wert in Datenbank schreiben$sql_data_array = array ( .............. 'comments' => $order->info['comments'], 'extracomments' => $_SESSION['extracomments'] ); (/checkout_process.php, ~Zeile 240)
In der checkout_process.php muss nur das $sql_data_array um unseren neuen Wert erweitert werden. Als Schlüssel dient der Name des Datenbankfelds und als Wert die Sessionvariable in welcher der Text steht. Den Rest macht modified allein.
[ Für Gäste sind keine Dateianhänge sichtbar ]
[ Für Gäste sind keine Dateianhänge sichtbar ]
Schritt 6: Wert auslesen$this->info = array(.............................. 'comments' => $order['comments'], 'extracomments' => $order['extracomments'], 'language' => $order['language'] ); (/includes/classes/order.php, ~Zeile 173)
Genauso, wie wir das Speichern erweitert haben, können wir auch das Auslesen erweitern. Am besten direkt in der Klasse Order. Am Anfang der Datei wird von der Shopsoftware der komplette Datensatz aus der Datenbank geladen und mit dem Hinzufügen von extracomments (oder wie auch immer es bei euch heißt) können wir die Variable in den info-Teil schreiben. Den Rest macht modified wieder allein.
Schritt 7: Wert ausgebenÜberall, wo eine bestimmt Order bzw. ihre Daten ausgegeben werden, wird die Variable $order gesetzt und von modified befüllt. Und dank Schritt 6, können wir sie so auslesen.
<tr>
<td class="main"><b>Extra-Kommentar: </b></td>
<td class="main"><?php echo $order->info['extracomments']; ?></td>
</tr>
(/admin/orders.php, ~Zeile 450)
Versucht nicht den Wert in der Order-History-Tabelle zu laden oder wie den Kommentar unten zu überschreiben. Das ging mit etwas mehr Aufwand sicher auch, aber die Order History Funktion macht das was sie soll, sehr gut.
[ Für Gäste sind keine Dateianhänge sichtbar ]
Außerhalb des Adminbereichs habt ihr immer eine PHP-Datei, welche die Ausgabe für die HTML-Template-Datei vorbereitet. Es folgt Account History Info als Beispiel.
$smarty->assign('EXTRACOMMENTS', $order->info['extracomments']);
(/account_history_info.php, etwa Zeile 110 im Bereich hinter //Stuff)
{if $EXTRACOMMENTS}
<h2>Extrakommentare:</h2>
<p>{$EXTRACOMMENTS}</p>
{/if}
(/templates/xtc5/module/account_history_info.html, etwa Zeile 22 hinter Payment Method)
[ Für Gäste sind keine Dateianhänge sichtbar ]
Hoffe, das hilft. Bei Fragen, einfach fragen.