Applications web
Google Merchant Center et Magento
29/06/11
Lorsqu’on a un site e-commerce, il est important de travailler le référencement. Nous allons découvrir comment booster ses ventes grâce à l’outil Google Shopping (ou Merchant Center)
Création de compte Google Merchant Center
Afin de vous lancer dans l’aventure Google Shopping, il vous faut tout d’abord un compte chez Google. Une fois celui-ci créé avec l’ensemble des informations de votre entreprise, vous pouvez commencer à utiliser l’outil en vous rendant sur http://www.google.fr/merchants/dashboard . Vour retrouverez dans vos paramètres les différentes informations que vous avez préalablement rempli. Pas de panique, vous pourrez les changer !
Formatages des flux
Google Merchant Center travaille avec les flux pour inscrire dans ses bases de données vos différents produits. Vous devez donc être capable de lui fournir un formattage précis afin qu’il puisse le lire. Nous détaillerons ci-dessous le formatage texte. Pour d’autres, notamment xml, je vous renvoie vers leur API.
Configuration de votre flux texte
- Rendez-vous dans votre tableau de bord Merchant Center
- Sélectionnez l’onglet « flux de données » dans le menu de gauche
- Cliquez sur Nouveaux flux de données
- Remplir le Pays cible ainsi que le nom de votre flux (sans espaces)
- Enregistrer les modifications. Votre flux sera créé !
Afin de minimiser les erreurs, vous pouvez lui indiquer comment vous aller formater votre fichier en cliquant sur le bouton Modifier a coté du nom de votre flux. Vous pourrez ainsi sélectionner le format du fichier, l’encodage, la langue, etc…Référer vous à l’API pour connaître le libéllé des champs en français. En détection automatique anglais, c’est assez simple !
Voici un exemple avec les champs obligatoires :
id title link price description condition 1 "Niveau laser rotatif automatique" http://www.topographie-laser.eu/nouveau-telemetre-leica-disto-d5/laser-de-chantier/laser-interieurexterieur-rotatif/niveau-laser-rotatif-automatique-grl300-hv-bosch-trepied-alu-mire-4m 795.00 "Niveau laser rotatif automatique" new
On constate que :
- La tabulation est le caractère de délimitation
- les champs textes peuvent être entourés de quotes
- Il est nécessaire d’indiquer les colonnes sur la première ligne
Cliquer maintenant sur Importation manuelle (sur le flux) > Sélectionner le fichier et Importer ! Vous pouvez constater les erreurs (ou pas) dans l’onglet Produit. La validation par Google de vos produits peut-être longue (sablier sur ligne produit).
Vous pouvez aussi programmer une importation automatique. Pour cela, sur le flux de donnés, cliquez sur Créer (à coté de Aucun) et renseignez l’adresse du fichier.
Merchant Center et Magento
L’outil d’e-commerce que nous proposons, propose d’interfacer directement le site internet avec la base Google (Google Base). Plus besoin de configurer les flux et formatter les fichiers ! Magento se charge de le faire pour vous.
Comment réaliser cette liaison ?
- Tout d’abord, assurez vous d’avoir configurer votre Merchant Center comme vu ci-dessus.
- Suivre ce tutoriel si vous souhaitez inscrire des produits avec Pays = France pour Magento. Oui, c’est obligatoire sinon vos prix seront en $ !
Ensuite toutes les manipulations se font du coté de Magento.
- Se rendre dans l’administration du site
- Système > Configuration > API Google > Onglet Google Base
- Renseignez vos identifiants. Pour pouvoir sélectionner la France comme pays cible, (si vous avez bien suivi ce tutoriel).
Vous êtes donc prêt à créer le mapping pour la synchronisation avec Google Merchant Center. Pour celà :
- Assurez vous que vos jeux d’attributs possèdent tous les champs minimums (rappel). Généralement il manque l’attribut « condition » – mettez le à « new » par défaut.
- Puis Catalogue > Google Base > Gérer les Attributs : créez en un. Sur la version 1.4.0.1, en mettant France, le site plante. Laissez donc USA. Pas de soucis, vos prix seront tout de même en € ! Choisissez Products ensuite.
- Créez le mapping des champs que vous souhaitez lui transmettre. Pas besoin de préciser l’URL, Google la trouve tout seul
- Validez puis Catalogue > Google Base > Gérer les articles : sélectionnez en bas les articles que vous souhaitez synchroniser puis cliquer sur ajouter (liste déroulante à droite)
Problèmes rencontrés avec Magento
Page blanche dans Google Base > Gérer les attributs => réindexer la base ( Configuration > Index management ) et vider le cache !
Ressources pour Magento Google Base
http://www.ehumeurs.com/google-base-et-shopping-sur-magento.html
http://www.jbcreation.fr/2011/02/22/google-base-et-pourquoi-pas-la-france-2/
http://www.google.com/support/merchants/bin/answer.py?answer=188494
Site Internet avec Django
6/01/11
Après Magento, eZPublish, Symfony nous voilà lancé dans l’aventure Django CMS. Ce logiciel s’appuie sur le framework Django écrit en python .
Comment installer le framework Django ?
L’installation du Framework est rapide. Il faut au préalable avoir installé un version de python ( déja installée sous Ubuntu ).
Commençons par télécharger et installer Django
#Après téléchargement ici http://www.djangoproject.com/download/1.2.4/tarball/ tar xzvf Django-1.2.4.tar.gz cd Django-1.2.4 sudo python setup.py install
L’installation se fait dans /usr/local/lib/python2.6/dist-package/
Si vous n’etes pas sur que l’installation s’est bien déroulée, lancer python dans un terminal
python # puis tapez >>> import django >>> print django.get_version()
Si aucun message d’erreur s’affiche, la version de Django installée devrait etre affichée.
Si vous souhaitez installer le mod_python pour apache ( plus d’informations : http://www.howtoforge.com/embedding-python-in-apache2-with-mod_python-debian-etch)
apt-get install libapache2-mod-python
Pour avoir des interactions avec la base de données vous aurez besoin du paquet python-mysqldb.
Installation de Django CMS
Maintenant que le framework est installé, il nous faut télécharger les plugins pour le module CMS
Avant celà, on va créér le dossier qui hébergera le site
#Se placer là où vous souhaiter installer le site django-admin.py startproject MonPremierDjangoCms
Il faut maintenant télécharger le module CMS :http://www.django-cms.org/en/downloads/
Une fois téléchargé et décompressé, placez vous dans le dossier puis
sudo python setup.py install
Toutes les dépendances seront installées. (mptt, south, publisher, etc…)
Modifiez ensuite les fichiers de configuration (settings.py), comme dans cet article, pour lui indiquer quels plugins le projet doit utiliser.
Pour tester que tout fonctionne, lancer le serveur
#Lancement du serveur après s’etre placé dans le nouveau dossier python manage.py runserver
Puis rendez-vous sur
http://localhost:8000
Si vous souhaitez démarer le serveur sur un autre port (ex : 8500 )
python manage.py runserver 8500
Liens pour Django
Configuration de Django CMS
6/01/11
Après avoir installé le framework Django et téléchargé les plugins adéquats, il nous faut configurer les fichiers du projet settings.py et urls.py. Si vous ne modifiez par ces fichiers, rien ne fonctionnera. Pensez à bien installer toutes les dépendances en utilisant easy_install ou pip. http://django-cms.readthedocs.org/tutorial.html#templates
Le fichier settings.py
C’est le fichier principal de configuration du projet. Il permet à Django de connaitre les paramètres de connexion, de connaitre les plugins installés,etc…
Configuration de la connexion à la base de données ( PhpMyAdmin – MySql )
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'djangocms', # Or path to database file if using sqlite3.
'USER': 'utilisateuradmin', # Not used with sqlite3.
'PASSWORD': 'motdepasseAdmin', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Ajout de nouvelle application
Par exemple pour le module CMS, vous pouvez ajouter 'cms','mptt'
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', .... # Décommentez bien cette ligne pour avoir l'interface d'adminstration 'django.contrib.admin', ... # Puis ajouter vos applications 'cms','mptt' )
MIDDLEWARE_CLASSES = ( 'django.middleware.cache.UpdateCacheMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.doc.XViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.media.PlaceholderMediaMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware',)
Le fichier urls.py
Je vous suggère de commencer avec le urls.py suivant, auquel on a ajouté le plugin cms
from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
Envoyer votre configuration en base de données
Pour que votre projet soit utilisable, il faut insérer ces modèles en base de données. Pour celà :
python manage.py syncdb
Si vous obtenez l’erreur Error loading MySQLdb module
–> Installer mysqldb pour python.
Lancement de votre serveur
#Dans le dossier où est installé votre projet python manage.py runserver
Pour accéder à l’administration
http://localhost:8000
Liens utiles
http://django-cms.readthedocs.org/tutorial.html
http://fantomas.willbreak.it/blog/2009/03/10/un-cms-en-django-la-suite/
http://jagdeepmalhi.blogspot.com/2010/10/django-cms-installation-error.html
Internet et vie privée
18/08/10
Avec toutes ces nouvelles technologies, nous ne sommes plus tranquilles nulle part : les SmartPhones dans la poche, le GPS dans la voiture, la TV par internet, etc…La navigation sur Internet en est un exemple flagrant : qu’on le veuille ( surf avec un compte Google actif) ou non ( stockage dans des fichiers cookies ou sessions ).
Vous avez sûrement du entendre parler des cookies, ces fichiers de pistages, mais que sont-ils réellement ? Comment fonctionnent-ils ?
Première information très importante, ces petits fichiers sont stockés sur votre disque dur. Dans quel but ? Non pas de saturer votre disque ( tenter de remplir 1Téra-octet avec des cookies
), mais ils conservent des informations vous concernant. La nature de celles-ci dépend du site web ou du navigateur qui les a créées .On peut retrouver le stockage :
- d’identifiants pour éviter à l’utilisateur de le retaper à chaque fois ( béni soit Big Brother
)
- d’informations sur l’âge de la personne. Ce site par exemple, traitant de vins pétillants, est obligé par la loi de vérifier l’âge de l’internaute. Celui-ci doit donc pour sa première navigation indiquer son âge. La seconde fois en l’occurrence, l’internaute n’est plus sollicité. Votre navigateur s’est donc chargé, sur initiative du site web, de stocker cette information.
- pour le bon fonctionnement des paniers sur un site e-commerce : si j’effectue mes achats mais que je ne finalise pas ma commande et que je quitte le site, mon panier sera sauvegardé de part et d’autre
(session sur le serveur hébergeant le site, identifiant de la session sur mon disque). Vous pouvez faire l’essai sur un site e-commerce comme celui-ci : Ami-2cv.
Une autre méthode un peu moins connue du grand public est le stockage de ces mêmes informations sur le serveur. Il faut donc pour la plupart des cas ( épargnons-nous l’enregistrement d’informations pour une adresse IP), que l’internaute soit identifié sur un service. Un exemple intéressant est le suivi du parcours des sites web effectué par Google : si vous êtes identifié sur votre compte Google (Gmail, Docs, ou autres ), les recherches que vous avez effectuées sont précieusement conservées. Vous pensez peut-être que je suis paranoïaque mais… Exemples :
- En étant identifié sur deux ordinateurs différents, si j’effectue une recherche sur une machine et que je parcours les premières pages, celles-ci seront automatiquement classées comme vues sur la seconde machine (pas méchant, voir utile )
- Si j’ouvre un mail via l’interface Gmail, les liens commerciaux présents sur la droite de l’écran, en analysant le contenu et le titre du mail, présentent des sujets très similaires au texte présent. N’oubliez pas que tous vos mails sont analysés (bien que non lus) à une étape ou une autre de leur parcour afin de prévenir les SPAM, de détecter les virus, de relever des mots indélicats « surveillés », etc…
Extrait de « A propos de Gmail » ( lien ) :
Google prend très au sérieux la confidentialité et votre confiance est essentielle pour nous. Les utilisateurs de Gmail doivent savoir que :
- Google ne communique aucun contenu d’e-mail ni aucune autre information personnelle aux annonceurs.
- Personne ne lit les e-mails dans le but de cibler les annonces ou les informations connexes proposées aux utilisateurs dans Gmail.
- Seules des annonces ciblées et discrètes, affichées à côté des messages, sont présentées aux utilisateurs de Gmail.
Or, si vous effectuez une recherche quelconque sur ce moteur de recherche et que plus tard vous tombez sur des publicités Google ciblées – sur des sites indépendant de Google – vous retrouvez les même sujets. Certes, la source reste Google, mais le contenu est bien présent sur ces sites ne relevant pas de Google.
Il y a des solutions. Ouf ! Par exemple, il est possible de refuser les cookies ou d’utiliser les modes de navigation privée des navigateurs. Mais beaucoup de sites ou services ne fonctionneront pas de manière satisfaisante si vous interdisez le stockage ou la transmission d’informations personnelles. Je vous laisse pour cela essayer les fonctionnalités Navigation Privée de Firefox ou le mode Incognito de Google Chrome ( c’est de l’ironie ?
), etc…
Import des clients d’une plateforme ecommerce vers une plateforme Magento
16/06/10
Voici une technique utilisée lors du transfert de l’un de nos clients d’une plateforme ecommerce vers une plateforme magento. Elle vous donnera peut être une piste si vous avez besoin d’importer des clients existants dans une base Magento. Attention tout de même cette technique est à adapter en fonction des besoins.
Pour cette opération vous aurez besoin de :
- Votre ancienne base de données avec Phpmyadmin installé
- Le nouveau Magento installé avec l’accès à l’administration et notamment l’accès à l’interface Importer/Exporter
Le but de l’opération est de créer un fichier csv à l’aide de Phpmyadmin prêt pour l’import dans Magento. Cette technique implique le fait que votre base de données existante doit avoir un minimum de points communs avec le fichier d’import magento. Elle évite aussi de passer par un script PHP intermédiaire.
1ère étape : Récupérer la liste des champs disponibles dans le fichier d’export Magento
- Allez sur le BackOffice de votre Magento
- Menu Système / Importer Exporter / Profils
- Par défaut un profil est créer « Export Customers ». Exécuter le afin de récupérer le CSV avec tous les noms des champs.
- Voici donc la liste des champs disponibles et à compléter lors de l’import des clients dans Magento : website email group_id prefix firstname middlename lastname suffix password_hash taxvat billing_prefix billing_firstname billing_middlename billing_lastname billing_suffix billing_street_full billing_city billing_region billing_country billing_postcode billing_telephone billing_company billing_fax shipping_prefix shipping_firstname shipping_middlename shipping_lastname shipping_suffix shipping_street_full shipping_city shipping_region shipping_country shipping_postcode shipping_telephone shipping_company shipping_fax created_in is_subscribed group
2ème étape : Créer la requête SQL qui permettra d’exporter un fichier CSV des clients prêt à l’import dans Magento
Dans notre cas tous les champs ne sont pas forcémment complétés dans l’ancien système. Notre requête ne reprendra donc pas l’ensemble des champs.
Voici la requête une fois terminée :
SELECT
"base" AS website,
old_table_user.user_email AS email,
"Client" AS group_id,
old_table_user.first_name AS firstname,
old_table_user.last_name AS lastname,
"motdepasseachanger" AS password_hash,
old_table_user.first_name AS billing_firstname,
old_table_user.last_name AS billing_lastname,
old_table_user.address_1 AS billing_street_full,
old_table_user.city AS billing_city,
"FR" AS billing_country,
old_table_user.zip AS billing_postcode,
CONCAT_WS(' ',old_table_user.phone_1,old_table_user.phone_2) AS billing_telephone,
old_table_user.company AS billing_company,
old_table_user.fax AS billing_fax,
old_table_user.first_name AS shipping_firstname,
old_table_user.last_name AS shipping_lastname,
old_table_user.address_1 AS shipping_street_full,
old_table_user.city AS shipping_city,
"FR" AS shipping_country,
old_table_user.zip AS shipping_postcode,
CONCAT_WS(' ',old_table_user.phone_1,old_table_user.phone_2) AS shipping_telephone,
old_table_user.company AS shipping_company,4ème étape : Import le fichier CSV dans Magento
old_table_user.fax AS shipping_fax,
"default" AS "created_in",
"Client" AS "group",
old_table_user.newsletter AS "is_subscribed"
FROM old_table_user
L’astuce est donc de récupérer le champ désiré et de renommer la colonne avec l’instruction AS de Mysql. Exemple :
old_table_user.user_email AS email,
Si vous n’avez pas l’information dans votre base existante vous pouvez la créer, exemple avec le champ requis website :
"base" AS website,
Mysql dispose de fonctions très intéressantes, notamment CONCAT_WS qui permet de concaténer des valeurs. Exemple ci-dessous avec la concaténation de 2 valeurs dans le futur champ billing_telephone (Sous Magento un seul champ téléphone est prévu d’où cette concaténation).
CONCAT_WS(' ',old_table_user.phone_1,old_table_user.phone_2) AS billing_telephone,
3ème étape : Exporter le fichier des clients
Exécutez votre requête puis exportez le résultat en CSV à l’aide de PhpMyAdmin avec les paramètres suivants:
Champs terminés par : ,
Champs entourés par : »
Caractère spécial : \
Lignes terminées par : AUTO
N’oubliez pas de cocher la case « Afficher les noms de champ en première ligne ».
Voilà votre CSV est prêt !
4ème étape : Importer le fichier CSV des clients dans Magento
- Allez sur le BackOffice de votre Magento
- Menu Système / Importer Exporter / Profils
- Utiliser le profil créer par défaut « Import Customers ».
- Vérifier que les paramètres correspondent bien aux paramètres précisés au moment de l’export de PhpMyadmin
- Importer le fichier via l’assistant.
Vos clients sont importés !
Google Chrome OS : votre ordinateur dans le nuage
21/11/09
C’est un peu pour les Geeks, Johann nous avait parlé de QWikiOffice (OS web) ; Google va beaucoup plus loin (techniquement cela n’a pas grand chose à voir en fait) dans les OS basé sur le web avec Chrome OS, son système d’exploitation dont il a publié les sources le 19 novembre (version finale en 2010). Nativement web, toutes les applications et les fichiers sont en cloud computing (= nuage de serveurs sur Internet). Vous démarrez en 7 secondes, vous vous identifiez et vous commencez à utiliser les ressources qui sont sur Internet ; vous perdez votre portable ou il est détruit, vous en rachetez un, 7 secondes plus tard vous retrouvez l’ensemble de vos fichiers et de vos applications dans l’état où vous les aviez laissé. Les technologies utilisées dans la création de site Internet (Chrome OS utilise beaucoup les nouvelles possibilités de HTML 5) et le développement web vont être utilisées à outrance dans ces nouveaux environnements.
La démo : http://www.youtube.com/watch?v=62iBuf2btVI
Téléchargeable et testable avec une virtualbox : http://thepiratebay.org/torrent/5170843/chromeos-image-999.999.32309.211410-a1.vmdk.bz2 ou http://gdgt.com/google/chrome-os/download/
QWikiOffice un bureau virtuel Online
17/11/09
Voici un projet open source certes pas très utile mais plutôt intéressant : QWifiOffice
Ce projet est en fait un WebOS reprennant l’interface graphique de Windows Vista. Le tout basé sur de l’AJAX du PHP et la librairie Ext JS. Le résultat est assez bluffant.
Je vous laisse juger par vous même : www.qwikioffice.com
L’avenir des OS est-t-il dans le Web ?
Google docs : une interface _réactionnaire_ pour le tableur
9/10/08
Un moment j’ai cru que je m’étais trompé et que j’avais ouvert Excel (Microsoft vous vous rappelez ?). Non, j’étais sur Google docs : l’ergonomie de google spreadsheet a changé. Plus de « insert Row above » dans un onglet spécifique, les tris et les filtres sous forme de lien type web. Google a décidé de revenir quelques mois en arrière, avant même office 2007, avec un menu unique, sur une seule ligne, les sous items étant accessibles sous formes de menus déroulants. Une banale application microsoft/windows/office en somme.
Déstabilisant pour quelqu’un qui croit au web 2.0 et aux interfaces simplifiées, misant sur les liens les plus utilisés !
Si Google a raison, il faut revenir à des interfaces qui font confiance à l’utilisateur et à sa capacité à trouver de manière logique, et non seulement intuitive les fonctionnalités dont il a besoin.
Après la révolution, la réaction ? Google réactionnaire… hum !
Getting to know Google Docs : Welcome to the new spreadsheets editor! – Google Docs Help Center
Getting to know Google Docs: Welcome to the new spreadsheets editor!
PrintEverything you know and love about spreadsheets is still available – just better organized. See some highlights below:
1. Menus neatly provide access to all commands and functions.
2. The updated toolbar gives shortcuts to the most commonly-used commands, including one-click access to currency, percent, and other cell formats.
3. Hover over the sort bar to expose sorting tools. Drag it by the handle on the left to freeze header rows so they are visible while you scroll.
4. Formulas are now accessible from the toolbar (or, as always, by typing them directly into the cell).
5. In the Share menu you can invite people, see who has access, publish to the web, and find other advanced sharing features.
6. Chat with people who are editing at the same time, or just see who’s there.
7. Your edits are always automatically saved.
Applications php de gestion de fichiers
12/09/08
Les applications Php de gestion de fichiers – Hyla project, mon appréciation toute subjective sur les projets listés :
- eXtplorer, utilisant le framework Javascript/Ajax Ext, semble une idée intéressante (drag’n drop, tris etc.) pour ce type d’application, mais pas de démo en ligne, il faudra donc l’installer pour tester. Contrainte de licence lié à celle de Ext (GPL3) en cas de redistribution. Le commentaire de l’auteur de l’article sur le blog d’Hyla : « Application très bien finie, propre, fonctionnelle, mais il manque tout de même des fonctions comme une gestion un peu plus poussée des droits, une vue en miniatures et pourquoi pas un support UTF8 du système de fichiers… »
- Hyla (auteur du billet) me semble assez déroutant au premier abord (je ne suis pas allé plus loin).
- Kfm : peut être installé en tant que plugin d’un éditeur de texte en ligne wysiwyg comme notre préféré TinyMCE (utilisé dans le back office de notre application de gestion de site). Démo. L’interface n’est vraiment pas sexy, mais l’application semble vraiment efficace (recherche, un vrai menu contextuel sur le clic droit, veritable gestion, édition des fichiers type texte…)
- PHPfileNavigator (démo): design très pro, moins de gadgets type desktop que Kfm en revanche, mais l’essentiel y est, dans une interface facile à prendre en main. Des fonctionnalités pratiques sont présentes (envoi par mail, téléchargement d’une archive compressée…). Un inconvénient : on doit choisir entre la vue de l’arborescence, et la vue en liste dossier par dossier, pas toujours pratique. Intéressant : la possibilité de configurer plusieurs « racines », nous nous sommes rendus compte en implémentant notre propre ged pour nos clients que c’était un besoin fréquent (une gestion des fichiers avec un point de départ, une racine différente pour les commerciaux, les dirigeants…). Gestion des droits type Unix a priori.
Reste à voir le code, la modularité, et la facilité d’intégration dans notre logiciel de gestion de site, ou plutôt ce que nous allons pouvoir copier/améliorer/intégrer
.
Clients FTP en mode Web
Vraiment intéressant pour faciliter l’accès au serveur FTP pour les clients d’une agence web, en général débutants qui sont rebutés par Filezilla.
Net2FTP : l’application a bien évolué en terme de fonctionnalités, mais une interface pas très simple et qui a pris un coup de vieux.
phpWebFTP. Un client FTP Web (comme Net2FTP). Interface très pro, beaucoup plus simple et adaptées aux débutants que net2FTP (mais moins de fonctionnalité), très bonne qualité.


Commentaires récents