Cache für Seiteneinausgabe leeren ohne in den Admin Bereich zu müssen

Thema wurde von Richard_24, 9. Mai 2020 erstellt.

  1. Richard_24

    Richard_24 Erfahrener Benutzer

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    117
    Danke erhalten:
    12
    Danke vergeben:
    34
    Hallo,

    ich habe auf Shopversion 14.0.01 umgestellt und auf Themes.

    Bei Templeates standen meine Javascripte unter ...../Global/

    Bei der Änderung des Javascripts wurde dies durch F5 direkt am Frontend angezeigt.

    Seit Themes stehen meine Javacripte nun unter ....javascripts/custom/

    Diese werden leider bei Änderungen erst nach dem leeren des Seiteneinausgabe Cache wirksam.

    Sehr Mühsam...

    Gibts eine PHP die ich direkt aufrufen kann um den Seiteneinausgabe Cache zu löschen?

    Viele Grüße - Richard
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ich habe die Seite im 2. Tab offen und klicke dann nur auf den Button.:)
    Statt einer php-Datei könnte man aber die URL direkt aufrufen:
    http s://DeineDomain.de/admin/clear_cache.php?manual_output=Ausführen
     
  3. Richard_24

    Richard_24 Erfahrener Benutzer

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    117
    Danke erhalten:
    12
    Danke vergeben:
    34
    Hallo Barbara,

    ich habe das Problem nicht ganz vollständig erklärt.

    Das eigentliche Problem ist, dass ich beim ändern / testen des Scripts nicht angemeldet sein darf.

    Ich verwende Attribute und wenn man da als Admin eingeloggt ist, erscheinen die Attribute nicht...

    Also muss ich ausgeloggt bleiben.

    Daher geht auch der direkte Link nicht wirklich, aber schon eine eine Verbesserung.

    Bisheriger Weg:


    Nicht angemeldet:

    Script testen / ändern

    Anmelden

    Cache löschen

    Shop aufrufen

    Abmelden

    Zum Produkt wechseln

    Script testen.


    Ziel:

    Abgemeldet bleiben

    Script testen / ändern

    PHP zum Cache leeren direkt aufrufen

    Script testen / ändern

    PHP zum Cache leeren direkt aufrufen

    Script testen / ändern

    PHP zum Cache leeren direkt aufrufen

    Script testen / ändern

    PHP zum Cache leeren direkt aufrufen

    Viele Grüße - Richard
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Das geht auch etwas einfacher :)
    Im normalen Browserfenster als Admin anmelden und zusätzlich ein Fenster im Inkognito-Modus öffnen - als Gast.
    Damit spart man die ganze an- und abmelderei.

    Aber sind es Attribute oder Staffelpreise?
    Attribute sollte man auch als Admin sehen, für Staffelpreise braucht man ein Overload.

    Avenger hatte da mal etwas gepostet, das bei mir immer noch läuft....
     
  5. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ich habe mal meine Datei gesucht.
    Ist nicht perfekt, weil da bestimmt zu viel drinnen steht :)

    Verzeichnis:
    GXModules/Forum/Staffelpreise/Shop/Overloads/product/

    darin die Datei
    staffel_product.inc.php

    mit diesem Inhalt:
    PHP:
    <?php

    class staffel_product extends staffel_product_parent

    {
    function 
    getGraduated()
        {
            global 
    $xtPrice;

            
    $staffel_data = array();

            if(
    $xtPrice->xtcCheckSpecial($this->pID) == 0)
            {
                
    $staffel_query xtDBquery("SELECT
                                                             quantity,
                                                             if(personal_offer=0,p.products_price,personal_offer) as personal_offer
                                                             FROM
                                                             " 
    TABLE_PERSONAL_OFFERS_BY . (int)$_SESSION['customers_status']['customers_status_id'] . " po,
                                                             products p
                                                             WHERE p.products_id=po.products_id AND
                                                             p.products_id = '" 
    $this->pID "'
                                                             ORDER BY quantity ASC"
    );
                
    //Avenger start
        
    $customers_status=(int) $_SESSION['customers_status']['customers_status_id'];
        if (
    $customers_status==0)
        {
          
    $customers_status=DEFAULT_CUSTOMERS_STATUS_ID_GUEST;
        }
            
    $staffel_query xtDBquery("SELECT
                                                         quantity,
                                                         personal_offer
                                                         FROM
                                                         "
    .TABLE_PERSONAL_OFFERS_BY.$customers_status."
                                                         WHERE
                                                         products_id = '"
    .$this->pID."'
                                                         ORDER BY quantity ASC"
    );
            
    //Avenger ende

                
    $staffel = array();
                while(
    $staffel_values xtc_db_fetch_array($staffel_querytrue))
                {
                    
    $staffel[] = array('stk' => (double)$staffel_values['quantity'], 'price' => (double)$staffel_values['personal_offer']);
                }

                for(
    $i 0$n sizeof($staffel); $i $n$i ++)
                {
                    
    // BOF GM_MOD
                    
    $quantity_output '';

                    
    $quantity = (double)$staffel[$i]['stk'];

                    if(
    $quantity < (double)$this->data['gm_min_order'])
                    {
                        
    $quantity = (double)$this->data['gm_min_order'];
                    }

                    if(isset(
    $staffel[$i 1]['stk']))
                    {
                        if((double)
    $staffel[$i 1]['stk'] - (double)$this->data['gm_graduated_qty'] > $quantity)
                        {
                            
    $quantity_output gm_prepare_number($quantity$xtPrice->currencies[$_SESSION['currency']]['decimal_point']) . '-' gm_prepare_number(($staffel[$i 1]['stk'] - (double)$this->data['gm_graduated_qty']), $xtPrice->currencies[$_SESSION['currency']]['decimal_point']);
                        }
                        elseif((double)
    $staffel[$i 1]['stk'] - (double)$this->data['gm_graduated_qty'] == $quantity)
                        {
                            
    $quantity_output gm_prepare_number($quantity$xtPrice->currencies[$_SESSION['currency']]['decimal_point']);
                        }
                    }
                    else
                    {
                        
    $quantity -= (double)$this->data['gm_graduated_qty'];
                        
    $quantity_output 'ab ' gm_prepare_number($quantity+1$xtPrice->currencies[$_SESSION['currency']]['decimal_point']);
                    }

                    
    $vpe '';

                    if(
    $this->data['products_vpe_status'] == && $this->data['products_vpe_value'] != 0.0 && $staffel[$i]['price'] > 0)
                    {
                        
    $vpe $staffel[$i]['price'] - $staffel[$i]['price'] / 100 $discount;
                        
    $vpe $vpe * ($this->data['products_vpe_value']);
                    }

                    require_once (
    DIR_FS_INC 'xtc_get_vpe_name.inc.php');

                    if(
    $quantity_output != '')
                    {
                        if(
    $vpe)
                        {
                            
    $staffel_data[$i] = array('QUANTITY' => $quantity_output,
                                
    'VPE' => trim($xtPrice->xtcFormat($vpetrue$this->data['products_tax_class_id'], true) . TXT_PER xtc_get_vpe_name($this->data['products_vpe'])),
                                
    'PRICE' => $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 $discounttrue$this->data['products_tax_class_id'], true),
                                
    'UNIT' => $this->data['unit_name']);
                        }
                        else
                        {
                            
    $staffel_data[$i] = array('QUANTITY' => $quantity_output,
                                
    'VPE' => $vpe,
                                
    'PRICE' => $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 $discounttrue$this->data['products_tax_class_id'], true),
                                
    'UNIT' => $this->data['unit_name']);
                        }
                    }
                    
    // EOF GM_MOD
                
    }
            }
            return 
    $staffel_data;
        }
    }
    Damit sieht man als Admin die Staffelpreise der Gäste.

    (vielleicht kann ja jemand schreiben, wie man das kürzt :))
     
  6. BigRib

    BigRib Erfahrener Benutzer

    Registriert seit:
    26. September 2018
    Beiträge:
    248
    Danke erhalten:
    48
    Danke vergeben:
    29
  7. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
  8. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Und weshalb nicht in einem anderen Browser? Tests werden doch ohnehin mit alle aktuellen Browser durchgeführt.
     
  9. Richard_24

    Richard_24 Erfahrener Benutzer

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    117
    Danke erhalten:
    12
    Danke vergeben:
    34
    @BigRib,

    Leider wird bei mir die Fehlermeldung 405 "The requested resource is not supported by the API v2." ausgegeben.

    Wenn ich www.schilderhimmel.de/api.php/v2 aufrufe wird mir diese Übersicht angezeigt:

    [​IMG]
    Die URL für den Cache-Request ist dort hinterlegt. Wenn ich diese jedoch aufrufe wird folgendes ausgegeben:
    [​IMG]
    Der Request wird also gefunden, wird jedoch nicht unterstützt.
    (Falls er nicht gefunden werden würde, würde die Fehlermeldung 404 abstatt 405 ausgegeben werden.)

    Die URL https://www.schilderhimmel.de/api.php/v2/orders wird z.B. ganz normal verarbeitet. Diesen Request habe ich auch schon für eine API-Anwendung ohne Probleme verwendet.

    In der obigen Auflistung sind also neben Requests, die supportet werden auch Requests, die nicht unterstützt sind.

    Was muss ich tun, damit alle aufgelisteten Requests unterstützt werden (oder zumindest der Cache-Request)?

    Mit freundlichen Grüßen

    Robin Schwab
     
  10. Richard_24

    Richard_24 Erfahrener Benutzer

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    117
    Danke erhalten:
    12
    Danke vergeben:
    34
    Hallo Barbara,

    ja, es geht um die Staffelpreise :)

    Hab mal die Server Daten gesichert und lokal nach staffel_product.inc.php gesucht.

    Scheinbar gibt es in der Version 14.0.0.1 -> Themes diese Datei nicht mehr oder ich finde sie einfach nicht.

    Dieses Overload wäre natürlich klasse, wenn ich das hätte. Dann könnte ich endlich auch als Admin die Staffelpreise sehen.

    Viele Grüße - Richard
     
  11. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Die Datei muss angelegt werden, die gibt es im Standard nicht.
    Damit wird die product.inc.php überladen.
     
  12. Richard_24

    Richard_24 Erfahrener Benutzer

    Registriert seit:
    27. Dezember 2018
    Beiträge:
    117
    Danke erhalten:
    12
    Danke vergeben:
    34
    Daaanke Barbara,

    geht :)

    Jetzt hab ich nur noch halb so viel Klickerei mit der Änderung der JS Dateien und auch ein wenig besser das Konzept der Overloads verstanden :)

    Viele Grüße - Richard