die musterdenker

Update OXID eShop from PE 3.X to PE 4.1.5 SQL issues

Tags: , , ,

I recently did an update from an old OXID eShop Version PE 3.0.4 to the newest Version of PE 4.1.5.

Although most of the things went well I ran into several problems. Sharing the solutions here might help you and will for sure help me for the next update :)

1. no cumulative updates: As there are no cumulative updates you are forced to do each update step separately from Version 4.0.0.0 to 4.1.5. As there is only an updatescript from 3.0.4. to 4.0.0.0 you are forced to do all 9! updates afterwards. OXID promised that there will be cumulative updates in the future so you’ll be able to say “give me a patch from 4.0.0.0 to 4.1.X and you’ll get a single file. But as we are not living in the future (yet) here is a simple list of 9 SQL scripts you have to execute to come from freshly updated 4.0.0.0 to version 4.1.5. Be aware that there are also 2 PHP files you have to copy to doc root and execute after the according SQL has been executed.
Download all OXID update SQLs at once.

2. OXACTIVE > 1 in oxarticles table: The oxactive field in oxarticle table is responsible to activate/deactivate an article. Allowed values are 0 and 1. But after update it may happen that you have a lot of “2″s as values, leading to “half active” articles. I can tell you, thats quite confusing ;) . Here is the accorind note by OXID and with the following SQL you can fix it:

UPDATE oxarticles SET oxactive = 0 WHERE oxactive > 1

3. Old orders have sum of 0 and all articles of an old order have thr price of 0. Nearly all entries in the order overview in admin might become “0″ after an update. The reasons are new fields in oxorder and oxorderarticles tables. These fields might not be filled. Thats why you’ll need the following SQL:

update oxorderarticles set oxbprice = oxprice where oxbprice = 0 and oxprice <> 0

update oxorderarticles set oxnprice = ((oxprice*100) / (100 + oxvat)) where oxnprice = 0 and oxprice <> 0

UPDATE `oxorder` AS _main SET _main.oxtotalordersum = _main.oxdelcost + _main.oxpaycost + _main.oxwrapcost – _main.oxdiscount + ( SELECT SUM( oxbrutprice ) FROM `oxorderarticles` WHERE oxorderid = _main.oxid ), _main.oxtotalbrutsum = ( SELECT SUM( oxbrutprice ) FROM `oxorderarticles` WHERE oxorderid = _main.oxid ), _main.oxtotalnetsum = ( SELECT SUM( oxnetprice ) FROM `oxorderarticles` WHERE oxorderid = _main.oxid ) WHERE _main.oxtotalnetsum = 0 AND _main.oxtotalbrutsum = 0 AND _main.oxtotalordersum = 0;

An according note by OXID about the third of these SQLs. The first two I build myself.

Of course all the files and SQLs are without ANY warranty and you use them at your own risk! Don’t forget a backup before you do anything!

Please leave feedback :)

OXID eShop – enable lazy loading for categories

Tags: , , ,

The OXID eShop has a really cool lazy loading mechanism implemented in oxBase class. Its mainly used to save memory and avoid overloaded objects. Usually this is not needed for “small” classes like e.g. oxvendor oxcategory. Thats why it is deactivated per default in oxBase class:

$_blUseLazyLoading = false;

But sometimes it makes sense to activate lazy loading. One example are the categories. When a category list (oxCategoryList) is loaded somewhere in the shop only a selection of data fields are loaded into the single oxcategorxy object. This can cause some porblems if u want to access own fields or e.g. the oxthumb of the category within a category list.

In practice I wanted to show the thumb picture in a category list but I could not access the field, cause it was not loaded per default.

One solution would be to extend the field list in the “_getSelectString” method of oxcategory list. But a much simplier and more elegant solution is to activate lazy loading for the categories. Thereby it will be possible to access all fields of oxcategory!

There is s slight disadvantage of this solution: Every (first) access to a not loaded field of each object will fire a SQL query. Accessing a huge amount of not loaded fields on a long category list could thereby kill the performance of your shop …

I attached a small module activating lazy loading. Just put the file to your modules folder and add a line in admin module entries like this:
“oxcategory => mude_lazyloading” for each class you want to activate lazy loading.

Download here

Have fun and pleas give me feedback …

EDIT: It’s always the same, on first version there is always a bug ;) The first version only works without caching. The new Version 0.2  has one more line:

“self::$_blDisableFieldCaching[get_class($this)] = true;” to disable field caching for our class in order to make lazy loading work also with caching.

Webmontag Leipzig 31.08.2009 im Spizz

Tags: , ,

Kommenden Montag ist es wieder soweit im Spizz findet der 3. Webmontag diesen Jahres in Leipzig statt. Wie immer stellt das Spizz seinen Keller zur Verfügung. Also um 19:00 einfach in den Keller vom Spizz spaizieren und einen interessanten Abend, rund ums Web und die Menschen dahinter, erleben.

Da ich leider nicht kommen kann freue ich mich um so mehr das @le_x sich um eine Leinwand und @marcosteinhaeus für das mitbringen des OXID-Beamers kümmern.

Themenvorschläge gibt es wohl noch nicht, weil ich es auch ein bisschen verpasst habe einen Aufruf zu starten. Also hier nochmal die Bitte wenn ihr ein Thema auf Lager habt welches von allgemeinem Interesse ist, so scheut euch nicht den anderen etwas darüber zu erzählen. Egal ob: das eigene Projekt, die eigene Webseite, ein cooles Programm, eure Art und Weise der Projektplanung, Marketingstrategien, etc. etc.

EDIT: Hatte den Link zum, passenden mixxt Netzwerk vergessen http://wbmle.mixxt.de/

2nd Webmontag Leipzig 2009

Tags: , ,

Hier nochmal als kurze Erinnerung:

Am kommenden Montag den 13.07.2009 findet der 2. Webmontag diesen Jahren in Leipzig statt.

Ort: Wie letztes mal werden wir uns wieder im Keller des Spizz treffen.

Startzeit ist wieder 19:00.

Ganz besonders freue ich mich das die Rails User Group Leipzig ihr Treffen verschoben hat und uns die Ehre eines Besuchs samt kleinem Vortrag machen.

Bisherige Themenvorschläge:

  • “dropbox” von Jan Zimmermann
  • Disskusion Barcamp Leipzig 2009 von Thomas Gigold
  • “Online Identität” von Jürgen Christ
  • Einführung in Ruby on Rails von Christoph Petschnig (mit Unterstüzung von Leipzig on Rails)

Weitere Infos und Themenvorschläge sowie das passende Forum findet ihr im Mixxt Netzwerk. Tragt euch dort ein, macht noch Themenvorschläge (auch gerne spontane Vorträge) und kommt zahlreich am Montag.

Update Avatar Modul für OXID eShop

Tags: , , ,

Das Modul “mude_avatar” ist jetzt in Version 0.9 verfügbar.

Das Modul versieht alle Userkommentare zu Lieblingslisten und Produkten mit einem User Avatarbild das der Nutzer in dem “mein Konto” Bereich hochladen kann.

Für die Bugfixes bedanke ich mich bei: Hano und Henry von http://conceptmarketing.de/ :)

Eingesetzt wird das Module bei http://www.hairpoint.de z.B. hier (http://www.hairpoint.de/Haar/Haarpflege/Frisiermittel/Haarpomade/Hairgum-Pomade-Vanille-100g.html)

Download und weiter Infos hier im Blog, bei google code und im OXID eXchange.

Bilder & Nachtrag Webmontag 01/09 Leipzig

Tags: ,

Letzte Montag war es soweit.
17 Webtreibende kamen um 19:00 in den Keller des Spizz.
Nach meinem Vortrag über Mass Customization meldeten sich Jürgen und Nico spontan zu einem Bericht/Vortrag über das Beta Haus in Berlin und über CoWorking im Allgemeinen. Daraus entstand eine angeregte Diskussion, die im Grundtenor die Idee solcher CoWorking Stätten wohl positiv bewertete. Ob solche Räume nun das klassische Büro ersetzen können, oder gar sollten ist noch nicht geklärt. Es gibt also noch viel Redebedarf :)

Dafür habe ich das das folgende Mixxt geöffnet und lade alle Interessierten ein:

http://betahausle.mixxt.de/ NACHTRAG: wir nehmen liber den Wiki vom Webmontag Mixxt, sonst werden das zu viele Gruppen…

Ausserdem lade ich alle zum nächsten Webmontag ein:
http://wbmle.mixxt.de/
Der Nächste Termin soll der 13.07.2009 sein. Also schonmal vormerken, bei Mixxt eintragen und Themenvorschläge für Vorträge/Diskussionsrunden ins Forum stellen!

Auf Flickr gibt es auch ein paar paar Impressionen vom Webmontag:

http://www.flickr.com/photos/36688967@N00/sets/72157619749479557/

Webmontag in Leipzig am 15.06.2009

Tags: ,

Der erste Webmontag im Jahr 2009 in Leipzig rückt näher deshalb hier nochmal ein kurzes Update.
Ich habe gerade noch ein Mixxt Netzwerk eingerichtet und würde alle Interessierten bitten sich ein zu tragen um die Kommunikation zu erleichtern und auf dem Laufenden zu bleiben.
Ausserdem gibt es noch Informationen im alten Blogbeitrag und dem Webmontag Wiki.

Hier nochmal die Fakten in Kurzform:
Ort: Spizz in Leipzig
Termin: 15.06.2009 um 19:00
Wer: Jeder der sich fürs Web Interessiert und sich mit anderen Austauschen will
Was: ein paar kurze Vorträge (15-30 Minuten) danach und dazwischen Disskusion und “Netzwerken”

Wenn ihr ein Vortragthema habt das ihr gerne mit anderen Teilen wollt schreibt mir am besten eine kurze Mail damit wir nicht zu viele oder zu wenige Themen haben und ich in den nächsten Tage vieleicht auch schon eine Übersicht der Vorträge veröffentlichen kann.

Accordion Content script – ddaccordion / collapse all

Tags:

To build a @accordion@ like navigfation menu I used the script ddaccordion by DynamicDrive. Alltogether a nice script, but somehow one feature is missing/not working.

My menu is expanding on mouseover and although there is always only one item expaneded thw whole menu will not collapse when I “mouseleave” the last menu entry. As the menu blends over half of my page it has to collapse. As I couldn’t find a solution anywhere I added 3 lines of code to the ddacordion.js script. Go to line 166 (app.) directly after:

1
2
3
4
5
6
7
8
9
$('.'+config["headerclass"]).bind(config.revealtype, function(){
	if (config.revealtype=="mouseenter"){
		ddaccordion.expandone(config["headerclass"], parseInt($(this).attr("headerindex")))
	}
	else{
		$(this).trigger("evt_accordion")
		return false //cancel default click behavior
	}
})

Add the following lines:

1
2
3
4
if (config.revealtype=="mouseenter"){
$('.'+config["headerclass"]).bind("mouseleave", function(){
	ddaccordion.collapseone(config["headerclass"], parseInt($(this).attr("headerindex")))
})}

That’s all, please report your experience…

Webmontag in Leipzig

Tags: ,

Leipzig ist alles andere als eine Kleinstadt (manche nennen es liebevoll sogar Metropole) und es gibt hier auch eine große Zahl an Webschaffenden, Entwicklern, Social Mediaexperten, Web2.0-lern sowie sonstige Nerds. Was meiner Meinung nach, fehlt, ist ein Webmontag. Bis zum Jahr 2007 gab es den scheinbar mehr oder weniger regelmäßig, aber das war leider vor meiner Zeit als Leipziger. Nachdem Veranstaltungen wie der Open Coffe Club und die eCommerce Lounge schon regelmäßig interessante Leute an einen Tisch bringen fehlt mir eine Veranstaltung bei der neben dem Meet&Greet auch der fachliche Austausch nicht zu kurz kommt. Motiviert wurde ich übrigens durch den Bielefelder Webmontag, bei dem sogar externe Experten für Vorträge eingeladen wurden, so etwas könnte ich mir auch gut vorstellen.

Also werde ich in den nächsten Tagen versuchen eine möglichst lange Liste an Interessierten Leipzigern und die dazu passende Location zu finden. Gerade bei letzterem würde ich mich über jeden Hinweis freuen.

Hier ist der passende Wiki zum Webmontag, da auch eine Liste mit Interessenten.

Nachtrag: Beim Thema Meet&Greet sollte das geplante twitter-Grillen nicht vergessen werden.

UPDATE:
Wir haben nun eine Location: das Spizz und einen Termin: den 15.06.2009 ab 19:00. Nun tragt euch bitte im Wiki ein wenn Ihr kommen möchtet und schreibt mir bitte eine Mail (mathias@musterdenker.de) wenn Ihr einen kurzen (ca. 15 Minuten) Vortrag halten möchtet damit ich ein bisschen planen kann. Ausserdem brauchen wir noch dringend eine Leinwand.
Twitter it(Hashtag ist #wbmle)

Wordpress 2.7 blank page

Tags: , ,

We updated this blog several weeks ago, but suddenly the nothing was working. The whole frontend of this blog was blank, only admin was still working. Playing around with php installation, checking different templates and updating all plugins I tried everything without any success. Finally I deactivated all plugins and ….. the blog waws working again. So I hunted down the “black sheep” and it was:

cforms V 10.5

For now I removed this plugin, maybe I’ll later investigate a bit more what happend …

If you also have a blank screen but removing cforms does not help try these useful links:

http://wordpress.org/support/topic/225819/page/1
http://www.blogsdna.com/1669/fix-wordpress-27-upgrade-white-blank-page-issue-updatephp.htm
http://nslog.com/2008/12/13/wordpress_27_bug_blank_home_page_high_number_of_posts

© 2009 die musterdenker. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.