integrate wordpress feeds in magento

There are a few extensions that integrate magento and wordpress in magento connect extension repository. Price is not high -in fact fishpig wordpress integration extension is free - but if you happen to have a specific oldie version of Magento (1.2), this extension comes with no guarantee.

  • RSS reading :  a manual installation of an extensionis distributed by Sonassi here, which comes with RSS reader code and template files
  • A simpler technique incolves reading a wordpress generated HTML page. Check out this one from Addoa Creative

Windows Explorer Image Thumbnail RAW Preview

If you're working a PC with MAC background, you're probably disappointed with the lack of specific image format preview in the explorer. Professionnals use Adobe Bridge browsing  but it's expensive. Even though serious imaging work  often requires  the Adobe suite, you might be tempted to go with cheaper or opensource solutions such as the famous GIMP for image manipulation, or inkscape for vector drawing. Image browsing is a feature windows explorer only provides for specific formats : jpg, gif, bmp. Raw files require specific add ons

  • Quick / most famous : FastPicture Viewer / includes support for all raw formats, DNG, Photoshop PSD
  • less famous but development still active : MysticThumb
  • Thumbnail display depends on specific dlls that can be installed for specific formats, such as

Zend Framework Paypal Website Payments Standard Form

Website Payments Standard uses a HTML form to send a payment proposal to paypal. This tehnique is a reliable implementation of IPN, which notifies your web site when the payment has been processed. The class below requires Zend Framework and uses ZendForm to generate the form. If you' re using the debug sandbox mode,the form generates text fields, otherwise it generates hidden fields. More info about Paypal Website Payment Standard Form.


  • in your controller : create the paymentAction, and also paymentNotifyAction (for IPN notifications), and the payementReturn action (for return and confirmation on your website). The code below uses user object with email and id attributes
public function paypal()
$paypal=new Wb_Paypal_Standard(true);
 $paypal->setPayer($user->email, $user->id);
$paypal->setControllerUrl("http://" . $this->getRequest()->getHttpHost() . $this->view->url()    );
return $paypal;
public function paymentAction()
$this->view->paypalForm=  $this->paypal()->form();
public function paymentnotifyAction()

    if ($this->paypal()->validateNotify($this->getRequest()->getPost()))

          $dbUserPayment=new Model_DbTable_Users_Payments()   ;
        $dbUserPayment->insert( array("ifv_user_id"=>$arrPost["payer_id"],"txn_id"=>$arrPost["txn_id"], "credits"=>$arrPost["custom"]));
    catch (Exception $e){PoleOuest_Log::error($e->getMessage());}

public function paymentreturnAction()
  • views : payment.phtml
    <?= $this->paypalForm ?>

Class : Wb_Paypal_Standard.php

class WB_Paypal_Standard
var $paypalUrlLive="";
var $paypalUrlTest="";
var $currencyCode="EUR";
var $cmd="_xclick";
var $sandbox=false;

var $paypalData=array();
public function __construct($sandbox=false)
 if ($this->sandbox)
 $this->paypalData['url']= $this->paypalUrlTest;
 else    $this->paypalData['url']= $this->paypalUrlLive;

public function form()
 if (!isset($this->paypalData['businessEmail'])) throw new Exception('Please specify paypal business account email ');
 if (!isset($this->paypalData['notifyUrl'])) throw new Exception('Please specify return url for ipn ');  
 if (!isset( $this->paypalData['payer_email'])) throw new Exception('Please specify payer email ');       
 if (!isset($this->paypalData['amount'])) throw new Exception('Please specify amount ');   
 $this->frm=new Zend_Form();
 $this->frm->setAction($this->paypalData['url']) ;

 $this->addFormField("cmd", $this->cmd);
 $this->addFormField("business", $this->paypalData['businessEmail']);
 $this->addFormField("receiver",  $this->paypalData['businessEmail']);
 $this->addFormField("charset", "utf-8")  ;
 $this->addFormField("notify_url", $this->paypalData['notifyUrl']);     
 $this->addFormField("return", $this->paypalData['returnUrl']);
 $this->addFormField("payer_email", $this->paypalData['payer_email']);
 $this->addFormField("amount", $this->paypalData['amount']);  
 $this->addFormField("currency_code", $this->currencyCode);
 foreach($this->arrItem as $k=>$v)        
 $i="_" .($k+1);
 if ($this->cmd=="_xclick") $i="";
 $this->addFormField("item_name" . $i, $v['item_name']);
 if ($i!==""){ $this->addFormField("item_amount" . $i, $v['amount']);
 $this->addFormField("quantity" . $i, $v['quantity']);         }
 $elt = $this->frm->createElement('submit','submitButton');
 $elt->setLabel('PAY');      $this->frm->addElement($elt);     
 return $this->frm;
public function addItem($arrItem)
public function addFormField($name, $value="")
 if ($this->sandbox) $fieldType="text"; else $field_type="hidden";  
 if ($this->sandbox) $elt->setLabel($elt->getName());
public function validateNotify($arrPost)
 $client = new Zend_Http_Client($this->paypalData['url']);
 $client->setParameterPost(array_merge(array('cmd' => '_notify-validate'),$arrPost));
 $response = $client->request();

 if ($response->getBody() != 'VERIFIED') throw new Exception('Invalid IPN Transaction : ' . $response->getBody());   
 elseif($arrPost["mc_gross"]=="") throw new Exception('Invalid IPN mcgross :  not set');   
 elseif($arrPost["payment_status"]!="Completed") throw new Exception('Invalid IPN payment_status : ' .  $arrPost["payment_status"]);   
 elseif($arrPost["txn_id"]=="") throw new Exception('Invalid IPN txn_id : not set ');   
 else return true;
public function setBusinessEmail($businessEmail){     $this->paypalData['businessEmail']=$businessEmail;}
public function setAmount($amount){      $this->paypalData['amount']=$amount;}
public function setCustom($custom){      $this->paypalData['custom']=$custom;}
public function setControllerUrl($controllerUrl)
 $this->paypalData["notifyUrl"]=$controllerUrl . "notify";
 $this->paypalData['returnUrl']=$controllerUrl . "return";
public function setPayer($payer_email, $payer_id)
public function paymentnotifyAction()

if ($this->paypal()->validateNotify($this->getRequest()->getPost()))

$dbUserPayment=new Model_DbTable_Users_Payments()   ;
$dbUserPayment->insert( array("ifv_user_id"=>$arrPost["payer_id"],"txn_id"=>$arrPost["txn_id"], "credits"=>$arrPost["custom"]));
catch (Exception $e){PoleOuest_Log::error($e->getMessage());}


Efficient SEO with Advanced Web Ranking dedicated software

Keyword analysis from search engine results, keyword density advice from your website content, evolution of specific website ranking data (position, rank, competitors), these are some of the powerful web site ranking analysis features provided by Advanced Web Ranking, distributed online by Caphyon Ltd.

Before you engage costly advertising programs for your website, be sure you have explored the powers of natural search engine optimization, one technique that provides best Return on Investment. A set of techniques that can doesn’t require financial investments but will certainly prove time consuming : natural search engine optimization means that you’re going to spend a few weeks monitoring the website you’re working on, and try to improve position in search engines on specific keywords.

It’s quite easy to work on one or two main keywords. But most websites rely on powerful content management platforms such as wordpress, or e commerce application like Magento, and have the potential to render thousands of distinct pages with unique content. That’s where real work starts, and there are two main reasons why I would recommend the assistance of specific search engine ranking software like Advanced  Web Ranking. I’ve tested the software in a localized version for French websites, and the amount of reports it can produce is worth the few minutes required to handle the configuration  learning. I will explain below the three angles of time consuming tasks that the software can save.

Read more

OpenSource Task list managers


A typical workgroup and/or CRM applications comes with  full featured applications : sugarcrm, tine2.0 come with much more than contact management, task tracking, customer relation ship, and are conceived to integrate third party developments (plugins). But if you only need to track work to do, might have a look at simpler web based php applications :

  • myTinyTodo is so small and simple - yet ajax powered-  you'd love it at first sight
  • TaskFreak is the free version of a much more advanced applicatin, can be enough for a lot of small freelance  projects.
  • PlanCake is a nice hosted  job tracking application that can also be downloaded and installed on your server. Nice for testing before adopting.
  • todoyu (picture above) is the most advanced of our selection, with advanced features : manage multiple projects with team members but also clients online, overview your customer's data, assign tasks to team member and external staff, share files within your work group, schedule events in a shared calendar, check and meet the deadlines