Wenn ich mich richtig erinnere ging das Anlegen von Datenbankfeldern auch im Modul. Ich hatte da mal was für eine 2.0 gebastelt. Müsste ich nochmal raussuchen.
Dass ich hier nur einen Link werfe und keine aussagekräftige Antwort schreibe liegt am Input:
[...]
Ich bin am verzweifeln.
Ich versuche den Wert Zustand (products_zustand) zu integrieren. Optimal wäre es mit einem dropdown menu für die Werte "neu", "gebraucht" & "refurbished".
Egal ob ich etwas versuche in new_product.php oder in add_db_fields.php zu ändern.
Das Auswahlfeld wird mir einfach nie angezeigt.
Kann mir hier jemand weiterhelfen. Es dürfte ja eigentlich nicht so schwer sein.
[...]
EVA Prinzip: Eingabe -> Verarbeitung -> Ausgabe.
Wenn Eingabe Mist ist, also die Frage so formuliert ist, dass man eine
braucht, klappt die Verarbeitung nicht wirklich und dann kann die Ausgabe auch nur Mist sein.
Ich habe jetzt noch mal rumgesucht, es gibt da einen Ordner:
admin/includes/extra/modules/
add_db_fields/
Schau Dir die Datei an:
admin/includes/add_db_fields.php
Da steht:
//CUSTOM ADDS//autoload new product addons require_once(DIR_FS_INC
.'auto_include.inc.php');foreach(auto_include
(DIR_FS_ADMIN
.'includes/extra/modules/add_db_fields/','php') as $file) require ($file);define('ADD_PRODUCTS_FIELDS', implode(',',$add_products_fields) ); Was bedeutet, Du müsstest dem Array $add_products_fields die Namen der neuen Felder anhängen
Neue Datei:
/admin/includes/extra/modules/add_db_fields/00_my_fields.php
<?php
$add_products_fields[] = 'products_author';
$add_products_fields[] = 'products_isbn';
?>
Und schon versucht der Shop die 2 neuen Felder auszulesen
Die Felder selbst sind manuell in der DB anzulegen, oder Du baust das mit ins Modul ein. Entweder als installierbares Modul, wie in meinem Link, oder als Abfrage .... Wenn DB Feld nicht existiert -> Anlegen
Da das Modul im Backend läuft und nur aktiv wird, wenn Du Produkte bearbeitest, ist das für die Performance unerheblich, wenn jedes mal geprüft wird, ob das Feld da ist.
Damit die Felder auch angezeigt werden, nimm den hookpiont in der new_product.php
/admin/includes/extra/modules/new_product
Da einfach eine php Datei reinlegen, die die Felder anzeigt. Das Funktioniert Analog zur Anleitung für die 1.06. Ich meine den Abschnitt:
<!-- products_extrafield beginn -->
<tr>
<td><span class="main"><?php echo TEXT_PRODUCTS_AUTHOR; ?></span></td>
<td><span class="main"><?php echo xtc_draw_input_field('products_author', $pInfo->products_author); ?></span></td>
</tr>
<tr>
<td><span class="main"><?php echo TEXT_PRODUCTS_ISBN; ?></span></td>
<td><span class="main"><?php echo xtc_draw_input_field('products_isbn', $pInfo->products_isbn); ?></span></td>
</tr>
<!-- products_extrafield end -->
Vergiss die Sprachkonstanten für die Beschriftung der Felder nicht! Die gehören in eine neue Datei in dem Ordner:
/lang/german/extra/admin
Der Rest ist dann Frontend, also andere Baustelle.
Habe gerade keine 2.0er Installation am laufen, deshalb gibt es jetzt kein komplettes Beispiel mit Frontend.
Und der Code hier ist nicht getestet! Error Reporting an, damit man eventuelle Tippfehler meinerseits sieht!!!
Edit: Wenn das Feld im Backend an einer anderen Stelle gewünscht ist, einfach mit JQuery wegschieben. Das hatte ich hier mal erwähnt:
Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen