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: Button "Caches Leeren" im Hauptmenu

    sixtyseven

    • Fördermitglied
    • Beiträge: 107
    • Geschlecht:
    Button "Caches Leeren" im Hauptmenu
    am: 16. Dezember 2014, 11:16:41
    Hallo zusammen,

    für einen Kunden würde ich es in seinem Backend gerne etwas einfacher machen. Anstatt ihn über die erweiterte Konfiguartin/Cache-Optionen zu schicken und ihn dort die beiden Schaltflächen "Cache leeren" und "Templatecache leeren" drücken zu lassen, würde ich gerne einen Button in der Hauptnavigation platzieren, ihn beispielsweise "Shopänderungen bestätigen" beschriften und diese beiden Aktionen gemeinsam nach Klick ausführen lassen.

    So könnte ich den Kunden leicht auf diese Schaltfläche "konditionieren". Hat jemand eine Idee, wie ich das am blödesten mache?

    Als ersten Lösungsansatz habe ich mir folgendes überlegt: Ich erstelle eine Datei im admin Ordner, zb. clearcache.php mit folgendem Inhalt:

    Code: PHP  [Auswählen]
      require('includes/application_top.php');
     
      $action = (isset($_GET['action']) ? $_GET['action'] : '');

      if (xtc_not_null($action) && $action == 'clearcache') {

            $path = DIR_FS_CATALOG.'cache/';
            if ($dir = opendir($path)) {
              while (($file = readdir($dir)) !== false) {
                if (is_file($path.$file) && $file != "index.html" && $file != ".htaccess") {
                  unlink($path.$file);
                }
              }
              closedir($dir);
            }
                   
           $messageStack->add_session(DELETE_CACHE_SUCCESSFUL, 'success');

            $path = DIR_FS_CATALOG.'templates_c/';
            if ($dir = opendir($path)) {
              while (($file = readdir($dir)) !== false) {
                if (is_file($path.$file) && $file != "index.html" && $file != ".htaccess") {
                  unlink($path.$file);
                }
              }
              closedir($dir);
            }
                   
            $messageStack->add_session(DELETE_TEMP_CACHE_SUCCESSFUL, 'success');
      }

    xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
    require(DIR_WS_INCLUDES . 'application_bottom.php');

    Diese rufe ich dann mit Parameter ?action=clearcache auf. Kann ich das so machen, oder hat da jemand noch einen verbesserungsvorschlag? Der Shop ist bereits live, ich möchte da ungern etwas zerschießen, daher ist jede Anregung sehr willkommen.

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

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Button "Caches Leeren" im Hauptmenu
    Antwort #1 am: 16. Dezember 2014, 15:17:41
    Du kannst es z.B. so machen:
    In der "application_top.php" vom Admin (ganz unten),

    Code: PHP  [Auswählen]
    function clearCache() {
      global $messageStack;
      if (isset($_GET['action']) && $_GET['action'] == 'clearcache') {
        $paths = array(
          DIR_FS_CATALOG.'cache/',
          DIR_FS_CATALOG.'templates_c/',
        );
        foreach($paths as $path){
          if ($dir = opendir($path)) {
            while (($file = readdir($dir)) !== false) {
              if (is_file($path.$file) && $file != "index.html" && $file != ".htaccess") {
                unlink($path.$file);
              }
            }
            closedir($dir);
          }
        }
        $messageStack->add_session(DELETE_CACHE_SUCCESSFUL, 'success');
        $messageStack->add_session(DELETE_TEMP_CACHE_SUCCESSFUL, 'success');
        xtc_redirect(xtc_href_link(FILENAME_START));
      }
    }
    clearCache();
     

    ... und dann setzt du dir irgendwo z.B. einen Link mit,
    Code: PHP  [Auswählen]
    xtc_href_link(FILENAME_START, 'action=clearcache')
     

    Bzw. kannst du die "function" auch in eine eigene Datei auslagern.

    Aber dieser Satz beunruhigt mich eigentlich mehr. :hust:
    Zitat
    Der Shop ist bereits live, ich möchte da ungern etwas zerschießen
    Wenn du Dienstleister bist, und an Kundenshops arbeitest, sollte "man" eigentlich genau wissen was "ein" Code genau macht!

    Ist nicht böse gemeint, es fiel mir nur auf. ;-)
    Dein Code ist im großen und ganzen schon richtig gewesen (bist auf die letzte Zeile).
    Es wäre nur etwas umständlich über eine eigene Datei (Stichwort "admin_access").

    Gruß

    sixtyseven

    • Fördermitglied
    • Beiträge: 107
    • Geschlecht:
    Re: Button "Caches Leeren" im Hauptmenu
    Antwort #2 am: 16. Dezember 2014, 16:01:03
    ... muss dich nicht beunruhigen, im Großen und Ganzen weiß ich das auch ;-) Manchmal hole ich mir eben gerne etwas Rückendeckung.

    Onlineshops sind normalerweise eher nicht mein Gebiet, da ich aber eine bestehende Installation übernommen, upgedated und ein zeitgemäßeres responsives Template dafür erstellt habe, musste ich mich wohl oder übel in modified einarbeiten. Und das kllappt auch ganz gut, nicht zuletzt dank der freundlichen und hilfsbereiten Community. Mit der ich übrigens auch gerne meine kleinen Ergebnisse teile, wie du siehst  :thx:
    Managed Server
    2 Antworten
    1367 Aufrufe
    02. Dezember 2021, 22:18:21 von teileon
    4 Antworten
    4009 Aufrufe
    14. Juni 2013, 11:47:05 von remedy
    0 Antworten
    2587 Aufrufe
    14. Juli 2010, 14:39:13 von Benny
               
    anything