octobre 2009

Drupal : Apache solr et le multi-site

drupal-logo solr

De nombreux sites possèdent un moteur de recherche et sous Drupal le plus utilisé est “Apache Solr“.
L’installation de ce moteur de recherche est assez simple si vous souhaitez l’installer, consulter la documentation de Drupal (http://drupal.org/node/343467).
Une fois que Solr est installé sur votre serveur il peut arriver que plusieurs sites doivent l’utiliser.

Dans ce cas là voici les manipulations à faire :

  • Dans votre répertoire d’installation de solr ouvrir le répertoire “apache-solr-nightly” et renommer “example” en “drupal”
  • Dans le répertoire “apache-solr-nightly/drupal/solr/conf”, renommer schema.xml et solrconfig.xml en .bak
  • Récupérer les fichiers “schema.xml” et “solrconfig.xml” dans le module apachesolr de Drupal et les copier dans le répertoire “apache-solr-nightly/drupal/solr/conf”
  • Supprimer les répertoires example-DIH, exampleAnalysis, exampledocs, work dans “apache-solr-nightly/drupal”
  • Copier “drupal/multicore/solr.xml” dans “drupal/solr/solr.xml”
  • Supprimer “drupal/multicore”
  • Maintenant on va créer dans “drupal/solr” un répertoire par site
  • Copier le répertoire “drupal/solr/conf” dans chacun des répertoires que vous venez de créer
  • Ouvrez le fichier “drupal/solr/solr.xml” et mettre à jour les lignes “core” avec le nom de vos répertoires par exemple
  • Une fois ces modifications faites lancer la commande “java -jar start.jar”
  • Il faut maintenant aller dans l’administration de Drupal et modifier le “solr path” avec un chemin du genre “/solr/exemple1″
  • Et pour finir il vous faut ré-indexer le site pour que les modifications soient prises en compte

Magento - Jouer avec les stocks

Comment afficher la quantité de stock disponible d’un produit :

$_product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
echo Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();

et voici comment mettre a jour les stocks (dans un batch par exemple) :

$_product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
Mage::getModel('cataloginventory/stock_item')
    	 ->loadByProduct($_product)
    	 ->setData('qty', 666)
    	 ->save();

et parfois tous ces “save()” sur le produit ne fonctionnent pas ; premier reflex (dans le cas d’un store unique bien sûr) :

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); // a mettre avant le save...

Symfony Live 2010

banner_square

Et c’est reparti comme en 2009 !
La prochaine symfony Live est annoncée déjà depuis quelques mois (à Paris du 15 au 17 février), mais ce n’est qu’hier que nous avons eu connaissance du programme, et de quelques surprises…
En effet, cette conférence Symfony, organisée pour la 2ème fois par Sensio Labs, sera l’occasion de dévoiler la sortie de Symfony 2.0 !
Pour plus d’info :