Version: Magento 1.4.X

In Magento 1.4.1.0, 1.4.1.1 und 1.4.2 erhält man beim Aufruf von der „an einen Freund senden“-Funktion die Fehlermeldung „The messages cannot be sent more than 5 times in an hour“. Da Version 1.4.2 die letzte 1.4 Version von Magento ist und viele Leute diese Version länger benutzen werden veröffentliche ich dieses kleine Bugfix hier im Blog.

In der Datei Mage/Sendfriend/controllers/ProductController.php muss zirka in Zeile 122 die Zeichenfolge:

 if ($model->getMaxSendsToFriend()) {

mit der Zeichenfolge:

if ($model->isExceedLimit()) {

ersetzt werden. Das Sendfriend Formular sollte nun funktionieren wie gewünscht.

Da es sich hierbei um eine Korrektur eines bekannten Fehlers handelt, welcher nach einem Update auch korrigiert ist, empfehle ich die Anpassung der Datei (Mage/Sendfriend/controllers/ProductController.php) direkt und nicht die Erstellung eines Modules.

Keine Kommentare »
 

Quellen von welchen man xt:Commerce herunterladen konnte waren schon immer rar. xt:Commerce ist Open Source und wurde dennoch fast nur an zahlende Kunde verteilt. Eine ärgerliche Geschäftspraktik der Entwickler Firma. Unter dem Namen xt:Commerce Veyton wird der kostenpflichtige Nachfolger vertrieben. Die Entwicklung von xt:Commerce 3 steht still und die wenigen xt:Commerce Download Mirros versiegen. Damit das Shopsystem nicht „vergessen“ wird habe ich eine Download Möglichkeit eingerichtet.

xt:Commerce v3.0.4SP2.1
Release Datum: 20.08.2006
Letzter Bugfix: 16.02.2011

Download xt:Commerce

(Zip Archiv, alle Patches enthalten, neuste Version)

Changelog von 3.0.4 SP2 nach 3.0.4 SP2.1:

BUGFIX: eregi (nullbyte injection) SQL injection
BUGFIX: #none fixed cookie bug in some IE Versions
BUGFIX: #0000201 wrong attribute price when multiple currencies are installed
BUGFIX: #0000209 products_description in listing
BUGFIX: #0000169 added navigation bar to reviews.php
BUGFIX: #0000135 added check for min password length in admin/customers.php
BUGFIX: #0000210 changed navbar for account_history.php
BUGFIX: #0000207 added cursor:pointer to print info and print order link
BUGFIX: #0000192 added firstname/lastname variable for send_order.php
BUGFIX: #none	 removed buy now buttons when customers status is set to view price = no
BUGFIX: #0000206 bug in shopping cart (when removing products), in several php Versions
BUGFIX: #none	 bug in captcha creation, on several servers, captcha in newsletter.php could be passed without an entry
3 Kommentare »
 

Hierbei handelt es sich um ein sehr exotisches Shell Script, das ich verwedet hatte um ein „vergewaltigtes“ Magento Theme zu säubern. Der beauftrage Freie Mitarbeiter hatte in einer Kopie des Magento base Theme gearbeitet. Natürlich hat er alle Dateien kopiert und das base Theme in default verschoben. Nachdem ich herausgefunden hatte um welches Theme es sich handelte wollte ich noch die Dateien entfernen die das Theme vom base Theme erbt. Ich habe dieses Script verwendet, das Dateien in gleichen Verzeichnisstrukturen abgleicht und gegebenfalls (beim Enthalten sein in beiden Strukturen, in selber Position) entfernt.

#! /bin/sh
 
## Input checks
if [ ! -n "$1" ] || [ ! -n "$2" ]; then
	echo "#
# diff_file_struct.sh - Reduce a file struct from a base file struct via MD5 sums (files and empty folders only)
# Usage: diff_file_struct.sh <BASE_STRUCT> <STRUCT_TO_REDUCE>
# "
	exit 1
fi
 
if [ ! -e "$1" ]; then	
	echo "# Parameter 1: Dir doesn't exist"
	exit 1
fi
 
if [ ! -e "$2" ]; then	
	echo "# Parameter 2: Dir doesn't exist"
	exit 1
fi
 
## List files recursiv
BASEFILES=$(find "$1" -type f)
REDUCEFILES=$(find "$2" -type f)
 
## Loop for each file in draft
for BASEFILE in $BASEFILES; do
 
	## Get MD5 hash
	TMP=$(md5sum "$BASEFILE")
	BASE_MD5=${TMP% *}
 
	## Get relative dir
	BASE_PATH_RELATIVE=${BASEFILE:${#1}}
 
	echo $BASE_PATH_RELATIVE
 
	## Loop for each file in new file struct
	for REDUCEFILE in $REDUCEFILES; do
 
			## Get relative dir
			REDUCE_PATH_RELATIVE=${REDUCEFILE:${#2}}			
 
			## Check if relative paths are equal
			if [ $BASE_PATH_RELATIVE == $REDUCE_PATH_RELATIVE ]; then
 
				echo "PATH MATCH"
 
				## Get MD5 hash
				TMP=$(md5sum "$REDUCEFILE")
				REDUCE_MD5=${TMP% *}
 
				## Check if MD5 hashs are equal
				if [ $BASE_MD5 == $REDUCE_MD5 ]; then
 
					echo "MD5 MATCH"
 
					## Remove equal file
					rm -v $REDUCEFILE
				fi			
			fi
	done
	echo "---"
done
 
echo "REMOVE EMTPY DIRS"
find "$2" -type d -empty -delete -print

Die Dateien mit dem Kommando „find“ zu suchen und listen ist ein suboptimales Vorgehen. Strukturiertes vorgehen, in dem Ordner für Ordner abgeglichen wird, ist wesentlich performanter. Bedeutet aber ebenso mehr Arbeitsaufwand, der für ein Script dieser Verwendungsart nicht vorgesehen ist. Ich hoffe zwar nicht jemand steht vor dem selben Problem „ein Magento Vererbungschaos zu säubern“, jedoch denke ich das Script findet sicher die eine oder andere Anwendungsmöglichkeit oder gibt einen Denkanstoß.

Keine Kommentare »
 

Die erste Frage die einem aufkommt ist: „Wozu brauche ich Ruby Gems als Apt Pakete?“. Nach kurzer Zeit fand ich heraus wozu. Die Ruby Pakete enthalten in Debian sind veraltet oder gar nicht erst vorhanden. Bei Ubuntu Hardy ist die Auswahl ebenfalls sehr gering. Auf meiner Debian Lenny Installation war von den Debianern sogar Rubygems in der Funktionalität eingeschränkt. Dies wird einem sogar schriftlich vorgehalten:

gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get.

Das manuelle installieren / kompilieren von Paketen ist ein großer Zeitaufwand. Glücklicherweise fand ich einen Service der Debian Pakete von einem allen relevanten Gem Paketen anbietet. Die Debgem Kurzbeschreibung von der eigenen Webseite:

Apt is the package management system of choice for Debian users. Historically, only a very limited number of Ruby programs and libraries are packaged for Debian and installable through Apt. Instead, most Ruby programs and libraries are installed through RubyGems, a separate package management system created specifically for Ruby.

DebGem provides an Apt repository for Ruby programs and libraries which are currently available as gems. Debian users can now manage all their Ruby software through a single, centralized package manager – Apt – thereby making system administration a joy again!

Ich nutze diesen Service derzeit für Ruby 1.8 auf meinem Debian Lenny System und bin vollsten zufrieden damit. Der Haken an der Sache ist, das Debgem nur während der Beta Phase kostenlos bleiben wird. Es bleibt zu hoffen das die Gems bis dahin besser in Debian / Ruby 1.8 integriert sind.

INFO: Beim compilieren von Ruby 1.9.* in der neusten Version sollte das Problem nicht mehr bestehen.

Keine Kommentare »
 

Im heise.de Forum habe ich einen unglaublich guten Foren Beitrag gefunden. Für mich die beste Web Story des Januar 2011. Der Beitrag wurde als Antwort auf die News Meldung „Eclipse bekommt ein Browser-Interface„. Der Beitrags Ersteller scheint sich über die mangelnde Performance von Eclipse zu ärgern.

Traten in der bisherigen Version teilweise noch Situationen auf, wo
einem Klick relativ zeitnahe eine Aktion folgte, so stellen die
Entwickler klar „Dieses Problem wird mit der nächsten Version nicht
mehr auftreten!“

Nach reiflicher Überlegung erwies sich das Client<->Server Konzept
von Unix als die tauglichste Möglichkeit dies zu bewerkstelligen, da
mit der Ankündigung sich in zukünftigen Linux-Modellen von diesem
Konzept Abstand zu nehmen, somit die benötigte Verzögerung als
bewiesen gilt. Da Unix/Linux allerdings in hochperformanten C-Code
geschrieben wurde, kann der Code nicht einfach so übernommen werden,
da die Gefahr von akzeptabler Geschwindigkeit bestehen könnte.
Sicherheitshalber wechselt daher das Eclipse Projekt von dem
mittlerweile auch viel zu performanten Java auf JavaScript, dass mit
seiner ca. 18-fach langsameren Ausführungsgeschwindigkeit endlich das
gewünschte Look&Feel wieder herzustellen vermag.

Die Entwickler kündigten zudem an, die neue Oberfläche gründlich auf
eventuelle Reaktionszeiten zu testen und im Zweifelsfrei noch unnütze
aber sehr hübsche Animationen hinzuzufügen, um eventuellen
Stresssituationen am Arbeitsplatz entgegen zu wirken. Da die
Entwickler den aktuellen Code zur IDE in selbiger schreiben um von
eventuellen Abstürzen mit darauf folgendem Totalverlust des Codes zu
profitieren, wird ein Release etwa Mitte 2034 erwartet.

Geschrieben von Two am 12.01.2011 im Thread „Eclipse Entwickler finden Möglichkeit die IDE noch langsamer zu machen„. Vielen Dank für deinen Post Two.

Keine Kommentare »
 

Onlive Cloud Gaming Kritik

3D Spiele auf dem alters schwachen Laptop oder mit Hilfe einer kleines Endgerätes, für 99 Euro, im Zusammenhang mit einem Fernsehgerät spielen. Die Kosten für ein „Full PlayPass“ belaufen sich dabei je nach Spiel und Spielzeit auf Kosten zwischen vier und 40 Euro.

Der Onlive Kunde muss sich keine teure Hardware anschaffen und die Spiele Hersteller haben durch den Onlive Dienst keine Probleme mit Raubkopierern mehr. Onlive hört sich für alle Beteiligten nach einem guten Angebot an.

Wo ist der Haken?

Das kleinste Übel – Internetzwang
An Orten ohne Internetanbindung kann nicht gespielt werden. Es würden Kosten entstehen, wenn man nicht sowieso schon online wäre.

Der Ping
Der Ping ist laut Foren Aussagen noch zu hoch (kurz: hoher Ping = schlecht). Dadurch laufen die Spiele nicht flüssig. Die Internet Anschlüsse der heutigen Zeit liefern dem Anschein nach nich genug Leistung. Nicht jeder Spieler wohnt neben einem Rechenzentrum. ):

Modding
Das Spiel wird in der Onlive Cloud gespielt. Der Client sendet nur die Kommados zur Steuerung des Spiels und empfängt Bildaten. Das Verändern oder Erweitern von Spielinhalten wäre nicht mehr möglich, so wie es heute schon bei allen Videospielkonsolen der Fall ist.

Privatsphäre
Das Spiel-Verhalten der Spieler kann und wird protokolliert werden.

Onlive „the evil company“ Monopol – Patent beantragt
Onlive versucht sich laut golem.de durch das Beantragen von Patenten eine Monopolstellung im Bereich Cloud Gaming zu verschaffen. Sollte sich Onlive durchsetzen wird die Firma bestimmen was, wer, womit gespielt / entwickelt wird.

Mögliche Spätfolge: keine Games außerhalb der Cloud
Das Aussterben der Spiele auf dem Rechner Zuhause wird eine Folge des Cloud Gamings sein, wenn es sich durchsetzt.

Persönlich würde ich von solch einem Dienst die Finger lassen. Ob sich Cloud Gaming durchsetzt entscheidet die Spielergemeinde.

Keine Kommentare »