rechtstexte für onlineshop
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: Admin search_bar Suche erweitern

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Admin search_bar Suche erweitern
    am: 30. September 2021, 08:37:31
    Hallo an alle, eine Frage an die Experten hier,

    wir bekommen über den Magnalister sehr viele Amazon-Bestellungen herein, da bleibt es nicht aus, dass Anfragen zum Bestellstatus kommen. Nun würden wir gerne die Suche nach der Amazon Bestellnummer (Beispiel: 304-1234567-1234567) erweitern, die Bestellnummer wird in der Tabelle: magnalister_orders / special abgespeichert

    Leider ist das mit der Suche in der Adminbar sehr verwirrend und unübersichtlich für mich als Laie, wer hat einen tipp wo ich das modifizieren muss, um nach der Suche der Bestellnummer die passende Bestellung auszugeben?

    Vielen Dank schonmal im Voraus

    MfG

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42058.0
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware

    hellwanger

    • modified Team
    • Beiträge: 2
    • Geschlecht:
    Re: Admin/Search_bar suche erweitern
    Antwort #1 am: 04. Oktober 2021, 09:08:02
    Schau doch bitte mal, ob der Magnalister nicht auch einen Eintrag in der "orders_status_history" Tabelle hinterlässt, sieht man direkt in den Bestelldetails im Adminbereich.
    Wenn ja hätte ich ein kleines Modul (nur auto_include, keine Dateiänderungen), welches eine Order-History Suche in der Adminleiste integriert.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #2 am: 12. Oktober 2021, 23:40:10
    Habe immer noch keine Lösung dafür gefunden und bin für jeden Tipp dankbar!

    LG

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #3 am: 18. Oktober 2021, 12:51:37
    Also im Admin ist das nicht konfigurierbar, so was muss man programmieren. Wenn man das Suchfeld für die Bestellnummern in der Datei \admin\includes\admin_search_bar.php, siehe Code1, dazu nutzen will muss man die Prüfung der $_GET['oID'] auf Integer (Ganzzahl) ausser Kraft setzen, denn das verträgt sich nicht mit  einer Amazon Bestellnummer "Beispiel: 304-1234567-1234567" und dann muss man die Datenbankabfrage in der Datei \admin\orders.php erweitern, siehe Code2.

    Code 1

    Code: PHP  [Auswählen]
        <div class="col25" style="width:10%;">
          <?php echo xtc_draw_form('search_order', FILENAME_ORDERS, '', 'get'); ?>
            <input name="oID" type="text" value="<?php echo $search_ord;?>" size="7" placeholder="<?php echo ASB_QUICK_SEARCH_ORDER_ID; ?>" />
            <input type="hidden" name="action" value="search" />
          </form>
        </div>

    Code 2

    Code: PHP  [Auswählen]
      $orders_query_raw = "SELECT ".$order_select_fields.",
                                  s.orders_status_name
                             FROM "
    .TABLE_ORDERS." o
                        LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                  ON (o.orders_status = s.orders_status_id
                                      AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                            WHERE o.orders_id LIKE '%"
    .$oID."%'
                         ORDER BY o.orders_id DESC"
    ;

    Das alles updatesicher zu gestalten wäre dann noch eine besondere Herausforderung.

    Gruss
    Hanspeter

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #4 am: 19. Oktober 2021, 20:18:40
    Hallo Hanspeter,

    vielen Dank für deine Hilfe, habe das mal so eingebaut, leider ohne Erfolg, hätte dazuschreiben müssen das ich
     die Version  v2.0.6.0 rev 13500 am Laufen habe.

    Update sicher muss das nicht sein, würde das sogar nach jedem Update einpflegen, wichtig wäre das es funktioniert :(

    MfG

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #5 am: 20. Oktober 2021, 00:07:02
    Ich finde es sehr Schade, daß einige hier keinen Wert auf Update-Sicherheit legen.
    Die Entwickler haben sich Mühe gegeben viele Hooks in den Code einzubauen. Ebenso haben Ersteller von Modulen und Erweiterungen sich bemüht update-sichere Erweiterungen zu bauen. Update-sichere Erweiterungen erleichtern Shop-Versions-Updates immens.
    Aber wenn's was kosten könnte...

    Gruß,
    noRiddle

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #6 am: 20. Oktober 2021, 14:55:18
    [...]
    vielen Dank für deine Hilfe, habe das mal so eingebaut, leider ohne Erfolg,
    [...]

    HuHuu, da liegt ein Missverständnis vor, mit den Codes die ich gepostet habe wollte ich nur zeigen an welchen Stellen ich eine Codeanpassung für nötig erachte.

    Aber hier nun ein konkreter Vorschlag.

    In der Datei /admin/includes/admin_search_bar.php ca. Zeile 57 folgende Codezeile

    Code: PHP  [Auswählen]
            <input name="oID" type="text" value="<?php echo $search_oid;?>" size="7" placeholder="<?php echo ASB_QUICK_SEARCH_ORDER_ID; ?>" />

    mit dieser ersetzen,

    Code: PHP  [Auswählen]
            <input name="custom_oID" type="text" value="<?php echo $_GET['custom_oID'];?>" size="7" placeholder="<?php echo ASB_QUICK_SEARCH_ORDER_ID; ?>" />

    dann in der Datei /admin/orders.php ab ca. Zeile 112 folgende Code

    Code: PHP  [Auswählen]
    //admin search bar
    if ($action == 'search' && $oID && $customer == '') {
      $orders_query_raw = "SELECT ".$order_select_fields.",
                                  s.orders_status_name
                             FROM "
    .TABLE_ORDERS." o
                        LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                  ON (o.orders_status = s.orders_status_id
                                      AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                            WHERE o.orders_id LIKE '%"
    .$oID."%'
                         ORDER BY o.orders_id DESC"
    ;

    mit diesem ersetzen.

    Code: PHP  [Auswählen]
    //admin search bar
    $custom_oID = isset($_GET['custom_oID']) ? xtc_db_prepare_input($_GET['custom_oID']) : '';
    $pieces = explode("-", $custom_oID);
    if ($action == 'search' && $custom_oID && $customer == '') {
      if ($pieces[1]) {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name,
                                    mo.orders_id,
                                    mo.special
                               FROM magnalister_orders mo, "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE mo.special = '"
    .$custom_oID."' AND o.orders_id = mo.orders_id
                           ORDER BY o.orders_id DESC"
    ;
      } else {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name
                               FROM "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE o.orders_id LIKE '%"
    .$custom_oID."%'
                           ORDER BY o.orders_id DESC"
    ;
      }

    Gruss
    Hanspeter

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #7 am: 20. Oktober 2021, 16:03:37
    Sollte es hier
    Code: PHP  [Auswählen]
    xtc_db_prepare_input($_GET['custom_oID'])

    nicht xtc_db_input() heißen ?
    Ein Versehen ?

    Gruß,
    noRiddle

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #8 am: 20. Oktober 2021, 20:17:04
    Danke für den Hinweis, an der Stelle an welcher die Funktion xtc_db_prepare_input() steht ist es schon richtig aber in der Abfrage fehlt xtc_db_input() bzw, (int). Muss ich korrigieren.

    Gruss
    Hanspeter

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #9 am: 20. Oktober 2021, 20:18:03
    Hallo andrewx,

    anstelle folgenden Codes in meiner Antwort #5

    Code: PHP  [Auswählen]
    //admin search bar
    $custom_oID = isset($_GET['custom_oID']) ? xtc_db_prepare_input($_GET['custom_oID']) : '';
    $pieces = explode("-", $custom_oID);
    if ($action == 'search' && $custom_oID && $customer == '') {
      if ($pieces[1]) {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name,
                                    mo.orders_id,
                                    mo.special
                               FROM magnalister_orders mo, "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE mo.special = '"
    .$custom_oID."' AND o.orders_id = mo.orders_id
                           ORDER BY o.orders_id DESC"
    ;
      } else {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name
                               FROM "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE o.orders_id LIKE '%"
    .$custom_oID."%'
                           ORDER BY o.orders_id DESC"
    ;
      }

    solltest du diesen Code einfügen.

    Code: PHP  [Auswählen]
    //admin search bar
    $custom_oID = isset($_GET['custom_oID']) ? xtc_db_prepare_input($_GET['custom_oID']) : '';
    $pieces = explode("-", $custom_oID);
    if ($action == 'search' && $custom_oID && $customer == '') {
      if ($pieces[1]) {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name,
                                    mo.orders_id,
                                    mo.special
                               FROM magnalister_orders mo, "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE mo.special = '"
    .xtc_db_input($custom_oID)."' AND o.orders_id = mo.orders_id
                           ORDER BY o.orders_id DESC"
    ;
      } else {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name
                               FROM "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE o.orders_id LIKE '%"
    .(int)$custom_oID."%'
                           ORDER BY o.orders_id DESC"
    ;
      }
     

    Gruss
    Hanspeter

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #10 am: 20. Oktober 2021, 20:27:31
    Danke für den Hinweis, an der Stelle an welcher die Funktion xtc_db_prepare_input() steht ist es schon richtig aber in der Abfrage fehlt xtc_db_input() bzw, (int). Muss ich korrigieren.

    Gruss
    Hanspeter

    Wobei ich das stripslashes() - nichts anderes ist xtc_db_prepare_input() ja - nicht verstehe.
    Das wird oft in der modified-Software gemacht an Stellen wo ich's nicht verstehe.
    Im GET-Parameter jedenfalls gibt's doch nichts zu stripslash-en, oder fehlt mir da da Hintergrundwissen ?

    Gruß,
    noRiddle

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #11 am: 20. Oktober 2021, 21:13:59
    Ja was soll ich dir dazu hier schreiben?
    Vielleicht das: Im Shop wird xtc_db_prepare_input() bei GET-Parametern oft angewendet, zum Beispiel in der Datei /admin/banner_manager.php, siehe folgenden Code, und ausserdem wird in xtc_db_prepare_input() ausser stripslashes() unter anderem auch noch trim() ausgeführt.

    Code: PHP  [Auswählen]
          case 'deleteconfirm':
            $banners_group_id = xtc_db_prepare_input($_GET['bID']);
            $banner_query = xtc_db_query("SELECT banners_image,
                                                 banners_id
                                            FROM "
    . TABLE_BANNERS . "
                                           WHERE banners_group_id = '"
    . (int)$banners_group_id . "'");

    Gruss
    Hanspeter

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #12 am: 21. Oktober 2021, 16:56:12
    Tja, wie ich sagte, im Shop kommt das öfter vor, imho meist unnötigerweise. Ich halte es für unnötig stripslashes() auf GET-Parameter anzuwenden. Ist aber nicht der richtige Thread um das zu diskutieren.
    trim(), okay, geschenkt.

    Gruß,
    noRiddle

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #13 am: 05. November 2021, 10:08:39
    Hallo, ich nochmal, habe nun einiges ausprobiert, aber bekomme das nicht zum Laufen, so schaut nun meine admin_search_bar aus

    /admin/includes/admin_search_bar.php
    Code: PHP  [Auswählen]
    <div class="col25">
          <?php echo xtc_draw_form('search_order', FILENAME_ORDERS, '', 'get'); ?>
            <input name="custom_oID" type="text" value="<?php echo $_GET['custom_oID'];?>" size="19" placeholder="<?php echo ASB_QUICK_SEARCH_ORDER_AMAZON; ?>" />
                   
              </form>
        </div>

    in der /admin/orders.php sieht es so aus
    Code: PHP  [Auswählen]
    //admin search bar
    $custom_oID = isset($_GET['custom_oID']) ? xtc_db_prepare_input($_GET['custom_oID']) : '';
    $pieces = explode("-", $custom_oID);
    if ($action == 'search' && $custom_oID && $customer == '') {
      if ($pieces[1]) {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name,
                                    mo.orders_id,
                                    mo.special
                               FROM magnalister_orders mo, "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE mo.special = '"
    .$custom_oID."' AND o.orders_id = mo.orders_id
                           ORDER BY o.orders_id DESC"
    ;
      } else {
        $orders_query_raw = "SELECT ".$order_select_fields.",
                                    s.orders_status_name
                               FROM "
    .TABLE_ORDERS." o
                          LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                    ON (o.orders_status = s.orders_status_id
                                        AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                              WHERE o.orders_id LIKE '%"
    .$custom_oID."%'
                           ORDER BY o.orders_id DESC"
    ;
      }

    Wenn ich nun eine vorhandene Amazon Order ID suche, wirft er einfach alle Bestellungen aus, bin ratlos und für jede Hilfe dankbar.

    LG

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.225
    • Geschlecht:
    Re: Admin search_bar Suche erweitern
    Antwort #14 am: 30. November 2021, 12:27:51
    Ändere deinen Code einfach so ab:

    Code: PHP  [Auswählen]
    //admin search bar
    if ($action == 'search' && $oID) {
      $orders_query_raw = "SELECT ".$order_select_fields.",
                                  s.orders_status_name
                             FROM "
    .TABLE_ORDERS." o
                        LEFT JOIN `magnalister_orders` mo
                                  ON o.orders_id = mo.orders_id
                        LEFT JOIN "
    .TABLE_ORDERS_STATUS." s
                                  ON (o.orders_status = s.orders_status_id
                                      AND s.language_id = '"
    .(int)$_SESSION['languages_id']."')
                            WHERE (o.orders_id LIKE '%"
    .(int)$_GET['custom_oID']."%' OR mo.special LIKE '%".xtc_db_input($_GET['custom_oID'])."%')
                         ORDER BY o.orders_id DESC"
    ;

      $orders_query = xtc_db_query($orders_query_raw);

    Gruss Gerhard
    2 Antworten
    1195 Aufrufe
    24. Januar 2019, 22:01:41 von dannyjung
    0 Antworten
    2644 Aufrufe
    23. Dezember 2013, 11:19:36 von Buggyboy
    2 Antworten
    942 Aufrufe
    09. Juni 2020, 13:46:45 von sven8965
    6 Antworten
    4720 Aufrufe
    27. September 2011, 13:56:44 von bergerschmuck
               
    anything