WEB-Shop Update: Unterschied zwischen den Versionen

Aus WEB-Shop Software Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: „ECB-Update == Voraussetzung == * Du hast einen ECB Shop installiert der in einer nicht aktuellen Version läuft. * Du hast Änderungen an Dateien vorgenommen (Sh…“)
 
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
ECB-Update
+
WEB-Shop Update
  
 
== Voraussetzung ==
 
== Voraussetzung ==
* Du hast einen ECB Shop installiert der in einer nicht aktuellen Version läuft.
+
* Du hast einen WEB-Shop installiert der in einer nicht aktuellen Version läuft (bzw. einen ECB-Shop <= V1.0.8) installiert.  
* Du hast Änderungen an Dateien vorgenommen (Shop, Template). Hierzu gehören nicht die [[Modules|ECB-Module]], da diese die Shop-Basis nicht beeinflussen.
+
* Du hast Änderungen an Dateien vorgenommen (Shop, Template). Hierzu gehören nicht die [[Modules|WEB-Shop Module]], da diese die Shop-Basis nicht beeinflussen.
* Für diese Anleitung benötigst Du eine Unix-Umgebung, z.B. einen SSH-Zugang zu deinem Server oder eine Lokale unix installation (cygwin könnte auch gehen)
+
* Für diese Anleitung benötigst Du eine Unix-Umgebung, z.B. einen SSH-Zugang oder Telnet zu deinem Server oder eine Lokale unix installation (cygwin könnte auch gehen)
  
 
== Vorgehen ==
 
== Vorgehen ==
 
* mache eine Sicherung von allen Dateien und der Datenbank
 
* mache eine Sicherung von allen Dateien und der Datenbank
* Besorge Dir die Voll-Version der installierten ECB und alle Updates bis zur aktuellen Version.
+
* Besorge Dir die Voll-Version der installierten Shop-Software und alle Updates bis zur aktuellen Version.
  
 
== Annahme ==
 
== Annahme ==
Dein Shop der Version V1.0.4 befindet sich im Unter-Verzeichnis ''shop'', die aktuelle gibt es eine ECB V1.0.8
+
Dein Shop der Version V1.0.4 (ECB) befindet sich im Unter-Verzeichnis ''shop'', die aktuelle gibt es eine WEB-Shop V1.0.9
  
 
== Vorbereitung ==
 
== Vorbereitung ==
 
* Du befindest dich im Verzeichnis welches das Shop-Verzeichnis enthält.
 
* Du befindest dich im Verzeichnis welches das Shop-Verzeichnis enthält.
* Entpacke die Voll-Version der ECB Software - dieses wird in dem Unterverzeichnis ''ecombase'' ausgepackt.
+
* Entpacke die Voll-Version der WEB-Shop Software - dieses wird in dem Unterverzeichnis ''ecombase'' ausgepackt.
* benenne das Verzeichnis ''ecombase'' um, neuer Name: ''ECB''
+
* benenne das Verzeichnis ''ecombase'' um, neuer Name: ''orig''
* Entpacke alle Shop-Updates von V1.0.5 - V1.0.8 - die Reihenfolge ist wichtig - aufsteigend auspacken. Diese werden erneut in dem Verzeichnis ''ecombase'' ausgepackt.
+
* Entpacke alle Shop-Updates von V1.0.5 - V1.0.9 - die Reihenfolge ist wichtig - aufsteigend auspacken. Diese werden erneut in dem Verzeichnis ''ecombase'' ausgepackt.
* Wenn Dein Shop auf einem der beiden ECB-Templates (yaml / gunnart_v1) basiert so benenne das jeweilige Template Verzeichnis in ECB und ecombase auf deinen Template-Namen um.
+
* Benenne nun dieses Verzeichnis ebenfalls um, neuer Name: ''diff''
 +
* Wenn Dein Shop auf einem der beiden WEB-Shop Templates (yaml / gunnart_v1) basiert, so benenne das jeweilige Template Verzeichnis in den beiden neuen Verzeichnisen entsprechend um.
 +
** Beispiel: Dein Template heißt ''meinTemplate'' und basiert auf dem gunnart_v1
 +
** Verzeichnis ''base/templates/gunnart_v1'' => ''orig/templates/meinTemplate''
 +
** Verzeichnis ''diff/templates/gunnart_v1'' => ''diff/templates/meinTemplate''
  
 
== Update ==
 
== Update ==
Speichere das u.a. Script als "EcbUpdateCheck" in dem aktuellen Verzeichnis, ändere die Dateirechte so, dass Du es ausführen darfst: chmod +x EcbUpdateCheck
+
Speichere das u.a. Script als "WebShopUpdateCheck" in dem aktuellen Verzeichnis, ändere die Dateirechte so, dass Du es ausführen darfst: chmod +x WebShopUpdateCheck
 
Rufe das Script auf - dabei gibst Du folgende Parameter an:
 
Rufe das Script auf - dabei gibst Du folgende Parameter an:
 
# Optionen - siehe unten
 
# Optionen - siehe unten
Zeile 29: Zeile 33:
  
 
'''Aufruf Beispiele'''
 
'''Aufruf Beispiele'''
* ./EcbUpdateCheck MeinTemplate
+
* ./WebShopUpdateCheck MeinTemplate
* ./EcbUpdateCheck --patch MeinTemplate
+
* ./WebShopUpdateCheck --patch MeinTemplate
* ./EcbUpdateCheck --patch --update MeinTemplate
+
* ./WebShopUpdateCheck --patch --update MeinTemplate
  
 
----
 
----
 
Die Ausgabe sieht beim 1. Beispiel wie folgt aus:
 
Die Ausgabe sieht beim 1. Beispiel wie folgt aus:
<pre>diff ECB_V1.0/create_account.php html/create_account.php
+
<pre>diff WEB-Shop/create_account.php html/create_account.php
diff ECB_V1.0/checkout_shipping.php html/checkout_shipping.php
+
diff WEB-Shop/checkout_shipping.php html/checkout_shipping.php
diff ECB_V1.0/advanced_search_result.php html/advanced_search_result.php
+
diff WEB-Shop/advanced_search_result.php html/advanced_search_result.php
diff ECB_V1.0/inc/xtc_href_link_directurl.inc.php html/inc/xtc_href_link_directurl.inc.php
+
diff WEB-Shop/inc/xtc_href_link_directurl.inc.php html/inc/xtc_href_link_directurl.inc.php
diff ECB_V1.0/inc/bluegate_seo.inc.php html/inc/bluegate_seo.inc.php</pre>
+
diff WEB-Shop/inc/bluegate_seo.inc.php html/inc/bluegate_seo.inc.php</pre>
  
Hier sind nun alle Dateien aufgelistet die im Update enthalten sind und gegenüber deinem Shop modifiziert wurden. Der ausgegebene Befehl macht nun einen Abgleich über die Dateien (Copy&Paste + Enter zum ausführen). Diese Änderungen solltest Du nun in der entsprechenden Datei im ''ecombase'' Verzeichnis einarbeiten.
+
Hier sind nun alle Dateien aufgelistet die im Update enthalten sind und gegenüber Deinem Shop modifiziert wurden. Der ausgegebene Befehl macht nun einen Abgleich über die Dateien (Copy&Paste + Enter zum ausführen). Diese Änderungen solltest Du nun in der entsprechenden Datei im ''update'' Verzeichnis einarbeiten.
Nachdem Du alle Dateien überarbeitet hast kannst Du die Dateien aus dem ''ecombase'' Verzeichnis in dein Shop-Verzeichnis kopieren und den Updater ausführen - nun sollte der Shop auf der aktuellen Version laufen.
+
Nachdem Du alle Dateien überarbeitet hast kannst Du die Dateien aus dem ''update'' Verzeichnis in dein Shop-Verzeichnis kopieren und den Updater ausführen - nun sollte der Shop auf der aktuellen Version laufen.
  
 
=== Optionen für das Script ===
 
=== Optionen für das Script ===
 
Wenn Du dich mit 'patch' auskennst So kannst Du das Script mit folgenden Optionen ausführen:
 
Wenn Du dich mit 'patch' auskennst So kannst Du das Script mit folgenden Optionen ausführen:
* --patch - erzeugt ein "| patch -p1 ecomase" hinter der "diff" Ausgabe
+
* --patch - erzeugt ein "| patch -p1 diff" hinter der "diff" Ausgabe
* --update - führt das diff&patch aus - Du sollstest Wissen was Du tust und mit folgenden Ausgaben aus dem Patch klar kommen:
+
* --update - führt das diff&patch aus - Du sollstest Wissen was z.B. die folgenden Ausgaben aus dem Patch bedeuten:
<pre>patching file ecombase/includes/modules/default.php
+
<pre>patching file update/includes/modules/default.php
 
Hunk #1 FAILED at 234.
 
Hunk #1 FAILED at 234.
 
Hunk #2 succeeded at 282 (offset 1 line).
 
Hunk #2 succeeded at 282 (offset 1 line).
 
Hunk #3 succeeded at 330 (offset 1 line).
 
Hunk #3 succeeded at 330 (offset 1 line).
1 out of 3 hunks FAILED -- saving rejects to file ecombase/includes/modules/default.php.rej</pre>
+
1 out of 3 hunks FAILED -- saving rejects to file update/includes/modules/default.php.rej</pre>
  
 
== der Code ==
 
== der Code ==
Zeile 58: Zeile 62:
 
######################################
 
######################################
 
#
 
#
# compare ECB-Update files with
+
# compare WEB-Shop Update files with
 
# original shop file and
 
# original shop file and
 
# live shop file (may be modified)
 
# live shop file (may be modified)
Zeile 65: Zeile 69:
  
 
# Directory containing the orig shop version
 
# Directory containing the orig shop version
ecb=ECB
+
base=base
 +
# Directory containing the update patches
 +
diff=diff
  
 
if [ -z "$1" ]; then
 
if [ -z "$1" ]; then
Zeile 74: Zeile 80:
 
comp=$1
 
comp=$1
  
find ecombase/ -type f | while read f
+
find $diff/ -type f | while read f
 
do
 
do
   # extract ecombase/ from filename
+
   # extract $diff/ from filename
   o=$(echo $f | cut -c 10-)
+
   o=$(echo $f | cut -d '/' -f 2-)
  
   if [ -e $ecb/$o -a -e $comp/$o ]; then
+
   if [ -e $base/$o -a -e $comp/$o ]; then
     old=$(md5sum $ecb/$o | cut -d ' ' -f 1)
+
     old=$(md5sum $base/$o | cut -d ' ' -f 1)
 
     new=$(md5sum $comp/$o | cut -d ' ' -f 1)
 
     new=$(md5sum $comp/$o | cut -d ' ' -f 1)
 
      
 
      
 
     if [ "$old" != "$new" ]; then
 
     if [ "$old" != "$new" ]; then
       cmd="diff $ecb/$o $comp/$o"
+
       cmd="diff $base/$o $comp/$o"
 
       if [ "$patch" ]; then
 
       if [ "$patch" ]; then
 
         cmd=$(echo $cmd | sed 's/^diff/diff -Naur/')
 
         cmd=$(echo $cmd | sed 's/^diff/diff -Naur/')
         cmd="$cmd | patch -p1 ecombase/$o"
+
         cmd="$cmd | patch -p1 $diff/$o"
 
         if [ "$update" ]; then
 
         if [ "$update" ]; then
 
           eval $cmd
 
           eval $cmd

Aktuelle Version vom 13. Mai 2010, 16:08 Uhr

WEB-Shop Update

Voraussetzung

  • Du hast einen WEB-Shop installiert der in einer nicht aktuellen Version läuft (bzw. einen ECB-Shop <= V1.0.8) installiert.
  • Du hast Änderungen an Dateien vorgenommen (Shop, Template). Hierzu gehören nicht die WEB-Shop Module, da diese die Shop-Basis nicht beeinflussen.
  • Für diese Anleitung benötigst Du eine Unix-Umgebung, z.B. einen SSH-Zugang oder Telnet zu deinem Server oder eine Lokale unix installation (cygwin könnte auch gehen)

Vorgehen

  • mache eine Sicherung von allen Dateien und der Datenbank
  • Besorge Dir die Voll-Version der installierten Shop-Software und alle Updates bis zur aktuellen Version.

Annahme

Dein Shop der Version V1.0.4 (ECB) befindet sich im Unter-Verzeichnis shop, die aktuelle gibt es eine WEB-Shop V1.0.9

Vorbereitung

  • Du befindest dich im Verzeichnis welches das Shop-Verzeichnis enthält.
  • Entpacke die Voll-Version der WEB-Shop Software - dieses wird in dem Unterverzeichnis ecombase ausgepackt.
  • benenne das Verzeichnis ecombase um, neuer Name: orig
  • Entpacke alle Shop-Updates von V1.0.5 - V1.0.9 - die Reihenfolge ist wichtig - aufsteigend auspacken. Diese werden erneut in dem Verzeichnis ecombase ausgepackt.
  • Benenne nun dieses Verzeichnis ebenfalls um, neuer Name: diff
  • Wenn Dein Shop auf einem der beiden WEB-Shop Templates (yaml / gunnart_v1) basiert, so benenne das jeweilige Template Verzeichnis in den beiden neuen Verzeichnisen entsprechend um.
    • Beispiel: Dein Template heißt meinTemplate und basiert auf dem gunnart_v1
    • Verzeichnis base/templates/gunnart_v1 => orig/templates/meinTemplate
    • Verzeichnis diff/templates/gunnart_v1 => diff/templates/meinTemplate

Update

Speichere das u.a. Script als "WebShopUpdateCheck" in dem aktuellen Verzeichnis, ändere die Dateirechte so, dass Du es ausführen darfst: chmod +x WebShopUpdateCheck Rufe das Script auf - dabei gibst Du folgende Parameter an:

  1. Optionen - siehe unten
  2. Shopverzeichnis

Aufruf Beispiele

  • ./WebShopUpdateCheck MeinTemplate
  • ./WebShopUpdateCheck --patch MeinTemplate
  • ./WebShopUpdateCheck --patch --update MeinTemplate

Die Ausgabe sieht beim 1. Beispiel wie folgt aus:

diff WEB-Shop/create_account.php html/create_account.php
diff WEB-Shop/checkout_shipping.php html/checkout_shipping.php
diff WEB-Shop/advanced_search_result.php html/advanced_search_result.php
diff WEB-Shop/inc/xtc_href_link_directurl.inc.php html/inc/xtc_href_link_directurl.inc.php
diff WEB-Shop/inc/bluegate_seo.inc.php html/inc/bluegate_seo.inc.php

Hier sind nun alle Dateien aufgelistet die im Update enthalten sind und gegenüber Deinem Shop modifiziert wurden. Der ausgegebene Befehl macht nun einen Abgleich über die Dateien (Copy&Paste + Enter zum ausführen). Diese Änderungen solltest Du nun in der entsprechenden Datei im update Verzeichnis einarbeiten. Nachdem Du alle Dateien überarbeitet hast kannst Du die Dateien aus dem update Verzeichnis in dein Shop-Verzeichnis kopieren und den Updater ausführen - nun sollte der Shop auf der aktuellen Version laufen.

Optionen für das Script

Wenn Du dich mit 'patch' auskennst So kannst Du das Script mit folgenden Optionen ausführen:

  • --patch - erzeugt ein "| patch -p1 diff" hinter der "diff" Ausgabe
  • --update - führt das diff&patch aus - Du sollstest Wissen was z.B. die folgenden Ausgaben aus dem Patch bedeuten:
patching file update/includes/modules/default.php
Hunk #1 FAILED at 234.
Hunk #2 succeeded at 282 (offset 1 line).
Hunk #3 succeeded at 330 (offset 1 line).
1 out of 3 hunks FAILED -- saving rejects to file update/includes/modules/default.php.rej

der Code

#!/bin/bash
######################################
#
# compare WEB-Shop Update files with
# original shop file and
# live shop file (may be modified)
#
#

# Directory containing the orig shop version
base=base
# Directory containing the update patches
diff=diff

if [ -z "$1" ]; then
  echo "usage: $0 <shopdir>"
  exit
fi

comp=$1

find $diff/ -type f | while read f
do
  # extract $diff/ from filename
  o=$(echo $f | cut -d '/' -f 2-)

  if [ -e $base/$o -a -e $comp/$o ]; then
    old=$(md5sum $base/$o | cut -d ' ' -f 1)
    new=$(md5sum $comp/$o | cut -d ' ' -f 1)
    
    if [ "$old" != "$new" ]; then
      cmd="diff $base/$o $comp/$o"
      if [ "$patch" ]; then
        cmd=$(echo $cmd | sed 's/^diff/diff -Naur/')
        cmd="$cmd | patch -p1 $diff/$o"
        if [ "$update" ]; then
          eval $cmd
        else
          echo $cmd
        fi
      else
        echo $cmd
      fi
    fi
  fi
done;