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: Sortierung in der /admin/specials.php ?

    0815

    • Viel Schreiber
    • Beiträge: 905
    Sortierung in der /admin/specials.php ?
    am: 04. Januar 2021, 10:48:18
    Hallo,

    hat sich schon jemand daran versucht in der /admin/specials.php eine Sortierung zu implementieren?

    Ich würde gerne wenigstens nach Status sortieren können, bekomme es aber nicht hin es funktionstüchtig umzusetzen.

    Danke

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

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Sortierung in der /admin/specials.php ?
    Antwort #1 am: 04. Januar 2021, 15:41:13
    Ah jetzt, ja!
    Folgende Lösung, mit der auch alle anderen Spalten sortiert werden können, funktioniert für mich:

    In der /admin/specials.php oben einfügen:
    Code: PHP  [Auswählen]
    //BOF sorting
    if ($_GET['sorting']) {
                    switch ($_GET['sorting']){
                        case 'name'       :
                                    $spsort   = ' order by pd.products_name ASC';
                                    break;
                        case 'name-desc'  :
                                    $spsort   = ' order by pd.products_name DESC';
                                    break;
                        case 'quantity'       :
                                    $spsort   = ' order by p.products_quantity ASC';
                                    break;
                        case 'quantity-desc'  :
                                    $spsort   = ' order by p.products_quantity DESC';
                                    break;
                        case 'specials-quantity'       :
                                    $spsort   = ' order by s.specials_quantity ASC';
                                    break;
                        case 'specials-quantity-desc'  :
                                    $spsort   = ' order by s.specials_quantity DESC';
                                    break;
                        case 'expires_date'       :
                                    $spsort   = ' order by s.expires_date ASC';
                                    break;
                        case 'expires_date-desc'  :
                                    $spsort   = ' order by s.expires_date DESC';
                                    break;
                        case 'price'       :
                                    $spsort   = ' order by p.products_price ASC';
                                    break;
                        case 'price-desc'  :
                                    $spsort   = ' order by p.products_price DESC';
                                    break;
                        case 'status'       :
                                    $spsort   = ' order by s.status ASC';
                                    break;
                        case 'status-desc'  :
                                    $spsort   = ' order by s.status DESC';
                                    break;
                    }
        } else {
                $spsort   = ' order by s.status asc';  // default sorting
        }
     //EOF sorting

    Den Block mit den Spaltenüberschriften durch folgenden ersetzen:
    Code: PHP  [Auswählen]
    <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                  <tr class="dataTableHeadingRow">
                    <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS; ?><?php echo xtc_sorting(FILENAME_SPECIALS,'name'); ?></td>
                    <td class="dataTableHeadingContent" align="center">Lager<?php echo xtc_sorting(FILENAME_SPECIALS,'quantity'); ?></td>
                    <td class="dataTableHeadingContent" align="center">Angegotsanzahl<?php echo xtc_sorting(FILENAME_SPECIALS,'specials-quantity'); ?></td>
                    <td class="dataTableHeadingContent" align="right"><?php echo TEXT_INFO_EXPIRES_DATE; ?><?php echo xtc_sorting(FILENAME_SPECIALS,'expires_date'); ?></td>
                    <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRODUCTS_PRICE; ?><?php echo xtc_sorting(FILENAME_SPECIALS,'price'); ?></td>
                    <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?><?php echo xtc_sorting(FILENAME_SPECIALS,'status'); ?></td>
                    <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
                  </tr>

    in der Datenbankabfrage "$specials_query_raw" am Ende der Datei suchen nach:
    Code: PHP  [Auswählen]
    and p.products_id = s.products_id
            order by pd.products_name";
    und ändern in:
    Code: PHP  [Auswählen]
    and p.products_id = s.products_id
            " .$spsort;

    In der Datei /admin/includes/functions/html_output.php nach folgendem Block suchen:
    Code: PHP  [Auswählen]
    case FILENAME_CATEGORIES:

              $nav='<br /><div><a href="'.xtc_href_link(FILENAME_CATEGORIES,'sorting='.$sort.'&'.xtc_get_all_get_params(array('action','sorting'))).'">';
              $nav.=xtc_image(DIR_WS_ICONS . 'sort_down.gif', '', '20' ,'20').'</a>';
              $nav.='<a href="'.xtc_href_link(FILENAME_CATEGORIES,'sorting='.$sort.'-desc&'.xtc_get_all_get_params(array('action','sorting'))).'">';
              $nav.= xtc_image(DIR_WS_ICONS . 'sort_up.gif', '', '20' ,'20').'</a></div>';

              break;
    und danach diesen Block einfügen:
    Code: PHP  [Auswählen]
    case FILENAME_SPECIALS:

              $nav='<br /><div><a href="'.xtc_href_link(FILENAME_SPECIALS,'sorting='.$sort.'&'.xtc_get_all_get_params(array('action','sorting'))).'">';
              $nav.=xtc_image(DIR_WS_ICONS . 'sort_down.gif', '', '20' ,'20').'</a>';
              $nav.='<a href="'.xtc_href_link(FILENAME_SPECIALS,'sorting='.$sort.'-desc&'.xtc_get_all_get_params(array('action','sorting'))).'">';
              $nav.= xtc_image(DIR_WS_ICONS . 'sort_up.gif', '', '20' ,'20').'</a></div>';

              break;

    Nur mit einer Shopversion < 2.0 gestestet.

    awids

    • Experte
    • Beiträge: 3.782
    • Geschlecht:
    Re: Sortierung in der /admin/specials.php ?
    Antwort #2 am: 04. Januar 2021, 23:20:37
    Zum Glück - und nicht zuletzt dank meines umgesetzten Vorschlages, Dateinamen ggf. austauschen zu können - geht sowas in Shopversion 2.0.5.x auch komplett updatesicher.  :-D

    Anbei mal eine specials_sorting.php (angepasste specials.php aus Shopversion 2.0.5.1) zzgl. einer neuen Definition für FILENAME_SPECIALS.

    Damit ist es möglich, vollständig updatesicher eine Sortierung der Sonderangebote vorzunehmen, was die Arbeit enorm erleichtern sollte, wenn man sehr viele Angebote zu pflegen hat. Die Idee dazu stammt von 0815, ich habe nur eine saubere Lösung für Shopversion 2.0.5.x daraus erstellt.

    Anleitung :
    Zitat
    • Füge unter "Kunden (Liste) > dein Admin-Konto (linke Spalte) > Adminrechte (Button, rechte Spalte)" das Zugriffsrecht für "specials_sorting" hinzu und aktiviere es, falls nötig.
    • Lade die Dateien aus dem Ordner NEW_FILES anhand ihrer Verzeichnis-Struktur in deinen Shop hoch. Es werden KEINE Dateien überschrieben! Sofern du das Admin-Verzeichnis umbenannt hast, passe vorher den Verzeichnisnamen in diesem Paket an.
    • Öffne im Backend die Seite Katalog > Sonderangebote und sieh dir das Ergebnis an.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: Sortierung in der /admin/specials.php ?
    Antwort #3 am: 04. Januar 2021, 23:41:27
    Nice, war mir noch gar nicht aufgefallen mit den Filenames, Klasse.
    Leider dürfte der OP noch einen 1.06-Shop haben, wie ich aus der Farbe der Sortierpfeile in seinem Screenshot zu schließen geneigt bin.

    Gruß,
    noRiddle

    awids

    • Experte
    • Beiträge: 3.782
    • Geschlecht:
    Re: Sortierung in der /admin/specials.php ?
    Antwort #4 am: 05. Januar 2021, 00:04:33
    Ja, er schrieb ja selbst, dass er es nur mit einer Shopversion kleiner als 2.0 probiert/umgesetzt hat.  :panic:

    Aber bevor jetzt die lieben Leute, die regelmäßig brav ihre Updates machen, dem Beispiel des OP folgen und in ihre Corefiles den o. g. Code reinfrickeln, hab ich lieber eine "saubere Lösung" bereitgestellt.  :-D

    Hier noch ein Screenshot:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Sortierung in der /admin/specials.php ?
    Antwort #5 am: 05. Januar 2021, 09:01:42
    gerne geschehen

    Duncan

    • Fördermitglied
    • Beiträge: 177
    • Geschlecht:
    Re: Sortierung in der /admin/specials.php ?
    Antwort #6 am: 05. Januar 2021, 12:26:52
    @ alex:

    :thx:

    Timm

    • Fördermitglied
    • Beiträge: 6.318
    Re: Sortierung in der /admin/specials.php ?
    Antwort #7 am: 08. Januar 2021, 11:21:10
    Moin

    Ab Shopversion 2.0.6.0 ist @awids Version plus Checkboxen zum markieren mehrerer Sonderangebote Shopstandard.  :-B

    Gruss Timm
    rechtstexte für onlineshop
    5 Antworten
    2580 Aufrufe
    13. März 2022, 23:13:12 von awids
    24 Antworten
    10471 Aufrufe
    12. Februar 2012, 00:33:25 von franky_n
    13 Antworten
    6164 Aufrufe
    02. September 2011, 20:18:15 von itsme
    1 Antworten
    1601 Aufrufe
    11. Februar 2015, 14:06:09 von Bonsai
               
    anything