Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Fehler in der /admin/orders_edit.php

    xtc_geek

    • Neu im Forum
    • Beiträge: 32
    Fehler in der /admin/orders_edit.php
    am: 18. Oktober 2011, 00:20:54
    modified eCommerce Shopsoftware 1.05 sp1a

    In der "/admin/orders_edit.php" ist ein verflixter Fehler drin:

    Zeile ~632:

    Code: PHP  [Auswählen]
    $status_query = xtc_db_query("select customers_status_show_price_tax, customers_status_add_tax_ot from ".TABLE_CUSTOMERS_STATUS." where customers_status_id = '".$order->info['status']."'");

    Wenn es die gleiche Kundengruppe in mehreren Sprachen gibt, z.B. Merchand (english), dann kann es sein, dass durch obige Query die falsche Kundengruppe gefunden wird.

    ändern für Deutsch in:

    Code: PHP  [Auswählen]
      $status_query = xtc_db_query("select customers_status_show_price_tax, customers_status_add_tax_ot from ".TABLE_CUSTOMERS_STATUS." where customers_status_id = '".$order->info['status']."' AND language_id ='2'");

    Super wäre es, wenn mir jmd. eben sagen könnte wie ich da immer die aktuelle "language_id" des Kunden reinbekomme?

    Ist dieser Fehler schonmal aufgefallen? Könnte es sein, dass noch weitere Abfragen dieser Art in der Sektion sind, welche man nochmal unter die Lupe nehmen könnte?

    lg.ks


    Linkback: https://www.modified-shop.org/forum/index.php?topic=16080.0

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Re: Fehler in der /admin/orders_edit.php
    Antwort #1 am: 18. Oktober 2011, 00:59:31

    Code: PHP  [Auswählen]
    ...AND language_id ='".(int)$_SESSION['languages_id']."'");

    Gruß h-h-h

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Fehler in der /admin/orders_edit.php
    Antwort #2 am: 18. Oktober 2011, 01:07:50
    Danke für die Fehlermeldung.  :thumbs:

    Füge vor die Abfrage hinzu:

    Code: PHP  [Auswählen]
      $lang_query = xtc_db_query("select languages_id from ".TABLE_LANGUAGES." where directory = '".$order->info['language']."'");
      $lang = xtc_db_fetch_array($lang_query);

    Die Abfrage dann wie folgt ändern:

    Code: PHP  [Auswählen]
      $status_query = xtc_db_query("SELECT customers_status_show_price_tax
                                      FROM "
    .TABLE_CUSTOMERS_STATUS."
                                     WHERE customers_status_id = '"
    .$order->info['status']."'
                                       AND language_id ='"
    .(int)$lang['languages_id']."'
                                   "
    );

    Die Abfrage bei

    Code: PHP  [Auswählen]
    if ($action == 'product_edit') {

    ebenso ändern.

    Evtl müssen tatsächlich noch andere Codestellen überarbeitet werden.
    Bei der Bestellbearbeitung ist es so, das grundsätzlich die bei der Bestellung verwendete Sprache berücksichtigt werden soll, völlig unabhängig von der im Admin gewählten Sprache.
    Das wurde nicht überall konsequent durchgezogen. Ich schaue mir das aber an und fixe das.

    Gruss Web28

    xtc_geek

    • Neu im Forum
    • Beiträge: 32
    Re: Fehler in der /admin/orders_edit.php
    Antwort #3 am: 18. Oktober 2011, 01:37:53
     :-) vielen dank .. für die schnelle hilfe!

    werde es morgen aber erst komplett umsetzen können .. wenn mir dann noch was beim Überarbeiten auffallen sollte sag ich gern bescheid ..

    lg.ks

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Re: Fehler in der /admin/orders_edit.php
    Antwort #4 am: 18. Oktober 2011, 11:17:18
    Verschoben nach "Bugs oder Funktionsfehler".

    Grüße

    Torsten

    Archetim

    • Mitglied
    • Beiträge: 133
    Re: Fehler in der /admin/orders_edit.php
    Antwort #5 am: 20. Oktober 2011, 00:26:54
    Danke für die Fehlermeldung.  :thumbs:
    [...]

    Hi,

    Ich habe am Anfang (ca. Z.48ff) folgenden Code-Block gefunden:

    Code: PHP  [Auswählen]
    // Adressbearbeitung Anfang
    if ($action == 'address_edit') {

      $lang_query = xtc_db_query("select languages_id from ".TABLE_LANGUAGES." where directory = '".$order->info['language']."'");
      $lang = xtc_db_fetch_array($lang_query);

    Würde es nicht auch gehen, wenn man diese Abfrage vor das IF legt und im Anschluss die Variable "$lang" verwenden würde?
    Dann wäre der neue Code von der Form:

    Ändere die Abfrage:

    Code: PHP  [Auswählen]
      $status_query = xtc_db_query("SELECT customers_status_show_price_tax
                                     FROM "
    .TABLE_CUSTOMERS_STATUS."
                                    WHERE customers_status_id = '"
    .$order->info['status']."'
                                      AND language_id ='"
    .(int)$lang."'
                                  "
    );

    Ich habe das nicht getestet und vielleicht übersehe ich auch etwas. Aber damit würde man eine zusätzliche Query sparen.

    Grüße
    Rene