AGBs aktzeptieren bevor man weitergehen kann [Gelöst]

  • Orphelina Orphelina
    R2-D2
    0 x
    95 Beiträge
    0 Hilfreiche Beiträge
    10. 04. 2007, 10:06

    Hallo zusammen,

    ich hab fleissig das Forum durchsucht, aber anscheinend nach den falschen Begriffen denn ich finde nichts konkretes dazu.

    Ich hab Typo Version 4 und tt_products 2.5.1.
    Nun will ich dass man im Warenkorb die AGB per Check-Button anhaken muss, bevor man im Bestellprozess fortfahren kann. Leider kann man das auch weglassen und kommt trotzdem weiter...

    Hier der Ausschnitt aus dem HTML-Template
    [TS]<td>###GW1B###<input type="checkbox" name="recs[personinfo][agb]" value="###PERSON_AGB###" /> <!--###LINK_AGB###-->Die Allgemeinen Geschäftsbedingungen<!--###LINK_AGB###--> habe ich gelesen und erkenne sie hiermit an.###GW1E###</td>[/TS]

    Im Setup meines Shops
    [TS]plugin.tt_products.requiredInfoFields = name, email, agb[/TS]

    In den Constants (Seite mit AGBs existiert)
    [TS]plugin.tt_products.PIDagb = 34[/TS]

    Was mache ich falsch?

    Danke für eure Hilfe!


  • Orphelina Orphelina
    R2-D2
    0 x
    95 Beiträge
    0 Hilfreiche Beiträge
    22. 05. 2007, 11:02

    Hallo,

    ich habe es exakt so gemacht wie du beschrieben hast und jetzt kann ich nicht bestellen, da er meckert dass nicht alle Adressinformationen angegeben sind. Da ich 2.5.1 benutze sagt er leider nicht was genau. Jedenfalls scheint es immer noch irgendwo zu haken...

    Gruß

  • SirVivor SirVivor
    R2-D2
    0 x
    94 Beiträge
    0 Hilfreiche Beiträge
    24. 05. 2007, 17:10

    also, bei mir sagt es schon "field: name", "field AGB" oder sonstiges, was nicht passt.

    plugin.tt_products.requiredInfoFields = company, name, address, zip, city, country, telephone, email

    stimmen diese im setup angeführten required fields auch mit denen in deinem html-template (dem richtigen formularteil) überein?

    bei mir schaut das so aus:

    [HTML]<!-- ###BASKET_INFO_TEMPLATE### begin
    Subpart used if the GPvar "products_info" was set. This is normally used to let people enter address information separately from the real basket
    Exact same features as BASKET_TEMPLATE
    -->
    <form method="post" action="#FORM_URL###" id="tx-ttproducts-pi1-basket-info">
    <fieldset id="tx-ttproducts-pi1-basket-info-invoice-address">

    <legend>Bitte Daten eingeben</legend>
    <!-- ###BILLING_ADDRESS### start -->

    <p class="tx-ttproducts-pi1-basket-info-notice">Hinweis: *-Felder m&uuml;ssen
    ausgef&uuml;llt werden</p>
    <p>Bitte geben Sie hier Namen, Firmenwortlaut und Adresse an, auf die das Angebot
    lauten soll.</p>

    <table>
    <tr>
    <td><label for="company">Firma<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</label></td>
    <td><input type="text" name="recs[personinfo][company]" id="recs[personinfo][company]" size="30" value="###PERSON_COMPANY###"></td>
    </tr>
    <tr>
    <td><label for="salutation">Anrede<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</label></td>
    <td>###GW1B######PERSON_SALUTATION######GW1E###</td>
    </tr>
    <tr>
    <td><label for="name">Ihr Name<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</label></td>
    <td><input type="text" name="recs[personinfo][name]" id="name" size="30" value="###PERSON_NAME###"></td>
    </tr>
    <tr>
    <td><label for="adress">Strasse / Nr <span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</label></td>
    <td><textarea cols=25 rows=1 name="recs[personinfo][address]" id="address" wrap="off">###PERSON_ADDRESS###</textarea></td>
    </tr>
    <tr>
    <td>PLZ<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</td>
    <td><input type="text" name="recs[personinfo][zip]" id="recs[personinfo][zip]" size="30" value="###PERSON_ZIP###" /></td>
    </tr>
    <tr>
    <td height="23">Ort<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</td>
    <td><input type="text" name="recs[personinfo][city]" id="recs[personinfo][city]" size="30" value="###PERSON_CITY###" /></td>
    </tr>
    <tr>
    <td><label for="phone">Tel.<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</label></td>
    <td><input type="text" name="recs[personinfo][telephone]" id="phone" size="30" value="###PERSON_TELEPHONE###"></td>
    </tr>
    <tr>
    <td><label for="email">E-Mail<span class="tx-ttproducts-pi1-basket-info-compulsary">*</span>:</label></td>
    <td><input type="text" name="recs[personinfo][email]" id="email" size="30" value="###PERSON_EMAIL###" /></td>
    </tr>
    </table>


    <!-- ###BILLING_ADDRESS### end-->
    ----------------
    agb akzeptieren:

    <legend>AGB</legend>
    <table width="100%" border="0">
    <tr>
    <td>Die <a href="http://www.domain.at/_web/impressum/impressum.php" target="_blank">"AGB"</a> habe ich gelesen und erkenne sie hiermit an.<br />
    <strong>Bitte schicken Sie mir ein Richtpreisangebot!</strong></td>
    <td><input class="tx-ttproducts-pi1-submit-agbbutton" type="checkbox" name="recs[personinfo][agb]" id="recs[personinfo][agb]" value="###PERSON_AGB###" /></td>
    </tr>
    </table>
    </fieldset>

    <fieldset id="tx-ttproducts-pi1-basket-submit">

    <legend>Beenden</legend>
    <input class="tx-ttproducts-pi1-submit" type="submit" name="products_update" value="Zurück zum Warenkorb">
    <input class="tx-ttproducts-pi1-submit" type="submit" name="products_payment" value="Weiter" onClick="document.forms[0].action='###FORM_URL_FINALIZE###';">
    </fieldset>
    </form>
    <!-- ###BASKET_INFO_TEMPLATE### end -->
    [/HTML]

    "name="recs[personinfo][[b]city[/b]]" id="recs[personinfo][[b]city[/b]]" size="30" value="###PERSON_[b]CITY[/b]###" "
    Die fettgeschriebenen werte entsprechen den werten der tt_products bekannten requiredfields und sollten auch so vergeben werden.

    Hoffe das hilft dir weiter!
    Liebe Grüße,
    Sascha

  • mfin mfin
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    25. 05. 2007, 20:05

    Ohne jetzt irgendwie besserwisserisch klingen zu wollen - der Fehler liegt für mich hier:

    plugin.tt_products.requiredInfoFields = company, name, address, zip, city, country, telephone, email

    Hier fehlt meines Erachtens "agb". Da es sich hier um eine Checkbox handelt, muss diese angeklickt sein, wenn required.

    Faszinierend finde ich, dass es bei meiner Testinstallation auch ohne diese Zeile ganz gut klappt, wie hier gewünscht. Required fields habe ich nur bei sr_feuser_register eingetragen (was natürlich der Unterschied zu der hier beschriebenen Installation sein mag), und dort habe ich das Feld "agb" auch nicht erwähnt (wieso auch). Vermutlich default?

    Beste Grüße,

    Michael

  • gkahr gkahr
    R2-D2
    0 x
    105 Beiträge
    0 Hilfreiche Beiträge
    26. 05. 2007, 11:20

    [quote="mfin"]
    Hier fehlt meines Erachtens "agb". Da es sich hier um eine Checkbox handelt, muss diese angeklickt sein, wenn required.
    [/quote]

    Das ist ja genau das Problem, dass es auch, wenn man es einsetzt nicht required ist.

    Gruß
    Lars

  • gkahr gkahr
    R2-D2
    0 x
    105 Beiträge
    0 Hilfreiche Beiträge
    26. 05. 2007, 11:26

    [quote="Orphelina"]
    ich habe nochmal im Forum gestöbert und habe alles Mögliche ausprobiert und noch immer keine Lösung gefunden...
    [/quote]

    Ich hatte genau dasselbe Problem. Auf die Lösung bin ich gekommen, weil die PIDagb - obwohl sauber gefüllt - nicht übernommen wird.

    Lösung für den Moment ist in Zeile 396 von tt_products\control\class.tx_ttproducts_control.php, die so aussieht

    1. if ($pidagb && !isset($_REQUEST['recs']['personinfo']['agb'])) {

    gegen die nachfolgende auszutauschen:

    1. if (!isset($_REQUEST['recs']['personinfo']['agb'])) {

    Gruß
    Lars

  • Orphelina Orphelina
    R2-D2
    0 x
    95 Beiträge
    0 Hilfreiche Beiträge
    05. 06. 2007, 09:26

    Hallo Leute,

    letzendlich konnte ich das Problem mit JavaScript lösen, das dank Hilfe eines Kollegen dann auch das gemacht hat was wir wollten :-)

    1. <script language="JavaScript">
    2. function chkFormular() {
    3. if(document.shop_form.bestaetigung.checked == "") {
    4. alert("Sie müssen die AGB's akzeptieren, um eine Bestellung vornehmen zu können!");
    5. document.shop_form.bestaetigung.focus();
    6. return false;
    7. }
    8. }
    9. </script>

    [HTML]<FORM method="post" action="###FORM_URL###" onSubmit="return chkFormular();">[/HTML]

    [HTML]<input type="checkbox" name="agb" id="agb" value="###PERSON_AGB###"> <!--###LINK_AGB###-->Die Allgemeinen Geschäftsbedingungen<!--###LINK_AGB###--> habe ich gelesen und erkenne sie hiermit an.###GW1E###</td>[/HTML]

    Den Hack im PHP hab ich dann nicht mehr probiert...

    Danke für all die Tipps und Mühen!!!

    Viele Grüße