ShopNix

Tagebuch eines Shops auf Basis von osCommerce

Archive for the ‘Allgemein’ Category

Ü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.

Written by spessart

16. Mai 2013 at 20:05

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

Eclipse auf Debian (squeeze)

leave a comment »


Die intergrierte Entwicklungsumgebung (IDE) Eclipse lässt zwar kaum einen Wunsch offen, Installation und Einrichtung sind allerdings nicht ganz profan.

Debians reguläre JRE (Java Runtime Environment) kommt schon mal nicht damit zurecht. Es ist also notwendig, die JRE von Sun zu installieren. Der einfachste Weg führt über Debians Paketmanagement, wobei zunächst die non-free-Pakete in /etc/apt/sources.list zu aktivieren sind.

Beispiel:
deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

Anschließend ist mit aptitude install sun-java6-jre das Paket schnell installiert.

Written by spessart

27. August 2011 at 08:52

Veröffentlicht in Allgemein

OpenERP auf Debian

with 3 comments


Den Server als Debianpaket herunterladen und mit dpkg -i <Datei> installieren. Das Paket zieht benötigte Pakete leider nicht nach, gibt aber immerhin Meldungen zu nicht erfüllten Abhängigkeiten aus.

Im Folgenden habe ich die Pakete gelistet, die ich nachinstallieren mußte:

postgresql postgresql-client python-dateutil python-libxslt1 python-lxml python-psycopg2 python-pydot python-pychart python-reportlab python-tz python-pyparsing python-yaml python-mako

Wegen Laufzeitfehlern in Abhängigkeit von den installierten Modulen innerhalb des OpenERP-Servers installierte ich nach:

python-egenix-mxdatetime python-vobject

Das Debian-Paket installiert den Server nach /usr/share/pyshared/openerp-server. Locate liefert mir nach der Installation weitere Verzeichnisse mit dem Begriff openerp:
/var/lib/openerp-server
/var/log/openerp-server.log
/var/run/openerp-server.pid
/usr/share/python-support/openerp-server.public
/usr/lib/pymodules/python2.6/openerp-server/

und natürlich die StartUp-Scripts sowie die Konfigurationsdatei:
/etc/init.d/openerp-server
/etc/openerp-server.conf
/etc/rc0.d/K01openerp-server
/etc/rc1.d/K01openerp-server
/etc/rc2.d/S02openerp-server
/etc/rc3.d/S02openerp-server
/etc/rc4.d/S02openerp-server
/etc/rc5.d/S02openerp-server
/etc/rc6.d/K01openerp-server

Für den Client brauchen wir:

aptitude install python-gtk2 python-glade2 python-matplotlib python-egenix-mxdatetime python-lxml python-tz python-hippocanvas python-pydot

Written by spessart

22. August 2011 at 20:29

Veröffentlicht in Allgemein, Installation, OpenERP

Konsistenzprüfungen per SQL

leave a comment »


Beispiel: Kategorien zu Kategorie-Bezeichnung:

select categories_id from categories_description where not exists (select * from categories where categories_description.categories_id = categories.categories_id );

bzw. umgekehrt:

select categories_id from categories where not exists (select * from categories_description where categories_description.categories_id = categories.categories_id );

Angleichen durch Einfügen leerer Datensätze in die Bezeichungen, wobei 2 für die deutsche Sprache steht:

insert ignore into categories_description (categories_id, language_id) select categories_id, 2 as language_id from categories;

Suche Artikel, die keiner Kategorie zugeordnet sind:

select products_id, products_model from products where not exists (select * from products_to_categories where products.products_id = products_to_categories.products_id);

Written by spessart

25. Juli 2011 at 22:24

Veröffentlicht in Allgemein, SQL

xtcModified, css für Suchmaschinen optimieren

leave a comment »


Warum sollte man ein Stylesheet für die Suchmaschine optimieren?

Ganz einfach: Weiße Schrift auf weißen Grund war ein beliebter Trick, um Links für Suchmaschinen zu hinterlegen ohne sie sichbar werden zu lassen. Aber auch die Betreiber von Suchmaschinen sind nicht doof und bewerten derartige Tricks negativ.

Nun sind derartige Tricks im Standard-Template von xtcModified sicherlich nicht beabsichtigt, was uns allerdings nicht vor einer Abwertung schützt. Der Validator von Jigsaw bringt solche (und andere) Macken an den Tag:

http://jigsaw.w3.org/css-validator/

URI : http://example.com/templates/xtm5/css/thickbox.css

43 Die gleichen Farben für den Vordergrund und den Hintergrund in den zwei Kontexten .TB_overlayBG und #TB_window a:hover

Written by spessart

28. Mai 2011 at 20:50

Veröffentlicht in Allgemein, xtcModified

Template für Cross-Sell nach Gruppen

leave a comment »


Ziel der Aktion ist es, Cross-Sell-Artikel zu gruppieren und auf der Produktseite (products_info.php) in Tabs (in Karteireitern) geordnet darzustellen.

Die Gruppierung ist in der Datenbank bereits vorgesehen und die Verwaltung im Backend (Konfiguration -> Cross-Marketing Gruppen) bereits im Standard implementiert. Auf dieser Seite ist also keine Änderung notwendig. Für den Shop existiert bereits ein Template (product_info_tabs_v1.html), das als Ausgangsbasis tauglich scheint und die Anforderungen an das gewünschte Layout erfüllt.

XTC-Modified verwendet wie sein Ursprung XT-Commerce die Smarty-Template-Engine. Daher müssen Änderungen in verschiedenen Bereichen vorgenommen werden.

Zunächst kopierte ich das vorhandene Template product_info_tabs_v1.html nach product_info_tabs_v2.html, kam aber allein über das Template nicht zum gewünschten Ergebnis. Daher ändere ich noch das Modul cross_sell.php im Quellcode. Reverse-Cross-Selling ist noch nicht implementiert.

Download

Noch ein Bildchen vom Ergebnis:

Cross Marketing Gruppen

Screen Shot

Written by spessart

28. Mai 2011 at 14:06

Veröffentlicht in Allgemein, xtcModified