BLOG

 

Magento auto-rename image labels


Bij het toevoegen van producten aan je Magento Webshop is het toevoegen en labelen van afbeeldingen een enorm rot karwei.

SEO, zoekmachine optimalisatie, technisch gezien is het toevoegen van de juiste labels een van de vele verbeteringen die je kunt doen om beter gevonden te worden.

Klinkt leuk, maar je producten veranderen wel eens van omschrijving, of van naam en dan kun je weer de labels ook aan gaan passen. Terwijl als de labels hetzelfde zouden zijn als de naam van het product dan zou dat al dat werk schelen.

Je kunt het aanpassen in de template van je Magento installatie, maar dan zit je er ook aan vast en kun je geen uitzonderingen meer maken.

Ik heb een klein PHP scripje geschreven waarmee je de labels van al je producten in de shop kunt overschrijven met de actuele waarde van de producten.

Het is buiten de API van Magento om dat zou een chiquere manier zijn…

Gebruik van de code is uiteraard op eigen risico :-)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
/*
 * Make sure to create a backup of your installation first!
 *
 * No guarantees!
 *
 */
 
$galleryAttributeId = 65; // Overwrite the image label with this attribute_id's value of the product
$attributeVarchar = array('105','106','107'); // There are different labels for the overview page etc.
 
/*
 * Connect to database
 *
 * Settings can be fount in /app/etc/local.xml
 */
 
$sqlUsername  = "username";
$sqlPassword  = "password";
$sqlDb        = "database";
 
$sqlHost      = "localhost";
$error        = "Error connecting to database";
 
$server       = mysql_connect($sqlHost, $sqlUsername, $sqlPassword)or die("$error");
$db           = mysql_select_db($sqlDb, $server)or die("$error");
 
/*
 * Select products
 */
 
$q1 = mysql_query("SELECT entity_id FROM catalog_product_entity");
if(mysql_num_rows($q1) != 0){
    while($r1 = mysql_fetch_array($q1)){
        /*
         * Select value_id of the product
         */
        $entity_id = $r1['entity_id'];
        $q2 = mysql_query("SELECT value_id FROM catalog_product_entity_media_gallery WHERE entity_id = '".$entity_id."'");
        if(mysql_num_rows($q2) != 0){
            while($r2 = mysql_fetch_array($q2)){
                /*
                 * Select name of product
                 */
                $value_id = $r2['value_id'];
                $q3 = mysql_query("SELECT value FROM catalog_product_entity_varchar WHERE entity_id = '".$entity_id."' AND attribute_id = '".$galleryAttributeId."' LIMIT 1");
                if(mysql_num_rows($q3) != 0){
                    $r3 = mysql_fetch_array($q3);
                    $value = $r3['value'];
                    /*
                     * Echo status updates
                     */
                    echo "Changing: ".$entity_id." - ".$value."<br/-->";
                    /*
                     * Perform update
                     */
                    mysql_query("UPDATE catalog_product_entity_media_gallery_value SET label = '".mysql_real_escape_string($value)."' WHERE value_id = '".$value_id."'");
                    foreach($attributeVarchar as $attribute){
                        mysql_query("UPDATE catalog_product_entity_varchar SET value = '".mysql_real_escape_string($value)."' WHERE entity_id = '".$entity_id."' AND attribute_id = '".$attribute."'");
                    }
                }
            }
        }
    }
}
 
?>

Na het script niet vergeten je cache leeg te gooien.

ToolMasters – vloerverwarming webshop


Voor ToolMasters hebben we een Magento gebaseerde webshop ontwikkeld. Met het ruimte assortiment en de vele verschillende product eigenschappen is de shop erg eenvoudig te doorzoeken door klanten.

Voor dit project hebben we Magento 1.6.2 gebruikt en de producten geimporteerd middels de Magento API.

21 Blackjack Party – CMS & Facebook


In opdracht van WannaGaming hebben we voor de Funplay iOS app 21 Blackjack Party een bijbehorende CMS website ontworpen en gerealiseerd. De website maakt gebruik van de API van de app ontwikkelaar voor het ophalen van de realtime scoreboard data.

Naast de website hebben we de Facebook pagina onder handen genomen. De pagina is ook voorzien van een scoreboard feed zodat he competative element van de Funplay en Facebook connect worden versterkt.

21 Blackjack party is een gratis fun play app (dus geen betaalde credits nodig) voor
op de iPhone waarmee je kunt Blackjacken. Post je scores op Facebook middels Facebook Connect en laat zien dat je beter bent dan je vrienden!

WebEngine CMS compatible met IIS 7


De nieuwste versie van het WebEngine CMS is compatible met Windows Hosting op basis van IIS 7.

Wat is hier zo bijzonder aan zou je je afvragen? Het WebEngine CMS is al lange tijd compatible met IIS. Maar met de komst van IIS 7 en URL rewrite is het mogelijk om dezelfde SEO vriendelijke URLs te gebruiken als op Apache. De meeste webservers wereldwijd zijn gebaseerd op Linux met Apache. Apache heeft een module Mod_rewrite welke zeer eenvoudig zoekmachine vriendelijke URLs ondersteunt. Het CMS van WebEngine maakte hier al lange tijd gebruik van maar voor Windows hosting was er nog geen goed alternatief. Hierdoor kreeg je minder schone URLs bij Windows hosting.

De enige vereiste bij Windows hosting is de module “URL rewrite“.

Met deze nieuwe versie zijn de URLs van ons CMS dus altijd SEO vriendelijk!

Hersentumor.nl


Stichting hersentumor.nl richt zich op het voorlichten van patiënten met een hersentumor. Daarin gaan ze verder dan het standaard boekje van de dokter. Uiteraard kunnen patiënten er uitgebreide informatie vinden over de ziekte zelf. Maar ook over praktische zaken als rijvaardigheid, medicijntips. Maar ook lastigere zaken als “hoe vertel ik het de kinderen” komen aan bod. Altijd eerlijk, ook als de waarheid hard is. Op deze manier probeert de stichting een steun in de rug te zijn voor diegenen voor wie het al te laat is.

Wij hebben het voorrecht gehad om samen met patiënten en doktoren van het AMC deze site te ontwikkelen. Daar zijn we dan ook extra trots op. De site is te bekijken op http://www.hersentumor.nl

Als je het kunt missen zijn donaties uiteraard van harte welkom.

ngnix verslaat IIS in race om 2e plek op webservermarkt


Het pakket ngnix is begonnen als een eenmans projectje van de Rus Igor Sysoev en in Rusland is ngnix intussen verantwoordelijk voor bijna de helft (46%) van alle websitehits. Ook internationaal wordt ngnix door steeds meer websites gebruikt. Grote voorbeelden zijn fastmail.fm en wordpress.com.  Aan de leiding gaat al sinds de jaren 90 Het Open Source project Apache . Sinds 1998 wordt apache door meer dan de helft van de websites gebruikt. Een tijdje leek het er op dat Microsoft in de buurt van apache kon komen met hun IIS webserver. Dit is maar tijdelijk gebleken.

Totals for Active Sites Across All Domains June 2000 - January 2012

Totals for Active Sites Across All Domains June 2000 - January 2012

Al sinds jaar en dag brengt het bedrijf netcraft statistieken uit van alle websites en webservers op internet. En deze maand heeft ngnix IIS ingehaald. Dat betekent dat nu de 2 populairste webserver softwarepakketen Open Source projecten zijn. Uit de praktijk blijkt dat Open Source projecten veiliger en stabieler zijn. Ook bij Webengine wordt voor alle sites de Apache webserver gebruikt.

http://news.netcraft.com/archives/2012/01/03/january-2012-web-server-survey.html

 

 

Custom WordPress theme laat geen css zien


Bij het maken van een website loop je soms tegen problemen aan waarvan je weet dat ze simpel op te lossen zijn, maar je hebt geen flauw idee hoe. Gisteren had ik ook zo’n probleem:

Voor een klant was ik bezig met het maken van een custom WordPress theme. Nou ben ik geen diehard programmeur zoals mijn collega’s. Maar dit had ik al vaker gedaan, met succes. Dus dat was zo gepiept. Dacht ik.

Ik had alle juiste files aangemaakt, css klopte, html klopte, maar alles wat ik zag was een wit scherm.

Na tijdje Googlen zonder succes kwam ik tot het lumineuze idee om eens wat oude code door te spitten. Daar vond ik de boosdoener. De link naar mijn css file:

<link rel=”stylesheet” href=”style.css” type=”text/css” media=”screen” />

Ziet er prima uit. Moest naar mijn idee ook gewoon werken binnen WordPress. Dat bleek niet het geval. Ik zag nog steeds een wit scherm.

Toen ik deze regel veranderde in:

<link rel=”stylesheet” href=”<?php bloginfo(‘stylesheet_url’); ?>” type=”text/css” media=”screen” />

Zag ik mijn css ineens wel!

Misschien hebben andere mensen geen probleem met deze regel, maar het komt dus voor dat het wel zo is.Omdat ik op Google nergens een oplossing vond voor dit probleem, wilde ik dit toch even met de buitenwereld delen. Misschien heb je er wat aan.

Pong is Back!


Op het verzoek van velen is Pong! weer terug

Pong is Back!

XCode 4 Bug fix voor Archive Build met Static Library


Er zit een bug in Apple’s XCode 4 wanneer je een App wilt uitrollen met een static library erin. Bijvoorbeeld wanneer je met het PhoneGap framework werkt en de Facebook Connect API plugin gebruikt van Dave Johnsen

Het probleem is dat als je je project Archived en vervolgens wilt delen met test users via “Share” de .ipa optie is uitgeschakeld. In plaats hiervan maakt XCode een .xcarchive file. De oplossing is zo simpel dat als je het een keer hebt opgelost je het zeker bij een volgende keer gaat vergeten, dus vandaar deze post…

  1. Kies je sub-project in de listing links
  2. Kies je Target in het rechter vlak
  3. Zoek de “Skip Install” optie in de “Deployment section” van de build settings en verander het van No (default) naar Yes.

Als je nu een archive maakt kun je de optie voor .ipa wel kiezen.

Let op! Alleen van je sub-project Skip Install op Yes zetten.

Determine rotation of iPhone / iPad


Because there was no script or snippet around I’ll be writing this in English for a change.

When working with PhoneGap or for just regular HTML made for mobile devices, it’s always handy to know the aspect ratio and the rotation of the device.

I made this little function which is quite a no-brainer,but since document.documentElement.clientWidth and document.body.clientWidth don’t work to determine the rotation you should use window.innerWidth.

This is a small function you can use.

function resize(){
/*
*  Function to determine the size of the device
*/
var width  = window.innerWidth;
var height = window.innerHeight;

if(height > width){
// Potrait
alert('Portrait');
}else{
// Landscape
alert('Landscape');
}
}

You can call the function in the body tag via onresize or onload.

ontouchmove="touchMove(event);" onresize="resize();"

Instead of the alert() you can call you own actions to be triggered once the rotation changes.

I haven’t tested it on android or other non iOS devices, please let me know if this works or not so I can add / edit it.

P.S. I wrote this to trigger a javascript function to center a div inside of a iOS PhoneGap app. I’ll add it when it’s finished.

Waar we trots op zijn

Playlogic Games

CMS + Webdevelopment

ZIPT

Webshop + CMS

Kersten

Webshop + CMS

FF Pauze

CMS + Webdevelopment

  • facebook
  • linkedin
  • twitter
  • rss
E-mail
WebEngine.nl | Cranendonck 2 | 5653 LA, Eindhoven | Postbus 1416 | 5602BK, Eindhoven | Tel: 040 711 42 74 | Fax: 084 738 06 19 | info@webengine.nl