Archives pour la catégorie Joomla

Facebook Connect

J’ai découvert et essayé il y a quelques jours Facebook Connect sur un de mes sites sous Joomla (Find a Party). Quand j’ai découvert cette possibilité j’ai littéralement sauté au plafond! En effet les visiteurs d’un site web ont souvent la flemme de s’inscrire sur un nouveau site et bien souvent le ratio visites par jour/inscription est faible. Grâce à Facebook Connect vous pouvez multiplier de façon impressionnante le nombre d’utilisateurs inscrits sur votre site. Le visiteurs qui possède un compte Facebook a simplement à entrer ses identifiants pour se connecter à votre site, ce qui lui crée automatiquement un compte et importe certaines de ses informations de son compte Facebook, telles que son avatar, sa date de naissance, ville, etc.

Je l’ai essayé pendant une journée et les premières heures j’ai trouvé cela fabuleux. Sauf que…

Sauf que en réalité ce ne sont pas « vos » utilisateurs mais bien ceux de Facebook. Quand un utilisateur se connecte via Facebook sur votre site, cela lui crée un compte sur votre site, mais Facebook ne donne ni l’adresse e-mail de cet utilisateur, ni son mot de passe (ce qui est logique…).

Conséquences: si un jour votre utilisateur supprime son compte Facebook, il ne pourra plus se connecter sur votre site… Pourtant il a bien un compte, mais il ne peut s’y connecter que par Facebook Connect du fait que la base de notre site ne contient ni son mail ni son mot de passe.

Le problème est de taille: si l’utilisateur modifie des informations sur Facebook, elles seront modifiées sur votre site (peut être qu’il ne le souhaite pas, ou ne veut pas avoir les même), si vous voulez contacter, par News Letter par exemple, vos utilisateurs: vous ne le pouvez pas. Si vous avez 10 000 comptes Facebook sur votre site et que demain vous supprimez Facebook Connect (pour une raison telle qu’un changement unilatéral des conditions d’utilisation de FB que vous trouvez inacceptable), plus aucun de ces 10 000 utilisateurs ne pourra  se connecter: ils n’existent plus pour vous!

On pourrait multiplier les exemples à l’infini. Pour résumer votre site devient entièrement dépendant de Facebook.

Ce beau concept est en réalité le plus vicieux qui n’ai jamais été inventé. Si tous les sites utilisaient Facebook Connect, vous seriez obligé d’avoir un compte Facebook pour pouvoir utiliser le Web…

Mais cela n’a rien de surprenant dans la politique de Facebook qui a déja utilisé une idée similaire avec ses Bookmarks et Facebook Connect n’est qu’une illustration des dangers que représentent l’OpenID et l’APML dont j’avais déjà parlé dans un précédent article.

Sur ce, bonne soirée et à vos risques et périls si vous voulez utiliser Facebook Connect!

joomfish 2.0

Joomfish est un composant de Joomla qui permet de créer facilement un site multilingues. Joomfish n’est pas un traducteur, mais simplement un composant qui permet de traduire les menus, catégories, articles en parrallèle de la version originale. Ce composant est vraiment extraordinaire tant par sa facilité d’utilisation, que par sa fiabilité. Joomfish fonctionne parfaitement avec la réécriture d’URL intégrée à Joomla (URLs explicites (SEF)). Cependant, cette possibilité intégrée à Joomla est bien souvent que peu satisfaisante, car elle ne traduit pas la plupart des modules et notamment celui d’Eventlist.

La solution consiste alors à se tourner vers le composant sh404SEF qui permet de réécrire les URL d’une façon beaucoup plus poussée et beaucoup personnalisable. Le problème c’est que sh404SEF dans sa dernière version 1.0.16 pour Joomla 1.5 ne fonctionne absolument pas avec Joomfish! Il semblerait que sh404SEF utilise des class qui ne soient pas appropriées.

Que faire alors lorsque l’on aime les belles URL et que l’on est polyglotte?

La solution vient du site de sh404SEF qui a fourni une nouvelle version (béta) qui est la 1.0.19 compatible Joomfish.

Je l’ai essayé car je tenais à avoir un site multilingue sur Find a Party. Ce ne fût pas la panacée. Effectivement il n’y a plus d’erreurs graves, mais lorsque l’on passe d’une langue à l’autre, il arrive que des menus disparaissent…

J’ai donc opté pour ne garder que mes URL chéries et ai mis à la trappe l’idée d’un site multilingues en attendant qu’une version plus stable de sh404SEF soit produite.

Il vient de m’arriver un petit problème avec le composant Community Builder pour Joolma.

Après un transfert de mon site web de mon serveur local vers un hébergement mutualisé chez OVH, Community Builder s’est mis a avoir pas mal de bug et problèmes d’affichage. L’affichage sur le front-end se faisait uniquement à la vertical et dans le back-end, le logo avait disparu, l’affichage se faisait aussi à la vertical et il n’est plus possible de voir l’ensemble des plugin.

En réalité le problème vient de chez OVH qui utilise par défaut PHP 4.

La solution est donc de forcer l’utilisation de PHP5. Pour ce faire il suffit tout simplement d’ajouter la ligne SetEnv PHP_VER 5 dans votre fichier .htaccess et le problème sera résolu.

Comment activer l’URL Rewriting sous Joomla.

L’URL Rewriting permet de réécrire une adresse web dans un format lisible et optimisé pour les moteurs de recherches.

Par exemple:

http://www.google.fr/search?hl=fr&q=gnt&btnG=Recherche+Google&meta=&aq=f&oq=

deviendra:

http://www.google.fr/recherche/gnt

Pour l’activer sous Joomla il faut faire et vérifier 5 choses:

1-Activer le module d’Apache2 « rewrite »:

Connectez vous à votre serveur (sous Ubuntu) et tapez simplement:

sudo a2enmod rewrite

2- Vérifier la configuration de votre Virtual host:

Connectez vous à votre serveur et éditez votre virtual host en tapant:

sudo nano /etc/apache2/sites-available/default

Vous devriez avoir quelque chose comme ça:

<VirtualHost *>

<Directory /var/www>
Options FollowSymLinks
AllowOverride none
</Directory>

</VirtualHost>

Remplacer AllowOverride None par AllowOverride all

3- Relancer Apache

sudo /etc/init.d/apache2 restart

4- Renommer htaccess.txt en .htaccess à la racine du site

5- Aller dans la partie adminsitration de Joolma

Site => Configuration Générale => Paramètres SEO => Cocher « URLs explicites (SEF) » et « Utiliser le module Apachemod_rewrite (réécriture au « vol » des URLs) »

Problèmes rencontrés:

Il arrive souvent que certaines images ne s’affichent plus lorsque l’on active SEF ou sh404SEF. C’est le cas par exemple avec le composant Eventlist. Voici la petite astuce pour contourner le problème:

sudo nano /www/includes/application.php

aller ligne 108 (normallement et remplacez $document->setBase(JURI::current()); par $document->setBase(JURI::base());

Je viens enfin de trouver comment afficher l’auteur d’un événement pour le plugin Eventlist de Joomla.

Donc j’écris le code ici pour ne pas l’oublier

Modifier:/components/com_eventlist/views/details/tmpl/default.php

Insérr le code après celui-ci (normalement ligne 101)

<dt class= »category »><?php echo JText::_( ‘CATEGORY’ ).’:'; ?></dt>
<dd class= »category »>
<?php echo « <a href=’ ».JRoute::_( ‘index.php?view=categoryevents&id=’.$this->row->categoryslug ). »‘> ».$this->escape($this->row->catname). »</a> »;?>
</dd>
</dl>

Insérer:

<!– AFFICHE L’AUTEUR DE L’EVENEMENT – DEBUT –>

<dt class= »category »>Post&eacute; par</dt>    <!– Affiche « Posté par ». Adapter selon vos gouts –>
<dd class= »category »>

<a href= »index.php?option=com_comprofiler&amp;task=userProfile&amp;user=<?php echo $this->escape($this->row->created_by); ?>&amp;Itemid=42″ linkindex= »29″ set= »yes »>
<?php
$id_membre = $this->escape($this->row->created_by);
$reponse = mysql_query(« SELECT username FROM jos_users WHERE id=$id_membre »);
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['username'];
}
?>
</a>

<br />

<!– EST SUPPOSE AFFICHER L’AVATAR! NE MARCHE PAS POUR MOI POUR UNE RAISON OBSCURE –>
<a href= »index.php?option=com_comprofiler&amp;task=userProfile&amp;user=<?php echo $this->escape($this->row->created_by); ?>&amp;Itemid=42″ linkindex= »29″ set= »yes »>

<img class= »cbThumbPict » title= »voir le profil du membre » alt= »voir le profil du membre » src= »http://votre_site/ <!–  <= A ADAPTER SELON VOTRE SITE –>

<?php
$id_membre = $this->escape($this->row->created_by);
$reponse = mysql_query(« SELECT avatar FROM jos_comprofiler WHERE id=$id_membre »);
while ($donnees = mysql_fetch_array($reponse) )
{
if ($donnees['avatar']==NULL)
{
$avatar= »components/com_comprofiler/plugin/templates/dark/images/avatar/tnnophoto_n.png »;
echo $avatar;
}
else
{
$image=$donnees['avatar'];
$avatar= »images/comprofiler/$image »;
echo $avatar;
}
}
?> »/>
</a>

</dd>

<!– AFFICHE L’AUTEUR DE L’EVENEMENT – FIN –>

J’ai mis les explications dans le code, donc pas besoin de baratiner.

Bonne journée