Archiv für den Monat: Oktober 2014

Zuletzt geänderte Dateien finden

Wir werden in Zukunft auch Kurzanfragen zu Server „Problemen“ hier veröffentlichen. Vielleicht helfen diese kurzen Tipps dem ein oder anderen weiter. Diese Tipps werden unter der Kategorie knowledge base (KB) veröffentlicht.

Frage:

Wie finde ich auf meinem dedizierten Server die zuletzt geänderten php Dateien? Am besten mit einer Option wo ich die Tage vorgeben kann?

Für diese Aufgabe kann man das kleine Tool find benutzen. In obiger Anfrage handelte es sich um Dateien mit der Endung .php im Verzeichnis /var/www/ inklusive der Unterverzeichnisse. Für eine schönere Ausgabe in das Verzeichnis wechseln

cd /var/www

und dort die suche mittels find starten

find . -name '*.php' -type f -mtime -1

Was bedeutet das alles

  • find ⇒ Das Programm an sich
  • . ⇒ Verzeichnis Angabe. Der Punkt bedeutet ab hier/aktuelles Verzeichnis
  • -name ‚*.php‘ ⇒ Der Dateiname ist *.php (* ist Platzhalter für alle Zeichenfolgen)
  • -type f ⇒ es handelt sich um eine Datei
  • -mtime -1 ⇒ innerhalb des letzten Tages (24 Stunden)

Noch eine kurze Erklärung zu mtime.

  • -1 ⇒ innerhalb des letzten Tages
  • +1 ⇒ älter als 1 Tag
  • -8 ⇒ innerhalb der letzten 8 Tage
  • 5 ⇒ 5 + 1 Tag

Für alles weitere, man find :)

modified ecommerce breadcrumb nur auf bestimmten Seiten

Möchte man die breadcrumb (Brotkrümel Navi) nur auf bestimmten Seiten anzeigen, reicht eine kurze if Abfrage. In unserem Beispiel möchten wir die breadcrumb überall außer auf der Startseite und im Checkout (Bestellprozess) anzeigen. Der Standard Eintrag in der index.html ist folgender

<ol class="breadcrumb well">{$navtrail}</ol>

Diese mit folgenden if Abfragen umschließen

      {if $smarty.get.cPath!=null}
				{if !strstr($smarty.server.PHP_SELF, 'checkout')}
					<ol class="breadcrumb well">{$navtrail}</ol>
				{/if}
      {/if}

Diese Abfrage macht nichts anderes als

Bin ich nicht auf der Startseite?
  Und bin ich nicht im Checkout?
    Dann zeige die Navigation (breadcrumb)
  ende checkout Frage
ende Startseite Frage

Dieses Beispiel lässt sich ebenso auf Boxen, Spalten und andere Template Elemente anwenden. Getestet mit modified eCommerce ab 1.06.

modified ecommerce Versand Zone Weltweit

Eine ganz prekäre Angelegenheit ist in meinen Augen der Pauschalversand Weltweit. Aber wenn es gewünscht ist, dann soll es so sein. Es sollte sich dennoch jeder Betreiber eines Online Shops über Inselzuschläge, Zoll usw. im klaren sein.

Ausgangslage war der Versand in zwei Zonen. Zum einen Deutschland und zum anderen Weltweit. modified ecommerce bietet dafür das Modul Versand nach Zonen welches Standard inbegriffen ist. Das Problem, in das Feld der Zonenangabe passen maximal 255 Zeichen. Zählt man alle Länder nach ISO-3166-1 auf, reichen diese 255 Zeichen bei weitem nicht aus. Das einfachste ist an dieser Stelle, die zones.php um den Eintrag Weltweit zu erweitern.

Öffnen der Datei includes/modules/shipping/zones.php und nach folgendem Eintrag suchen (ca. Zeile 143)

for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_ZONES_COUNTRIES_' . $i);
        $country_zones = explode(",", $countries_table); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
      }

Diesen Eintrag um den Wert aller ISO Codes erweitern

      for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_ZONES_COUNTRIES_' . $i);
        $country_zones = explode(",", $countries_table); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
        // BOF-20141008-CSNAO-WORLD
         if ($countries_table == 'WORLD') {
         $dest_zone = $i;
         break;
         }
        // EOF-20141008-CSNAO-WORLD
      }

Im Backend kann man dann als ISO Code unter Zone 2 WORLD eintragen. Und schon hat man seine Aufteilung in die zwei Zonen Deutschland (DE) und Weltweit (WORLD). Anbei noch ein Snapshop vom Backend mit dem WORLD Eintrag. Die Gewicht/Preis Angaben dienen nur dem Beispiel.

Shop modified eCommerce Versand nach Zonen Weltweit

Shop modified eCommerce Versand nach Zonen Weltweit