Une petite pause!

Je vais m’offrir une petite pause de quelques semaines afin de faire migrer ce blogue vers Drupal; vraiment, je suis pissed off de Joomla qui n’est pas très très bien côté SEO.

Malgré le fait que je me sois donné un maximum de mal pour le patcher, il reste énormément de défauts à ce site, presqu’irrémédiables. Je profiterai de la migration pour compléter certains articles, finir d’en traduire d’autres, et revoir la mise en page de ce site dont les besoins ont légèrement changé!

Alors avec tout ça … on se revoit en avril!

Référencement sur Magento

Magento est un excellent CMS dédié au e-commerce, avec une tonne de possibilités qui sont parfois hallucinantes.

On préférera souvent des scripts de boutiques en ligne à Magento, car Magento, c’est gourmand en ressources et c’est fait pour créer d’immenses boutiques, sinon il peut être difficile d’exploiter ses nombreux avantages.

J’aurai plusieurs occasions de revenir sur Magento à l’avenir, je commence tout juste à m’en servir. Le but de cet article était plutôt de diffuser un lien vers un article très intéressant de Yoast, un guide pour référencer Magento, chose qui ne me semble plus aussi ardue qu’à prime abord (beaucoup disent de Magento qu’il n’est pas très SEO mais on peut très bien s’en sortir).

Bonne lecture!

Pistes pour débuter en design Web

Vous désirez vous mettre au design Web de façon plus sérieuse?

Voici quelques pistes en vrac pour éviter des erreurs communes.


Le but de cet article est de conseiller ceux qui se sentent perdus dans le processus de création Web. J’en profite également pour ne faire preuve d’aucune transparence et livrer mes opinions sur le sujet.

S’il y a divergence d’avis sur n’importe quel des points abordés dans l’article, je serai heureux de lire votre opinion dans les commentaires et d’en discuter. Il ne s’agit pas de faits établis, je dis ce que je pense, c’est tout! Je peux me tromper, oh que oui.

Connaître votre direction

Lorsqu’on design une maquette de site Web, on doit toujours garder à l’esprit le résultat final, intégré et en action

Pour débuter l’élaboration d’une maquette Web, veillez à avoir en main le plus d’information possible. Les goûts et visions du client, bien sûr, mais aussi une arborescence détaillée, les technologies qui seront utilisées (flash, html, javascript, cms, etc.), et les fonctionnalités nécessaires

Cela n’a rapport qu’avec le développement du site au niveau programmation me direz-vous; bien au contraire : on conçoit un visuel bien différemment lorsqu’on connait tous les détails d’un projet. On travaille forcément mieux si on peut se faire une idée non-eronnée du produit final.

Certains pourraient être portés à réaliser une maquette de site Web sur Photoshop, puis ensuite se pencher sur l’arborescence, le contenu des pages, etc.

C’est à mon avis une grossière erreur; la conception du visuel doit se faire après avoir décidé grand nombre de ces questions. Le design Web ne relève pas seulement de la création Web (esthétique), il relève de la création du site Web dans son ensemble, du début jusqu’à la fin, en couvrant tous les aspects d’utilisabilité, de structure d’information jusqu’au visuel.

L’ergonomie à tout prix

Ne privilégez jamais un effet, un artifice visuel, au détriment de l’ergonomie. L’utilisabilité du site Web est primordiale, pensez-y constamment lorsque vous êtes en phase de création. À chaque développement du visuel, mettez-vous dans la peau d’un visiteur non expérimenté, et ne fermez jamais les yeux, par paresse, sur des lacunes ergonomiques.

La flexibilité de la mise en page

Certains designers, lorsqu’ils conçoivent un site Web, oublieront carrément l’utilité finale de leur visuel. C’est-à-dire qu’ils n’auront pas forcément pensé au site Web dans sa flexibilité. Voici un exemple typique :

Dans un cas où la maquette est faite dans un fichier de 1000px de large, que se passe t-il si on visionne le site sur un écran gigantesque? ou minuscule? y avez-vous pensé? Votre visuel sera très différent, dépendamment du fond utilisé « au delà » de la zone du site Web. Le site est-il centré, à gauche ou (plus rarement) à droite? etc.

Utilisation de la typographie Web

L’outil majeur du Web, c’est le texte. Par exemple, ne designez pas un menu fait d’images, si la police utilisée est du Arial, noir sur blanc! Jouer avec le texte, conjointement avec du CSS bien pensé, peut mener à une toute autre solution. Le texte sera toujours lisible, peu importe le navigateur, la console ou autre. C’est excellent pour le référencement, c’est « naturel » et ça se télécharge en une fraction de seconde.

La typographie Web, c’est joli et c’est génial dans sa simplicité d’utilisation. Pour décider d’utiliser un menu en images, il faut que l’utilisation de la fonte utilisée soit fortement justifiée et qu’il ne s’agisse pas d’une fonte Web.

Le Web n’est pas de l’imprimé

Des générations vieillissantes auront souvent tendance à vouloir transposer du média imprimé sur le Web. C’est une énorme erreur; le Web prodigue une expérience tout-à-fait particulière, puisqu’il s’agit d’une application interagissant avec un utilisateur, sans compter l’environnement très différent et changeant, avec ses contraintes également changeantes (navigateurs, limites technologiques, ergonomie Web, etc.).

Il est possible d’adapter un design imprimé à du Web, mais il faut prendre le temps de se pencher sur la question et ne pas essayer de tourner les coins ronds. Adapter ne signifie pas copier-coller.

Éléments animés : Flash et compagnie

Bien des gens trouvent très attayant pour un site de posséder des éléments qui s’animent. À côté de cela, un site en HTML bien simple leur parraît statique, ennuyant, voire mort.

L’expérience prolongée prouve que des éléments animés qui ne sont pas réellement utiles à l’expérience utilisateur, finit par taper royalement sur les nerfs de l’utilisateur lorsqu’il retourne sur le site (meilleur exemple : introduction en flash). Un élément animé en boucle, par exemple, perturbera grandement l’attention du visiteur sur le contenu réel du site; c’est donc viser complètement à côté.

Demandez-vous toujours si le flash est réellement utile sur votre site. Le flash ne doit pas être utilisé comme élément décoratif, il doit apporter un plus énorme, qui justifie d’endurer tous les inconvénients du flash. Si on se sert de flash pour faire quelque chose qui soit possible de faire en HTML, c’est du suicide.

N’oubliez pas que du flash n’est pas naturellement référençable. Google peut maintenant lire le texte dans les documents Flash, mais il ne gère pas encore les importations dynamiques, et il existe d’autres problèmes difficiles à appréhender. Il est possible de "simuler" de multiples pages HTML en Flash, mais ça revient à dire ce que j’ai mentionné plus tôt : autant de trouble doit être justifié par un besoin essentiel du flash dans un projet. De toutes façons, on peut faire des trucs vraiment chouettes avec du Javascript à l’aide de librairies comme JQuery et Mootools

Êtes-vous d’accord avec les points mentionnés dans cet article? Qu’en pensez-vous?

Inspirez-vous régulièrement

Comme dans tout, il est rare qu’on réinvente la roue pour du Web. Il existe de nombreux sites qui répertorient de beaux sites faits en CSS et en Flash. Ça peut être une bonne idée de les regarder régulièrement, afin de vous inspirer des dernières tendances … y’a pas de mal à ça! N’hésitez pas à consulter ce site de ressources graphiques.

Voici une liste de ces sites qui publient les meilleurs designs CSS :

Note : Il s’agit d’un flux RSS, revenez plus tard pour davantage de sites, ou proposez les galleries CSS ou une agence web que vous connaissez.

Comment soumettre dans les annuaires

Une façon facile d’améliorer votre positionnement est depuis longtemps et reste de soumettre votre site dans des annuaires. Attention cependant à ne pas vous y prendre n’importe comment!

Inscrire son site dans des annuaires devient vite une activité tout-à-fait blazante (pour ne pas dire chiante) et répétitive. C’est en plein pour ça qu’il faut optimiser son temps de travail pour qu’il soit le plus efficace possible, et souffrir pour du résultat, au moins!

Ne pas soumettre son site de façon massive dans les annuaires

Surtout pour un site jeune, Google trouvera plutôt suspect de voir apparaître plusieurs centaines de backlinks d’un seul coup. Ne prenez pas de risque, inscrivez votre site dans maximum 10 annuaires par semaine. D’abord, votre site ne sera pas accepté partout, car certains annuaires sont abandonnés par leur webmaster, ce qui peut être dur à voir avant d’y soumettre. Ensuite, votre inscription est validée aléatoirement, et Google passe aléatoirement sur ces annuaires, donc il reçoit les backlinks de manière diluée, ce qui joue en votre faveur.

Des titres et des descriptions différentes

Une autre erreur serait d’utiliser la même description pour vos 200 inscriptions dans des annuaires; cela expose au problème du contenu dupliqué la page où se trouve vos site dans l’annuaire. Cela peut du moins empêcher les annuaires de se positionner sur vos requêtes; il est souvent intéressant d’avoir ses annuaires positionnés sous soi dans Google, car vous occupez de façon indirecte plus de terrain et nuisez davantage à vos concurrents. De plus, beaucoup de webmasters d’annuaires vont supprimer les inscriptions qui utilisent du contenu déjà indexé (Moi pareil sur Annuaire Design et Annuaire blogs design).

S’inscrire dans des annuaires , vous vous en doutez, demande une grande capacité de rédaction ainsi qu’un bon dictionnaire des synonymes. Personnellement, j’écris une série de descriptions d’environ 255 mots, toutes complètement différentes. Ensuite, j’utilise chaque description pour 5 annuaires dont je ne connais pas la réactivité. On pourrait dire 3, mais bon, c’est tellement chiant que de se creuser la tête à faire de nouvelles descriptions qu’il vaut mieux être sûr qu’elle servira à quelque chose. Si vous savez que tel ou tel annuaire valide toujours, ou est de très bonne qualité, écrivez une description unique juste pour cet annuaire.

Maintenant, pourquoi des titres différents? Pas pour le contenu dupliqué. Plutôt parce que la plupart du temps, le lien vers votre site est placé sur le titre que vous écrivez, ce qui en fait donc une ancre. Dressez une liste de titres-ancres crédibles, et variez-les régulièrement. Tant qu’à se donner autant de peine à s’inscrire dans des annuaires, autant en profiter pour grimper sur certaines requêtes! Évitez cependant de mettre uniquement une liste de mots clés, soyez raisonnable.

Suivre la progression des validations

Ceci est, selon moi, une étape importante dans votre stratégie de référencement. Si vous vous inscrivez hebdomadairement à une dizaine d’annuaires, vous perdrez vite le fil et vous vous buterez souvent à des annuaires où vous êtes déjà inscris. C’est pourquoi il vaut mieux vous créer une liste (Excel ou Google Spreadsheet), une ligne par annuaire, un X si vous avez soumis et un X si l’annuaire vous a accepté.

Cela vous permettra aussi de cibler les annuaires qui sont rapides, et surtout ceux qui ne valident pas. C’est très utile si vous lancez un deuxième site par la suite, vous reprenez cette liste et vous évitez les annuaires qui ne vous ont pas validé avec une description unique et de qualité! Vous aurez également une idée du nombre d’annuaire où vous êtes réellement inscris et validé.

S’inscrire dans plus d’annuaires, plus rapidement?

Évitez toutes les solutions où se trouve le mot « automatiquement »… la seule manière efficace de s’inscrire dans des annuaires est de le faire soi-même manuellement, un par un; ou bien à l’aide d’un outil .

Un outil « semi-automatique » remplira pour vous toutes les cases du formulaire d’inscription, il ne vous restera plus qu’à entrez le captcha (code de vérification d’humain) et envoyer le tout. Ce genre de méthode sauve du temps au niveau de la saisie des informations dans les champs, ce qui est non-négligeable, mais vous devrez quand même vous fendre le cul en quatre pour fournir beaucoup de descriptions uniques de qualité.

Pour ce faire, il existe un excellent logiciel qui se nomme Yooda Submit (francophone, payant, sur PC). Il fonctionne très bien, permet de mettre plusieurs titres et descriptions différentes, et permet de gérer vos inscription comme décrit plus haut.

Si vous cherchez une solution gratuite, il existe aussi le plugin Firefox InFormEnter. Ce plugin ajoute un bouton à côté de chacun des champs du formulaire d’inscription, qui vous donne accès à une liste pour vos titres, descriptions, courriel, noms, etc. C’est moins rapide que Yooda Submit, mais ça accélère grandement la saisie de vos données.

Choisir ses annuaires

Beaucoup d’annuaires sont littéralement de misérables dépotoires de liens, plus ou moins entretenus et sans critère de qualité. Ce genre d’endroit ne vaut pas la peine de prendre le temps de s’y inscrire. Tous les annuaires ne sont pas bons, il en existe tellement que vous pouvez vous permettre de choisir. Par exemple, vous ne devriez pas être obligé de payer ou de placer un lien de retour pour vous inscrire.

Il existe quelques annuaires de grande qualité où il est un peu difficile de pénétrer, mais il faut toujours essayer car un lien sur ces annuaires vaut bien un lien sur 50 annuaires de piètre qualité. Vous trouverez facilement une liste de ces annuaires sur Google.

Les annuaires généralistes, c’est bien, il y en a pleins; mais si vous trouvez un ou plusieurs annuaires dans votre thématique de site Web, il faudra vous y inscrire. Un lien vers votre site, dans un contexte thématique cohérent, vaut plus qu’un lien vers votre site dans un annuaire généraliste.

Un dernier conseil : évitez les annuaires de flux RSS lorsque votre site est bien jeune. Ces annuaires sont plus « importants » que vous aux yeux de Google, et puisqu’ils publient votre contenu (soit votre arme majeure), ils peuvent facilement vous voler votre position sur vos requêtes, voire même vous faire punir pour contenu dupliqué par Google!

De plus, tronquez vos fils RSS pour ne laisser diffuser qu’une petite introduction à l’article, cela vous évitera bien des ennuis sur Google. Notez cependant qu’il est par la suite très intéressant de vous inscrire sur ces annuaires, car ils vous donnent des liens en profondeur, qui se mettent tout seuls à jour lorsque vous écrivez un nouvel article. Si vous n’avez pas de fil RSS sur votre site Web, je vous conseille de lire mon article sur les flux RSS dynamiques.

Pour compléter cet article, je vous conseille de jeter un coup d’oeil à ces annuaires qui valident rapidement. Ces annuaires, de qualité ou pas, sont pratiques pour obtenir des résultats rapidement.

Référencement sur WordPress

Il existe un bon paquet de plugins pour optimiser le référencement d’un site WordPress… mais lesquels choisir?

Après avoir fait quelques essais, je trouve que le plugin WordPress le plus efficace pour le SEO est All in one SEO. Il vous permet de personnaliser les balises <title>, métas description et keywords de chacuns de vos articles, le tout très facilement. Ces personnalisations sont essentielles à un bon référencement.

Il manque à All in one SEO quelques fonctionnalités relatives aux Metas que peut compléter le plugin Meta Robots de Yoast.

Vous avez également accès à une panoplie d’options dans la page de configuration, notamment empêcher l’indexation de pages tags ou catégories, afin de gérer avec précaution les risques de contenu dupliqué.

Je conseillerais aussi SEO Smart Links qui crée automatiquement des liens vers vos pages de catégories et de mots clés, lorsque ces mots se trouvent dans votre contenu. Si vous indexez les pages de catégories et de mots clés, ça peut être une bonne manière de créer beaucoup de liens internes, le tout automatiquement. Ça ne fonctionne pas toujours, dépendamment de la mise en forme du texte, mais bon, faut pas trop en demander non plus…

Une autre astuce, efficace autant pour le référencement auprès des moteurs de recherche que pour vos visiteurs humains : lister vos articles qui traitent de sujets connexes. Et ça, Yet Another Related Posts Plugin vous permet de le faire automatiquement. C’est pas mal pour le SEO; vos liens ont plus de poids puisqu’ils envoient vers des pages ayant une thématique similaire. Enfin, je crois. Sinon, les visiteurs qui lisent votre article seront certainement intéressés par d’autres articles qui traitent d’un sujet semblable.

Connaissez-vous d’autres bons (meilleurs?) plugins WordPress pour optimiser le référencement des articles?

WordPress : Sauvegarde complète

La plupart des plugins WordPress vous permettent de sauvegarder votre base de données automatiquement, mais qu’en est-il de vos fichiers? Heureusement, il existe également un plugin pour ça!

Voici les deux plugins qu’il vous faut pour être à l’abris de la poisse :

Sauvegarder vos fichiers WordPress

Le plugin qui vous permettra de faire un backup de vos fichiers WordPress s’apelle WordPress Backup. Original comme nom, n’est-ce pas? pas étonnant qu’on ne le trouve pas!

WordPress Backup, une fois installé, crée trois fichiers zippés de répertoires du même nom :

  • uploads.zip
  • theme.zip
  • plugins.zip

Vous pouvez configurer le plugin pour programmer ses sauvegardes, exclure des fichiers, etc. C’est un plugin bien simple et qui fonctionne bien!

Sauvegarder votre base de données wordpress

Tant qu’à y être, parlons aussi des plugins de backup de base de données pour WordPress. Il en existe plusieurs, mais l’un des meilleurs (ou des plus simples) est selon moi DBC Backup. Il vous permet de scéduler vos sauvegardes de bases de données, ce qui est fortement conseillé, car la nature humaine est peu disciplinée lorsqu’il est question de faire des sauvegardes manuelles régulières!

I do follow!

Les commentaires de ce blog sont maintenant en DOFOLLOW!

Mais qu’est-ce que le dofollow?!

Lorsqu’on fait un lien vers un autre site, il est possible de donner l’attribut nofollow. Cela indique à Google de suivre le lien mais de n’accorder aucune importance à ce lien. C’est fâcheux, car l’un des principaux avantages que quelqu’un d’autre fasse un lien vers votre site, c’est que ça vous apporte un précieux backlink supplémentaire, et cela vous rend plus important aux yeux de Google; ce qu’empêche malheureusement le nofollow.

Le fait est que plus il y a de liens sortants (en dofollow) dans une page donnée, plus l’importance de chacun est divisée. C’est pourquoi bien des bloggeurs auront tendance à ne donner aucune importance aux liens de ceux qui commentent, afin de ne pas réduire l’importance de leurs propres liens vers des pages internes.

D’un autre côté, si un visiteur fait un commentaire pertinent, consistant et contribue grâce à cela au contenu de votre site, la moindre des choses est de le récompenser avec un backlink gratuit qui n’est pas en nofollow. On ne se cachera pas, beaucoup de gens rédigent des commentaires à la volée juste pour ça, quoique ça puisse souvent être une bonne motivation pour certains de faire un commentaire intéressant qu’ils auraient gardé sinon pour eux. Il ne faut pas oublier qu’il s’agit de contenu ajouté gratuitement par la personne qui commente. En gros, c’est un échange de bons services.

Il ne faut pas trop exagérer, par exemple utiliser comme pseudo des ancres de texte afin d’améliorer directement son référencement (ex : poker texas hold’em), mais ça peut être toléré, même si plusieurs éditeurs de blogues considèrent ça comme un manque de respect flagrant.

Pour ma part, si des gens commentent, si c’est un commentaire raisonnablement intéressant, je validerai toujours.

Si vous avez un blogue WordPress, voici comment faire pour mettre vos commentaires en dofollow.

Pour Joomla!, si vous utilisez !JoomlaComments, il est possible faire un petit hack manuel pour mettre les liens des commentaires en dofollow.

Edit : C’est pas parce que je permets le dofollow dans les commentaires qu’il faut me prendre pour un con : les commentaires du genre "Merci bon article" point barre, y’a peu de chances pour que je laisse le lien. Moi quand je spamme les blogues des autres, je me force un peu le cul pour écrire plusieurs lignes quelque chose qui a du bon sens…

!JoomlaComments en dofollow

!JoomlaComments est un composant assez bien connu qui sert, comme vous vous en doutez, à gérer des commentaires sur un site Joomla!. Par défaut, les liens des commentaires sont en nofollow et il n’est pas possible de paramétrer ce détail assez important.

Donc, si par hasard vous désirez mettre les liens des commentaires en dofollow, il vous faut effectuer un petit hack au coeur du script lui-même :

Ouvrez le fichier /components/com_comments/joscomment/comment.class.php et chercher « nofollow », ce qui devrait vous amener aux alentours de la ligne 2293 à ceci :

$website = «  « ;

Il vu suffit d’enlever l’attribut « nofollow » :

$website = «  « ;

C’est tout! C’est à parier que dans les versions futures de !Joomlacomments, on pourra peut-être bien paramétrer le do/nofollow.

 

Plugin Joomla! pour des espaces insécables dans le contenu

Voici un petit plugin pour Joomla 1.5.x qui permet de remplacer automatiquement les espaces sécables par des espaces insécables dans un article.

Ce plugin s’adresse surtout à ceux qui désirent pousser l’obsession (l’observation) des règles typographiques jusqu’au bout. Selon ces règles, plusieurs caractères ne doivent pas être coupés par un retour de ligne.

Note : Un article est en préparation pour spécifier les différents types de règles typographiques selon les pays (avec sources).

Le plugin place simplement l’entité HTML &nbsp; à la place des espaces sécables pour les caractères concernés. Lors de la rédaction de votre article, vous devez tout de même écrire une espace normale, sans quoi le plugin prendra pour acquis que vous ne désirez pas mettre d’espace du tout.

Notez qu’au Québec, il ne faut pas insérer d’espace avant le point d’exclamation et le point d’interrogation; je les ai quand même inclus au cas où des cousins de la francophonie aimeraient se servir du plugin.

Vous pouvez constater ce plugin en action sur ce blog. Ce n’est rien de très compliqué, mais c’est quand même utile.

Groupes d’utilisateurs personnalisés Joomla! + Community Builder

Il n’existe pas encore de fonctionnalité implémentée dans Joomla pour avoir des groupes d’utilisateurs personnalisés selon votre besoin. Vous êtes obligés de vous en tenir aux groupes par défaut, à moins d’utiliser JaCL (commercial), ce qui n’est pas toujours acceptable, dépendamment du projet.

Si vous utilisez Community Builder, et que vous souhaitez avoir différents groupes d’utilisateurs possédant chacun des onglets (et des champs, donc) propres à eux, il existe une solution.

Il est possible d’attribuer un onglet spécialement à un groupe d’utilisateurs; il suffit de répartir judicieusement les champs de profiles selon les onglets, pour pouvoir afficher ou ne pas afficher un onglet, dépendament du groupe auquel appartient l’utilisateur.

Cet article vous montre comment appliquer un hack manuel à Joomla 1.5.x pour permettre l’utilisation de groupes différents et personnalisés pour Community Builder.

Je préfère vous conseiller dès maintenant de faire des copies de sauvegarde de tous les fichiers que vous allez modifier, car c’est vraiment de la bidouille!

Les versions de Joomla et CB utilisées pour l’exemple sont Joomla! 1.5.9 et Community Builder 1.2 RC4.

Créer des groupes personnalisés dans Joomla

La première étape consiste à créer des groupes personnalisés dans Joomla. Pour le besoin de l’article, disons que nous réalisons un site pour une communauté comprenant deux groupes d’utilisateurs : des employeurs et des personnes qui cherchent un emploi.

Cette unique partie est tirée de la documentation Joomla, réintégrée ici dans le souci de faire un tutoriel vraiment complet (ne suivez cependant pas les instruction sur la page de documentation, elles ne sont plus à jour).

Le bidouillage commence en force ici : il faut modifier la base de données, puis exécuter un script pour la restructurer correctement. Je n’expliquerai ici pas trop comment fonctionne la table qui contient les groupes d’utilisateurs dans Joomla; je me bornerai à expliquer comment la modifier à notre guise.

Accédez à votre base de données (avec l’outil PHPmyAdmin dans mon cas). Trouvez la table des groupes, qui s’apelle « jos_core_acl_aro_groups ». Par défaut, le préfixe de table est « jos », mais vérifiez cette information et remplacez le préfixe « jos » par le vôtre s’il est différent. Dans tous les exemples nous utiliserons « jos » comme préfixe; n’oubliez pas de le changer partout!

Insérer groupes personnalisés

Donc dans PHPmyAdmin, j’accède à la table « jos_core_acl_aro_groups ». Cette table contient tous mes groupes d’utilisateurs. Nous allons donc insérer deux nouveaux groupes : un pour les employés et un pour les employeurs (ou ce qui vous conviendra). Ce qui est important, c’est de correctement spécifier comme parent_id le id du groupe d’utilisateurs parent. Dans notre cas, ce sera simplement Registered (id : 18). Donc nous insérons ces deux groupes, en spécifiant uniquement le parent_id.

Nos groupes sont insérés, mais incorrectement hiérarchisés car cette table utilise un système de hiérarchisation qui repose sur une borne gauche et droite (nombres), qui selon certains calculs permettent de spécifier quel groupe est imbriqué dans quel groupe. Pas de panique : on a un script pour regénérer les bonnes bornes pour nos deux nouveaux groupes.

Créez un fichier nommé rebuild.php, placez-le à la racine de votre site Joomla, en mettant ceci dedans :

parent_id in Joomla this is the value of the parent_id field of the Root record
// 1-> start the left tree at 1
rebuild_tree ( 0 , 1);

function rebuild_tree($parent_id, $left) {

// the right value of this node is the left value + 1
$right = $left+1;

// get all children of this node
$result = mysql_query(‘SELECT id FROM jos_core_acl_aro_groups ‘.
‘WHERE parent_id= »‘.$parent_id.' »;’);
while ($row = mysql_fetch_array($result)) {
// recursive execution of this function for each
// child of this node
// $right is the current right value, which is
// incremented by the rebuild_tree function
$right = rebuild_tree($row[‘id’], $right);
}

// we’ve got the left value, and now that we’ve processed
// the children of this node we also know the right value
mysql_query(‘UPDATE jos_core_acl_aro_groups SET lft=’.$left.’, rgt=’.
$right.’ WHERE id= »‘.$parent_id.' »;’);

// return the right value of this node + 1
return $right+1;
}
?>

…en changeant bien sûr « NOM_DUTILISATEUR », « MOT_DE_PASSE_BD » et « NOM_DE_LA_BD » par le nom d’utilisateur, le mot de passe et le nom de la BD.

Lancez le script dans votre navigateur, en accédant la page rebuild.php. Normalement, vous ne devriez rien remarquer, le script n’écrit aucune confirmation (donc une page blanche). Allez vérifier de quoi ça a l’air dans la base de données si vous comprenez un peu le système de structure hiérarchique des groupes, sinon faites-vous confiance et passez à l’étape suivante.

Configurer bornes correctes pour les groupes

Un indice : normalement vos deux nouveaux groupes devraient maintenant avoir une nouvelle valeur, autre que zéro, pour les colonnes « lft » et « rgt ». Sinon, je crois bien que vous avez dû mal spécifier les informations de connexion à la base de données, ou bien vous avez mal changé les noms des tables dans les requêtes.

Configurer le groupe de l'utilisateur

Un autre bon moyen de vérifier si tout est en ordre serait de vous rendre dans la Gestion des utilisateurs (Administration Joomla), sélectionnez un utilisateur et vérifiez que vous pouvez lui attribuer les groupes personnalisés que vous venez de créer.

Comment distribuer les profils appartenant aux groupes d’utilisateurs correspondants?

Le principe est simple : Il est possible, dans Community Builder, d’attribuer un groupe d’utilisateurs à un onglet.

Pour continuer l’exemple, rendez-vous dans la page composant de Community Builder, cliquez sur Tab Management et créez deux nouveaux onglets :

« Historique d’entreprise » : Attribuez cet onglet au groupe « Employeur », et n’oubliez pas de le publier.

« Expériences d’emploi » : Attribuez cet onglet au groupe « Employé », et n’oubliez pas de le publier.

Chaque groupe d’utilisateur personnalisé possède maintenant un onglet juste pour lui. Comme les onglets ne s’afficheront pas s’ils ne contiennent pas de champs, allez maintenant dans Field Management, et créez pour chacun de ces deux nouveaux onglets un champs (du même nom que l’onglet, on va dire), en n’oubliant pas de les placer chacun d’eux dans l’onglet correspondant.

Il est maintenant temps de s’attaquer à une problématique plutôt désagréable. Nous avons certes créé les deux groupes personnalisés d’utilisateurs, mais il n’existe en réalité dans Joomla que 3 niveaux d’accès : « publique », « enregistré » et « spécial ». Ces niveaux s’embriquent, c’est à dire que l’utilisateur « spécial » possède aussi les droits de l’utilisateur « enregistré ». Ça nous cause un certain problème, car nous souhaitons, dans cet exemple, que chaque utilisateur ait ses propres onglets, sans aucun mélange!

Par exemple, l’employeur possède dans son profil un onglet pour décrire l’historique de son entreprise, mais l’employé n’a pas besoin de cet onglet! Forcément, l’un des deux groupes aura plus de droits que l’autre, il faut donc trouver un moyen de les rendre réellement indépendants l’un de l’autre.

Il existe une solution un peu « broche à foin » : il faut appliquer un hack aux fichiers de Community Builder pour que les onglets soient réellement bien répartis. C’est maintenant que la chirurgie à coeur ouvert commence, n’oubliez pas de faire une copie de sauvegarde du fichier avant toute modification! Les numéros de ligne de code sont donnés pour la version CB 1.2 RC4, si vous possédez une version antérieure, recherchez les mêmes lignes mais leur emplacement peut avoir changé. Il y aura trois remplacements à faire, notez que nous laissons l’ancienne ligne en commenté dans le fichier.

Ouvrez le fichier [VOTRE SITE]/administrator/components/com_comprofiler/comprofiler.class.php

Cherchez cette ligne de code (ligne 3036) :

. « \n AND t.useraccessgroupid IN (« .implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))). ») »;

Remplacez-là par ceci :

// . « \n AND t.useraccessgroupid IN (« .implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))). ») »
. « \n AND (t.useraccessgroupid = « .$user->gid. » OR t.useraccessgroupid = -2) AND t.enabled = 1″

Cherchez cette ligne de code (ligne 3493) :

$sql .= « \n AND t.useraccessgroupid IN ( » . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . « ) »;

Remplacez-là par ceci :

// $sql .= « \n AND t.useraccessgroupid IN ( » . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . « ) »;
$sql .= « \n AND (t.useraccessgroupid = « .$user->gid. » OR t.useraccessgroupid = -2) AND t.enabled = 1″;

Cherchez cette ligne de code (ligne 3550) :

$where[] = ‘t.useraccessgroupid IN (‘ . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . ‘)’;

Remplacez-là par ceci :

//$where[] = ‘t.useraccessgroupid IN (‘ . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . ‘)’;
$where[] = ‘(t.useraccessgroupid = ‘ . $user->gid . ‘ OR t.useraccessgroupid = -2)’;

Ça y’est, votre fichier est correctement patché!

Donc si vous faites un test en créant un utilisateur pour chaque groupe d’utilisateurs, chaque compte utilisateur devrait normalement avoir son onglet personnalisé dans son profil.

Comment répartir les différents utilisateurs dans les bons groupes?

Maintenant que l’affichage de champs personnalisés pour des groupes d’utilisateurs personnalisés fonctionne, il faut s’attaquer à un autre problème : comment faire pour distribuer automatiquement les bons groupes aux bons utilisateurs?

En les laissant choisir!

Fort heureusement pour nous, il existe un plugin pour ça : CB JLS Group Selection, créé par Jorge Luis Savoini. Attention, ce plugin fonctionne uniquement pour Community Builder 1.2 RC3 !

Après avoir téléchargé le plugin, installez-le (au bas de la page Plugin Management du composant Community Builder).

Dans Field Management, créez un nouveau champs appelé précisément « cb_usertype », de type « Drop Down (Single Select) »). Entrez deux valeurs, soit les noms exacts de vos deux groupes, dans notre exemple « employe » et « employeur ».

Cliquez sur le plugin (JLSGroupSelector) dans la liste de la page Plugin Management pour le configurer.

Maintenant qu’il est possible pour tout le monde d’accéder à la configuration du plugin JLS Group Selection, assurez-vous que le plugin est bien publié ET activé (enabled).

Il vous suffit de demander obligatoirement à l’utilisateur de répondre au champ « cb_usertype » à l’enregistrement pour le forcer à choisir son groupe!

Voilà, c’est tout! C’est bien complexe pour quelque chose qui devrait pourtant être très simple…

J’aimerais remercier Jorge Luis Savoini pour l’aide qu’il m’a apporté afin de solutionner le problème dont est sujet cet article, et pour son plugin très utile!