Hallo Zusammen,
Es ist was mehr um es einzubauen, aber jetzt braucht man nicht den ganzen Shop umrödeln und hat trotzdem Straße und Hausnummer mit Leerzeichen getrennt und eine Abprüfung...
In der "/templates/xtc5/module/create_account.html" das in Z.68:
<tr>
<td width="120">{#text_street#}</td>
<td>{$INPUT_STREET}</td>
</tr>
ersetzen durch:
<tr>
<td width="120">{#text_street#}</td>
<td>{$INPUT_STREET} {$INPUT_STREET_NO}</td>
</tr>
In der "/templates/xtc5/module/create_guest_account.html" das in Z.68:
<tr>
<td width="120">{#text_street#}</td>
<td>{$INPUT_STREET}</td>
</tr>
ersetzen durch:
<tr>
<td width="120">{#text_street#}</td>
<td>{$INPUT_STREET} {$INPUT_STREET_NO}</td>
</tr>
Dann in der "create_account.php" nach Z.71:
$street_address = xtc_db_prepare_input($_POST['street_address']);
das einfügen:
$street_address_no = xtc_db_prepare_input($_POST['street_address_no']);
In Z.176 nach:
if (strlen($street_address) <ENTRY_STREET_ADDRESS_MIN_LENGTH
) { $error = true; $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR
); } das einfügen:
if (strlen($street_address_no) <ENTRY_STREET_ADDRESS_NO_MIN_LENGTH
) { $error = true; $messageStack->add('create_account', ENTRY_STREET_ADDRESS_NO_ERROR
); } In Z.278 das ändern:
$sql_data_array = array ('customers_id' => $_SESSION['customer_id'], 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country,'address_date_added' => 'now()','address_last_modified' => 'now()'); in das:
$sql_data_array = array ('customers_id' => $_SESSION['customer_id'], 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address . ' ' . $street_address_no, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country,'address_date_added' => 'now()','address_last_modified' => 'now()'); In Z.479 nach dem:
$smarty->assign('INPUT_STREET', xtc_draw_input_fieldNote
(array ('name' => 'street_address', 'text' => ' '. (xtc_not_null
(ENTRY_STREET_ADDRESS_TEXT
) ?
'<span class="inputRequirement">'.ENTRY_STREET_ADDRESS_TEXT
.'</span>' : '')))); das:
$smarty->assign('INPUT_STREET_NO', xtc_draw_input_fieldNote
(array ('name' => 'street_address_no', 'text' => ' '. (xtc_not_null
(ENTRY_STREET_ADDRESS_NO_TEXT
) ?
'<span class="inputRequirement">'.ENTRY_STREET_ADDRESS_NO_TEXT
.'</span>' : '')))); In der "/lang/german/german.php" nach Z.119:
define('ENTRY_STREET_ADDRESS_ERROR', 'Strasse/Nr. muss aus mindestens ' . ENTRY_STREET_ADDRESS_MIN_LENGTH
. ' Zeichen bestehen.');define('ENTRY_STREET_ADDRESS_TEXT', '*'); das einfügen:
define('ENTRY_STREET_ADDRESS_NO_ERROR', 'Hausnummer muss aus mindestens ' . ENTRY_STREET_ADDRESS_NO_MIN_LENGTH
. ' Zeichen bestehen.');define('ENTRY_STREET_ADDRESS_NO_TEXT', '*'); In der "/lang/german/admin/configuration.php" nach Z.100:
define('ENTRY_STREET_ADDRESS_MIN_LENGTH_TITLE' , 'Strasse');define('ENTRY_STREET_ADDRESS_MIN_LENGTH_DESC' , 'Minimum Länge der Strassenanschrift'); das einfügen:
define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_TITLE' , 'Hausnummer');define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_DESC' , 'Minimum Länge der Hausnummer'); In der "/lang/english/english.php" nach Z.119:
define('ENTRY_STREET_ADDRESS_ERROR', 'Street/No. must consist of at least ' . ENTRY_STREET_ADDRESS_MIN_LENGTH
. ' characters.');define('ENTRY_STREET_ADDRESS_TEXT', '*'); das einfügen:
define('ENTRY_STREET_ADDRESS_NO_ERROR', 'Street-No. must consist of at least ' . ENTRY_STREET_ADDRESS_NO_MIN_LENGTH
. ' characters.');define('ENTRY_STREET_ADDRESS_NO_TEXT', '*'); In der "/lang/english/admin/configuration.php" nach Z.101:
define('ENTRY_STREET_ADDRESS_MIN_LENGTH_TITLE' , 'Street Address');define('ENTRY_STREET_ADDRESS_MIN_LENGTH_DESC' , 'Minimum length of street address'); das einfügen:
define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_TITLE' , 'Street No.');define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_DESC' , 'Minimum length of street number'); In der "/includes/form_check.js.php" in Z.144 nach:
check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo xtc_js_lang(ENTRY_STREET_ADDRESS_ERROR); ?>");
das einfügen:
check_input("street_address_no", <?php echo ENTRY_STREET_ADDRESS_NO_MIN_LENGTH; ?>, "<?php echo xtc_js_lang(ENTRY_STREET_ADDRESS_NO_ERROR); ?>");
Dann in der Datenbank noch das:
INSERT INTO configuration SET configuration_key='ENTRY_STREET_ADDRESS_NO_MIN_LENGTH', configuration_value=1, configuration_group_id=2, sort_order=6;
[...]
kleiner tipp: anpassen des hausnummernfeldes in der css z.b. so:
input[name=street_address_no] {
width: 30px;
}
[...]
WICHTIG: Erst an einem Testshop testen da hier Fehler drin sein könnten. Ist ungetestet!
Die "/include/form_check.js.php" könnte im Nachhinein noch erweitert werden so, das die Hausnummer nur Buchstaben und Zahlen enthalten darf aber keine Schrägstriche etc.
Viele Grüße
Franky
[
EDIT Tomcraft 13.12.2011: Fehler in Anleitung korrigiert, danke an kgd für den
Hinweis.]
[
EDIT Tomcraft 10.12.2014: Fehler in Anleitung korrigiert und englische Übersetzung ergänzt.]