Ergebnis 1 bis 22 von 22

Thema: Land in Adresse vorgeben

  1. #1
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard Land in Adresse vorgeben

    Hallo zusammen,

    ich biete in meinem Shop nur Produkte für Kunden aus Deutschland an.
    Ich habe das auch soweit in der Konfiguration hinterlegt. Nun möchte ich aber, dass bei der Adresseingabe (Rechnung und Versand) bereits Deutschland vorgeben ist - ist ja auch nur dieser Wert vorhanden.

    Nina hatte zur Konferenz einen Shop (werbeplanen.com) gezeigt, bei dem das so funktioniert. Weiß jemand, wie man das einrichtet?

    Danke.

    Grüße
    PAndroid

  2. #2
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.335
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du könntest die Datei /system/config/countries.php anpassen, indem Du alle Länder rauswirfst (oder auskommentierst), die Du nicht in der Liste haben möchtest.

    Carolina.

  3. #3
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo Lucina,

    danke für Deine schnelle Antwort.
    Die Liste selbst ist nicht das Problem. Diese ist bereits auf Deutschland als Eintrag beschränkt. Ich möchte nur, dass Deutschland gleich ausgewählt ist, wenn man die Adresse eingibt, ohne dass man erst auf das Selectfeld klicken muss.

    Grüße
    PAndroid

  4. #4
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Moin,

    also wenn meines Wissens nach sollten folgende 2 Zeilen in der system/config/dcaconfig.php den gewünschten Effekt bringen:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['country']['default'] = 'de';
    $GLOBALS['TL_DCA']['tl_iso_addresses']['fields']['country']['default'] = 'de'
    Damit wird sowohl für das Mitgliederprofil, als auch für die Isotope Adressen der Default für Land auf Deutschland gesetzt.

    Grüße, Cliff

  5. #5
    Contao-Nutzer
    Registriert seit
    07.04.2010.
    Ort
    Berlin
    Beiträge
    67

    Standard

    Kurze Rückfrage: wozu kann ich aber laut Label in der Shopkonfiguration einen Standardwert für die Länderauswahl bei Rechnungs-/Lieferadressen auswählen. Sollte dies nicht eher einen Bug anzeigen oder habe ich die Zusammenhänge dieser Option noch nicht ganz verinnerlicht?

    Nächste Frage: Wozu überhaupt den Käufer nach einem Land fragen, wenn der Shop nur zum Versand in ein Land konfiguriert ist? Wenn ich aber das Feld "Land" aus der Liste der aktiven Felder zur Versand/Rechnungsadresse nehme, werden keine Versandmethoden mehr angeboten, weil diese ja fest auf ein Land gesetzt sind ... so zeigt es sich hier mit der aktuellen Isotope-Version in 2.9.5 ...

  6. #6
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In der nächsten Version 1.3 wird das Land vorausgewählt, und du kannst auch die Länder für Registrierung und Persönliche Daten limitieren.

    Wenn du die Landauswahl in der Adresse weglassen willst, dann lass einfach die Landauswahl in den Versandmethoden auch leer ;-)
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  7. #7
    Contao-Nutzer
    Registriert seit
    07.04.2010.
    Ort
    Berlin
    Beiträge
    67

    Standard

    Hallo Andreas,

    das ist ein Punkt ...

  8. #8
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo Cliffen,

    vielen Dank für Deine Hilfe.
    Klappt hervorragend.

    Gruß
    PAndroid

  9. #9
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von pandroid Beitrag anzeigen
    ...vielen Dank für Deine Hilfe.
    Klappt hervorragend...
    Super, gern geschehen.

    Gruß, Cliff

  10. #10
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard

    Ich würde auch gerne erreichen, dass Deutschland in der Länderauswahl (von insgesamt ca. 30, die ich bei Rechnung/Lieferadresse definiert habe) als erstes steht.

    Habe es aber mit folgendem Zusatz in der in system/config/langconfig.php nicht erreicht
    folgendes eingegeben:

    if ($GLOBALS['TL_LANGUAGE'] == 'de')
    {
    $GLOBALS['TL_DCA']['tl_iso_addresses']['fields']['country']['default'] = 'de';

    }

    auch nicht in der dcaconfig.php mit:

    $GLOBALS['TL_DCA']['tl_iso_addresses']['fields']['country']['default'] = 'de';

    was mache ich falsch/was muss ich ändern, damit ich Deutschland an erster Stelle der Länderauswahl habe (oder meinetwegen auch nochmal zusätzlich in der alphabetischen Liste, aber auf jeden Fall auch an erster Stelle)

    tschüß,
    beate

  11. #11
    Contao-Nutzer
    Registriert seit
    07.04.2010.
    Ort
    Berlin
    Beiträge
    67

    Standard

    Die genannte Einstellung gehört mit Sicherheit nur in die dcaconfig.php.

    Abgesehen davon: Die Einstellung des default hat keine Auswirkung auf die Befüllung der Länderliste, sondern ist eine allgemeine Möglichkeit für Formular-Felder in Contao jedweder Art, einen Anfangswert festzulegen, der beim Erstellen neuer Datensätze vorab eingetragen wird. Deine Einstellung bewirkt insofern, dass bei einem Kunden die Maske zur Angabe der Liefer- oder Rechnungsadresse initial "Deutschland" als Land wählt. Mehr nicht.

    Um die Sortierung anzupassen bedarf es wohl tieferer Eingriffe in den Code von Contao, da es meines Wissens keine Möglichkeit gibt, um über eine ähnliche Option die Sortierung so wie gewünscht anzupassen.

    VG.
    Geändert von soletan (02.12.2011 um 18:59 Uhr)

  12. #12
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard

    ... danke für die Erklärung!

    Dann muss man also an anderer Stelle zusätzlich die Haupt-Versandländer quasi über die bestehende Liste schreiben ...
    Aber wo? So super kompliziert ist das hoffentlich nicht.
    In vielen Shops,stehen die hauptsächlichen Bestellländer an den ersten Stellen stehen (z.B Deutschland, Österreich, Schweiz); es ist einfach benutzerfreundlicher.
    Weiß vielleicht doch jemand, wo man die Eingaben dazu machen kann?
    Vielleicht gibt es eine alphabetische Sortierung und man könnte vor Deutschland einfach eine Leerstelle schreiben?

    tschüß,
    beate

  13. #13
    Contao-Nutzer
    Registriert seit
    07.04.2010.
    Ort
    Berlin
    Beiträge
    67

    Standard

    Ich denke, dass dies weniger einfach machbar ist als erhofft.

    Die Länderauswahl innerhalb von Isotope nutzt eine Systemfunktion von Contao, welche die Länderliste bereitstellt. Diese wiederum sortiert die Länderliste strikt alphabetisch nach dem angezeigten Ländernamen im gewählten Locale. Selbst wenn du also bspw. die Auswahl und Reihenfolge der bekannten Länder in /system/config/countries.php anpassen würdest, würde dies nur die Auswahl einschränken, nicht aber die Reihenfolge der gelisteten Länder ändern. Weiterhin ist fraglich, ob eine Anpassung dieser Datei updatesicher ist.

    Als schnelle Lösung bliebe dies:
    Bis einschließlich 2.10.1 findest du die genannte Aufbereitung der Länderliste in der Datei /system/libraries/Controller.php, welche du nur bearbeiten solltest, wenn du weißt, was du tust, und nicht erwartest, dass deine Anpassungen bei kommenden Contao-Updates automatisch erhalten bleiben. In jener Datei findest du die Methode getCountries(), hier ab Zeile 807, bei dir bzw. anderen Versionen als der 2.10.1 kann das natürlich abweichen. Entscheidend ist darin der Aufruf von

    Code:
    asort( $arrAux );
    Dieser sortiert die Länder nach dem Landesnamen in der jeweils aktuellen Sprache. Wenn du danach bspw. die Einträge des Arrays $arrAux herausziehst und neu einbaust, die du am Anfang sehen willst, dann würde dies systemweit greifen:

    Code:
    asort( $arrAux );
    
    $de = $arrAux['de'];
    $at = $arrAux['at'];
    $ch = $arrAux['ch'];
    
    unset( $arrAux['de'], $arrAux['at'], $arrAux['ch'] );
    
    $arrAux = array_merge( array( 'de' => $de, 'at' => $at, 'ch' => $ch ), $arrAux );
    Wenn das nur innerhalb von Isotope so passieren soll, bliebe noch die mit ähnlichen Warnungen gespickte Möglichkeit, die Datei /system/modules/isotope/dca/tl_iso_addresses.php anzupassen, auch wenn dort eine alternative Anpassung erforderlich ist.

    Die in jedem Fall bessere Alternative wäre ein Feature Request entweder für Contao allgemein oder für Isotope im Speziellen über die jeweiligen Ticketsysteme entweder bei http://dev.contao.org oder bei http://www.contao-forge.org/projects/isotope/issues.

    PS: Deinen Vorschlag mit den Leerzeichen mal aufgreifend bildet sich dadurch vielleicht eine weitere Möglichkeit. Hierzu kannst du die Sprachendateien bspw. über die /system/config/langconfig.php anpassen und musst dazu folgende Einträge wie folgt anpassen, allerdings mit dem Gewinn, dass das Leerzeichen evtl. auch in der Auswahlbox als Einrückung sichtbar wird:

    Code:
    $GLOBALS['TL_LANG']['CNT']['de'] = ' ' . $GLOBALS['TL_LANG']['CNT']['de'];
    $GLOBALS['TL_LANG']['CNT']['at'] = ' ' . $GLOBALS['TL_LANG']['CNT']['at'];
    $GLOBALS['TL_LANG']['CNT']['ch'] = ' ' . $GLOBALS['TL_LANG']['CNT']['ch'];
    Geändert von soletan (06.12.2011 um 12:59 Uhr)

  14. #14
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard Länderauswahl bei Adresse, D, A, CH ganz oben - klappt mit diesem Tip

    Zitat Zitat von soletan Beitrag anzeigen

    PS: Deinen Vorschlag mit den Leerzeichen mal aufgreifend bildet sich dadurch vielleicht eine weitere Möglichkeit. Hierzu kannst du die Sprachendateien bspw. über die /system/config/langconfig.php anpassen und musst dazu folgende Einträge wie folgt anpassen, allerdings mit dem Gewinn, dass das Leerzeichen evtl. auch in der Auswahlbox als Einrückung sichtbar wird:

    Code:
    $GLOBALS['TL_LANG']['CNT']['de'] = ' ' . $GLOBALS['TL_LANG']['CNT']['de'];
    $GLOBALS['TL_LANG']['CNT']['at'] = ' ' . $GLOBALS['TL_LANG']['CNT']['at'];
    $GLOBALS['TL_LANG']['CNT']['ch'] = ' ' . $GLOBALS['TL_LANG']['CNT']['ch'];
    Das habe ich jetzt gemacht und es scheint soweit zu klappen!
    (bin mit der Euphorie noch vorsichtig, kriege wegen anderer sachen ab und an 'invalid request token' ....)
    aber klasse, vielen Dank erstmal!

    (Einrückung passiert übrigens keine.
    würde noch gerne etwaiger abgrenzung haben, leerzeile o.ä. aber so ist es schon prima,)

    tschüß,
    beate

  15. #15
    Contao-Nutzer
    Registriert seit
    07.04.2010.
    Ort
    Berlin
    Beiträge
    67

    Standard

    Mal ein ganz anderer Ansatz: was spricht gegen einen JavaScript-Schnipsel, der die Liste gern auch umsortiert, aber zumindest die gewünschte Leerzeile einbaut, wenngleich dann auch per JavaScript verhindert werden sollte, dass man diese Leerzeile auswählen kann. JavaScript zu deaktivieren ist heutzutage für die wenigstens Nutzer eine Option und der erforderliche Code wäre auch für entsprechende Filter nicht sonderlich auffällig.

    Der Vorteil dieser JavaScript-Lösung liegt auf der Hand: man ist unabhängig von der Implementation von Contao, damit updatesicher ... es kostet auch kaum extra Bandbreite, behindert im Grunde nicht die eventuelle Barrierefreiheit einer Site ... und dank der vorhandenen Frameworks (mootools) sollte das auch mit wenigen Zeilen Code zu machen sein.

    VG.

  16. #16
    Contao-Nutzer
    Registriert seit
    08.09.2011.
    Beiträge
    71

    Standard

    Zitat Zitat von soletan Beitrag anzeigen
    Mal ein ganz anderer Ansatz: was spricht gegen einen JavaScript-Schnipsel, der die Liste gern auch umsortiert, ....
    VG.
    dagegen spricht nichts!
    nur - ich kann ich leider keinen Java-Script-Schnipsel programmieren .... höchstens mini-brösel....
    aber wenn Du einen auf die Schnelle rüberschnipsen könntest ... ;-)

    tschüß,
    beate

  17. #17
    Contao-Nutzer
    Registriert seit
    07.04.2010.
    Ort
    Berlin
    Beiträge
    67

    Standard

    Folgender auf mootools basierende Code wurde von mir nicht am lebenden Beispiel getestet, könnte daher also Fehler enthalten, die du aber vielleicht mit Firebug o.ä. selbst ausmerzen kannst. Vielleicht geht das sogar noch kürzer und einfacher, aber mein Vorschlag ist dafür wirklich ein "Schnellschnipsel" ...

    Code:
    window.addEvent("domready",function()
    {
    	$$("select").each( function()
    	{
    		// select lists to process
    		if ( this.getElements("option[value=de],option[value=at],option[value=ch]").length > 0 )
    		{
    			// prepend separator item to list
    			new Element("option",{text:"---"}).inject(this,"top");
    	
    			// extract promoted items from list and re-prepend to it in reverse order 
    			this.getElement("option[value=ch]").inject(this,"top");
    			this.getElement("option[value=at]").inject(this,"top");
    			this.getElement("option[value=de]").inject(this,"top");
    	
    			// use closure scope to access list on form submit
    			var that = this;
    	
    			// prevent form submit on selecting separator
    			this.getParents("form")[0].addEvent("submit",function()
    			{
    				var selected = that.getSelected().shift();
    				if ( selected && !selected.get("value") )
    					return false;
    			});
    		}
    	});
    });
    Der Listenfilter im ersten if-Statement könnte natürlich false positives produzieren, also auch Listen anpassen, die du nicht anpassen wolltest. Da müsste man dann einen besseren CSS-Selektor ansetzen.

  18. #18
    Contao-Fan
    Registriert seit
    25.07.2010.
    Beiträge
    325

    Standard

    Zitat Zitat von lucina Beitrag anzeigen
    Du könntest die Datei /system/config/countries.php anpassen, indem Du alle Länder rauswirfst (oder auskommentierst), die Du nicht in der Liste haben möchtest.

    Carolina.
    hi,
    ich möchte auch diese Länderauswahl auf Deutschland - Österreich - Schweiz begrenzen im Modul webShop

    kann man das problemlos tun die countries.php Länder auskommentieren, wenn man mit diesen Ländern nichts zu tun hat? Ist das Updatesicher?
    sind die Länder für die Extension überhaupt da drin?

    vielen Dank...
    Geändert von tio (27.06.2012 um 18:16 Uhr)

  19. #19
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Schau mal Tristan hat dafür eine Erweiterung geschrieben, mit Doku auf YouTube.
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  20. #20
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von tio Beitrag anzeigen
    hi,
    ich möchte auch diese Länderauswahl auf Deutschland - Österreich - Schweiz begrenzen im Modul webShop
    Im webShop oder in Isotope eCommerce? Sonst wärst du nämlich im falschen Forum ;-)
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  21. #21
    Contao-Fan
    Registriert seit
    25.07.2010.
    Beiträge
    325

    Daumen hoch

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Im webShop oder in Isotope eCommerce? Sonst wärst du nämlich im falschen Forum ;-)
    webShop ... sorry jetzt hab ich gesehen, das ich falsch bin...

    ämm.. aber dafür die Info von KATgirl, die Ext. heisst countries-configurator und geht prima...

    danke.

    thanks to tristan :-)

  22. #22
    Contao-Nutzer
    Registriert seit
    27.01.2016.
    Beiträge
    12

    Standard

    Zitat Zitat von cliffparnitzky Beitrag anzeigen
    Moin,

    also wenn meines Wissens nach sollten folgende 2 Zeilen in der system/config/dcaconfig.php den gewünschten Effekt bringen:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['country']['default'] = 'de';
    $GLOBALS['TL_DCA']['tl_iso_addresses']['fields']['country']['default'] = 'de'
    Damit wird sowohl für das Mitgliederprofil, als auch für die Isotope Adressen der Default für Land auf Deutschland gesetzt.

    Grüße, Cliff

    Contao 4.13.34
    PHP 8.1


    Hallo Cliff,

    hier wäre ich mit noch einer weiteren Frage.

    Ich wollte auch erreichen, dass bei Land und Sprache Deutsch(land) voreingestellt ist.

    Ich habe das entsprechend wie hier von dir und auch in anderen Posts beschrieben als default in der tl_member (contao/dca) gesetzt (nur die erste Zeile).

    Aber auch das klappt nur im Backend wie gewünscht.

    Im Frontend bei der Registrierung muss ich die Felder zwingend anzeigen lassen. Dann werden sie mit dem eingestellten default-Wert angezeigt und nur dann die Werte beim Versenden entsprechend übertragen.

    Aber genau das wollte ich vermeiden. Das Formular soll so kurz wie möglich sein und nicht auszufüllende Felder erst gar nicht angezeigt werden. Dann werden die Werte aber leider nicht mit ins Backend übertragen, bzw. nicht gespeichert.

    Kann ich das irgendwie hinbekommen, dass es auch ohne Anzeige bei der Registrierung mit übertragen wird?

    Mir würde da eine Änderung des Templates member_default.html5 einfallen. Man könnte die beiden manuell aufnehmen und auf hidden setzen. Ich weiß aber nicht, ob das die richtige Vorgehensweise ist.

    Vielen Dank und viele Grüße

    Michael
    Geändert von MichaelS (19.11.2023 um 14:39 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •