ShopNix

Tagebuch eines Shops auf Basis von osCommerce

Übersetzungshilfe

leave a comment »


Die Übersetzung der sprachabhängigen Komponenten einer Software ist oft ein mühsames Unterfangen, zumal die Übersetzer ungern in der Syntax sprachabhängiger Dateien arbeiten. Zudem haben sie erst nach etlichen Arbeitsschritten die Möglichkeit, das Ergebnis ihrer Bemühungen im Zusammenhang zu sehen.

Deshalb habe ich ein kleines Programm geschrieben, das sowohl mit der in PHP weit verbreiteten Variante mit Konstanten zurecht kommt, als auch die Syntax der Smarty-Template-Engine versteht.

Für die Einrichtung sind Vorkenntnisse in PHP und MySQL erforderlich. Das Ergebnis ist eine Weboberfläche, auf der auch ein Übersetzer ohne derlei Kenntnisse arbeiten kann. Lediglich für die Übernahme eventuell enthaltener Formatierungen und Variablen muss er möglicherweise eine kurze Einweisung bekommen.

Die zu übersetzenden Termini werden im Zusammenhang mit den Kontext des Programms in Blöcken angeboten, vor dem Block steht die Konstante bzw. Variable, oben der Text in der Ausgangssprache darunter jeweils ein Eingabefeld für die Zielsprache.

Der Übersetzer kann jederzeit auf Mausklick die Zieldateien erzeugen und im parallel installierten Zielprogramm sein Ergebnis im Zusammenhang überprüfen.

Die Software steht unter dem Titel sx-translator auf SourceForge zum Download bereit. Da es im Zusammenhang mit dem modified Shop entstanden ist, sind die mitgelieferten Tabellen bereits für diesen Shop vorbelegt. Wer das System für andere Zwecke einsetzen möchte, muss dessen Dateien anlegen und die Sections der Smarty language.conf einpflegen. Das geht bisher noch nicht über die Weboberfläche. Die Dateien der Quellsprache werden dann in die DB eingelesen, anschließend sollte diese Funktion in der  Konfiguration gesperrt werden.

Auf Anfrage kann auch eine Testumgebung gestellt werden. Bitte verwenden Sie dazu die Kommentarfunktion.

Advertisements

Written by spessart

16. Mai 2013 at 20:05

Das Azure-Theme im Oxid-Shop

leave a comment »


Leider hat Oxid die Pflege des Basic-Themes ab Version 4.7 eingestellt, und nun fange ich noch einmal von vorne an. Zwar gibt es eine Dokumentation für diejenigen, die Basic weiterhin verwenden wollen. Da ich aber einen völlig neuen Shop zu gestalten habe, nehme ich lieber den Mehraufwand in Kauf, als auf einem toten Pferd in’s Rennen zu gehen.

Hilfestellung dazu bietet Oxid in seiner Dokumentation und in dem Tutorial „Understanding Theme Management“ an. Dabei ist zu beachten, dass sich mit dem Versionswechsel auch die Verzeichnisstruktur geändert hat. So findet sich beispielsweise die in der o.a. Doku erwähnte Datei theme.php nicht mehr unter /out/azure/, sondern unter /application/views/azure. Das zugehörige Vorschaubildchen finde ich noch am alten Ort.

Template-Struktur

Zur Template-Struktur des Shops findet sich im Netz eine Hilfe. Hier hat sich jemand die Mühe gemacht, die Namen der Smarty-Elemente auszugeben.

CSS

Die CSS-Dateien befinden sich noch unter /out/THEME/src/css.

Die ersten Änderungen betreffen meist die Farbgestaltung. Dazu suche ich mir zunächst die Farben heraus, die das Original-Theme verwendet:

  • Orange (z.B. in der waagerechten Navigation als Hintergrund) : #ec6105
  • Hellblau bis Türkis (als Rahmen um die Boxen) : #389cb4
  • Grau (z.B. Hintergrund der Infobox unten) : #d1d8db

Neben den reinen Farbangaben sind natürlich auch graphische Elemente vorhanden, die ihre eigenen Farben oder Farbverläufe mitbringen. Da haben wir z.B. grad_grey-light.svg, das mit dem o.a. Grau korrespondiert. Deshalb durchsuche ich meine css-Datei zunächst nach den Farbwerten und notiere die korrespondierenden Grafiken.

Das Ergebnis gibt’s zumindest vorläufig nur lokal.

 

Written by spessart

8. April 2013 at 20:13

Veröffentlicht in Oxid

Tagged with , , ,

Elemente des Oxid Shops

leave a comment »


Im Oxid eShop gibt es eine Reihe von Elementen, die im Backend angelegt, bearbeitet und gelöscht werden können, einige müssen nach alter Väter Sitte im Template oder der Konfigurationsdatei config.inc.php bearbeitet werden.

Backend

Banner

Die Banner sind unter Kundeninformation/Aktionen zu finden. Ein wenig ungeschickt ist die Bildgröße zu handhaben. Auch bei Bildern, die über das Backend hochgeladen werden, behält das Frontend das Höhen/Seitenverhältnis der Bilder nicht bei, sondern quetscht sie in den Ausschnitt, den das Template vorgibt.

Immerhin kann ich den ganzen Block über das Backend ausblenden, Achtung: der Schalter aktiv reicht nicht, er wird von einem gültigen Datumsbereich übersteuert.

Konfigurationsdatei

Trusted Shops

Hierzu gibt es in der Konfigurationsdatei eine ganze Reihe von Parametern. Möglicherweise will Oxid hier eine Zusammenarbeit erzwingen, denn die tiefe Integration ohne die dokumentierte Möglichkeit einer Abschaltung scheint mir übertrieben. Vielleicht habe ich diese Möglichkeit auch nur noch nicht gefunden.

Template

Änderungen im Template werden oft erst wirksam, wenn das /tmp Verzeichnis des Shops geleert wurde. ACHTUNG: Bitte nicht die Datei .htaccess löschen, die wird noch gebraucht!

Trusted Shops

Die Box „Trusted Shops“ mit dem Verweis auf die Zertifizierung kann in der Datei

/application/views/hornung/tpl/widget/sidebar/partners.tpl

bearbeitet / gelöscht / auskommentiert werden. Wer die Box einfach nicht mehr sehen will, nimmt besser den Verweis auf die Box aus sidebars.tpl heraus.

Shoplupe

Die Box „SHOPLUPE“ kann in der Datei

/application/views/hornung/tpl/widget/shoplupe/ratings.tpl

bearbeitet / gelöscht / auskommentiert werden. Wie für Trusted Shops gilt auch hier: Wer die Box einfach nicht mehr sehen will, nimmt besser den Verweis auf die Box aus sidebars.tpl heraus.

Begrüßungstext

Im Azure-Template ist ein Begrüßungstext nicht vorgesehen. Eingebunden werden kann er in

/application/views/azure/tpl/page/shop/start.tpl

Nach einem Tipp im Oxid-Forum, Pfad angepasst auf die aktuelle Version 4.7

Written by spessart

7. April 2013 at 17:47

Veröffentlicht in Allgemein

Error logs oder wie protokolliere ich Fehler mit PHP

leave a comment »


Zu diesem Thema gibt es einen recht ausführlichen Artikel von Jan Winkler, vielen Dank dafür.

Er behandelt unter anderem auch die Parameter in php.ini, meine Notizen hier beschränken sich auf die alltäglichen kleinen Notwendigkeiten. Oft will ich nur den Inhalt einer Variablen protokollieren, und zwar in dem Verzeichnis für temporäre PHP-Dateien. Außerdem will ich ausgeben, wann und wo ich es tue. Das geht so:

error_log(date('Y-m-d H:m:s'). __FILE__. ', '.__LINE__.": \n sHost:\t". $sHost."\n", 3,sys_get_temp_dir()."/datei.log");

und das Ergebnis sieht so aus:

2013-04-03 10:04:08/var/www/virtual/beispiel.de/htdocs/shop/core/oxsysrequirements.php, 396:
sHost: beispiel.de

Written by spessart

3. April 2013 at 11:36

Veröffentlicht in Oxid, PHP

Provider-Netz per iptables blockieren

leave a comment »


Ich weiß nicht, ob es Script-Kiddies oder gefährlichere Schlingel sind, die sich in meinen Logs verewigen, es ist mir auch egal. Es muß jedenfalls ein Ende haben, und deshalb sperre ich jetzt die wesentlichen Übeltäter großflächig aus.

Über die CIDR-Notation bietet iptables die Möglichkeit, komplette Netzwerke auszusperren. Die Logs nennen mir eine Adresse, ich suche mir per whois das Netzwerk und schon ist wieder ein Loch gestopft.

Das geht recht fix mit der Abfrage von ARIN. Ist zwar amerikanisch, hat aber den Vorteil, dass für Nicht-Amerikaner nur komplette Class A Netze gelistet werden. Wie die nun wieder unterteilt sind, interessiert mich für diesen Zweck erst, wenn ich in Europa ankomme.

iptables -A INPUT -p tcp -s 221.0.0.0/8 --dport 22 -j DROP
iptables -A FORWARD -p tcp -s 221.0.0.0/8 --dport 22 -j DROP

Das obige Beispiel sperrt ein Netz des Asia Pacific Network Information Centre (APNIC) für ssh.

Written by spessart

12. März 2013 at 20:40

Veröffentlicht in Allgemein

Eclipse PHP, seltsamer Fehler beim Debug

leave a comment »


Einen äußerst seltsamen Fehler hatte ich heute beim debuggen eines Scripts mit Eclipse.

Unten rechts blieb die Meldung „launching debug“ bei 57% stehen. Das Ergebnis einer llS-Session war: Ich hatte einen Kommentar mit „/*“ eröffnet, aber nicht abgeschlossen.

Sachen gibts, die gibts gar nicht.

Achso: llS = lausig lange Sucherei.

Written by spessart

1. Dezember 2011 at 16:10

Veröffentlicht in Allgemein, Eclipse

Artikel Import aus xtCommerce und CAO nach OpenERP

with 3 comments


Ein Kunde will von seinem alten Warenwirtschaftssystem CAO auf OpenERP umsteigen. Natürlich will er seine Artikel nicht noch einmal von Hand eintupfen.

Dabei stellt sich das Problem, daß er nur die aktiven Artikel aus dem Shop übernehmen will, wesentliche Daten jedoch nur in CAO vorhanden sind.

Deshalb werde ich die Artikel aus dem Shop holen und nach OpenERP importieren. Anschließend schiebe ich einzelne Attribute aus CAO nach.

Die Kunden sollen komplett aus CAO WaWi übernommen werden.

Direkt in die Datenbank von OpenERP zu schreiben ist zwar möglich, aber es bietet sich an, die XML-RPC-Schnittstelle des ERP-Systems zu nutzen. Damit soll sichergestellt werden, daß alle notwendigen Referenzen und Abhängigkeiten erfüllt werden.

Grundlage ist das Beispiel aus der Dokumentation.

Die Methode funktioniert an sich sehr gut. Die Ermittlung der erforderlichen Attribute kann über den Debug-Modus des OpenERP-Clients erfolgen. Dazu wird der Client im Terminal mit dem entsprechenden Parameter gestartet und die Ausgabe auf eine Datei umgeleitet.
./openerp-client.py -l debug_rpc &> ~/debug_rpc.txt

Ein Problem, das ich nicht lösen konnte: Der Primärschlüssel wird ignoriert. Im Allgemeinen ist das nicht kritisch, lediglich für den Kategoriebaum kann ich die Daten nicht übernehmen.

Sollte irgendjemand in der großen weiten Welt eine Lösung haben, möge er die Kommentarfunktion nutzen!

Written by spessart

27. August 2011 at 09:09