Accueil - la tête dans le code - Articles au hasard: pour suggérer la lecture d'autres articles à vos visiteurs ( PluXml )

Partagez avec vos amis ...

Articles au hasard: pour suggérer la lecture d'autres articles à vos visiteurs ( PluXml )

Pour les 'articles au hasard',si vous utiliser PluXml, vous pouvez facilement suggérer à vos visiteurs d'autres articles à lire sur votre site, comme il est fait et affiché ici, en bas de page. Juste un fichier à créer et un ' bout de code ' à intégrer dans votre thème et le tour est joué ...
Installer des ' suggestions de lecture ' ou la fonction ' articles au hasard ', sous PluXml est chose plus facile et beaucoup plus simple que l'on ne pourrait le penser ...
Cette possibilité est fort pratique et très facile à installer.
Il ne s'agit nullement de mettre en place une autre sorte de ' linking interne ', mais bel et bien de placer quelques lignes, destinée à inviter les visiteurs à lire d'autres articles déjà en ligne, d'autres articles déjà publiés.
Tout se passe en ' PHP ', mais si vous ne le maîtrisez pas, aucun soucis, il ne vous reste juste qu'à prendre ce qui se trouve ci-dessous ;)

Comment installer les suggestions de lecture.

Pour ce faire, il vous faut créer un fichier ' suggestions.php ' que vous placerez au même niveau que les autres fichiers de votre thème, fichier dont vous trouverez le code ci-dessous. Il ne vous restera ensuite qu'à en paramétrer l'affichage et à le mettre en fonction via une simple petite ligne de code placée dans votre fichier ' article.php ' ou ' sidebar.php ', enfin ... là où vous désirez qu'elles s'affichent.

Paramètres des suggestions.

Les paramètres pour  modifier le fichier et l'affichage du nombre de suggestions de lecture sont très simples :
- vous pouvez changer le nombre de liens affichés, via la variable " $max = 5 " ( lignes 12 et 99 ), qui va dans ce cas afficher 5 articles à lire ...
- vous pouvez également changer le nombre de caractères inscrits dans chaque lien, via la variable ' $maxSeek = 350 ' qui donne le nombre maximum de ces caractères ( lignes 12 et 99 ) ...
- si vous désirez aller encore plus loin, " $cat_id = '' " vous permet par exemple d'imposer des suggestions vers les articles d'une catégorie définie, ainsi que d'autres changements qui seront plutôt là réservés aux ' codeurs ' ...

Le code du fichier suggestions.php

Faire un copier/coller, via notepad++, par exemple et sauvegarder ce fichier au même niveau que tous les autres fichiers de votre thème actuel. ( il est ici livré brut de coffrage avec les différents commentaires )
<?php
    /**
    * Méthode qui affiche une liste d'articles au hasard dans la même catégorie.
    *
    * @param    max      nombre d'articles maximum affichés
    * @param    cat_id   id de la catégorie cible (1,home)
    * @param    maxSeek  nombres d'articles les plus rescents à parser
    * @param    exclude  id de l'article à exclure
    * @return   stdout
    * @author   Amaury GRAILLAT, Florent MONTHEL
    **/
    function suggestion ($max = 5, $cat_id = '', $maxSeek = 350, $exclude = -1)
    {
        # Récupération des instances :
        $plxShow_inst = plxShow::getInstance();
        $plxMotor_inst = plxMotor::getInstance();
   
        #Génération de notre motif
        if (empty ($cat_id))
            $motif = '/[0-9]{4}.[0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
        elseif ($cat_id == 'home')
            $motif = '/[0-9]{4}.(home[0-9,]*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
        else
            $motif = '/[0-9]{4}.[0-9,]*'.str_pad ($cat_id, 3, '0', STR_PAD_LEFT).'[0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';

        #Nouvel objet plxGlob et récupération des fichiers
        $plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow_inst->plxMotor->aConf['racine_articles']);

        $aFiles = $plxGlob_arts->query ($motif, 'art', 'rsort', 0, $maxSeek, 'before');

        #On parse les fichiers
        if (is_array ($aFiles))
        {
            #On a des fichiers
            foreach ($aFiles as $v)
            {
                #On parcourt tous les fichiers
                $array[] = $plxShow_inst->plxMotor->parseArticle (PLX_ROOT.$plxShow_inst->plxMotor-> aConf['racine_articles'].$v);
                #On stocke les enregistrements dans un objet plxRecord
                $plxRecord_arts = new plxRecord ($array);
            }
        }


        if ($plxGlob_arts->count AND $plxRecord_arts->size)
        {
            #On a des articles

            //Pas plus qu'on en a...
            if ($maxSeek > $plxGlob_arts->count)
            $maxPars = $plxGlob_arts->count - 1;
            else
            $maxPars = $maxSeek - 1;

            if ($max > $maxPars)
            $max = $maxPars;

            #On boucle sur nos articles
            $used = array ();
            $loop = 0;

            while ($loop < $max)
            {
                for ($antilag = 0; $antilag < $maxPars * 2; $antilag++)
                {
                    $plxRecord_arts->i = rand (1, $maxPars);
                    if (!$used[$plxRecord_arts->i])
                    {
                        $used[$plxRecord_arts->i] = true;
                        break;
                    }
                }

                $num = intval ($plxRecord_arts->f ('numero'));

                if ($num != $exclude && $antilag < $maxPars * 2)    //Si l'article n'est pas exclu, on l'affiche
                {
                    #On genère notre ligne
                    $row = '<a href="'.'./?article'.$num.'/'.$plxRecord_arts->f ('url').'">'.htmlspecialchars ($plxRecord_arts->f ('title'),ENT_QUOTES, PLX_CHARSET).'</a>';
                    echo '<li>'.$row.'</li>';
                    $loop++;
                }
                else $loop += 0.1;    // Système antilag, mais évite quand même d'afficher
                                    // que 4 titres au lieu de 5 quand on a trouvé un exclu. J'assume.
            }
        }
    }

    $plxShow_inst = plxShow::getInstance();
    $plxMotor_inst = plxMotor::getInstance();
   
    $artId = $plxMotor_inst->plxRecord_arts->f ('numero');    //cet article
   
    // Gestion du multi-catégorie : prend une des catégories au hasard.
    $catIdSel = $plxMotor_inst->plxRecord_arts->f ('categorie');
    $catIdSel = explode (',', $catIdSel);
    $catIdSel = array_rand ($catIdSel);
       
    suggestion (5, $catIdSel, 350, $artId);
?>

Mise en fonction de son affichage.

Placez ceci:
                <p>autres articles à lire :</p>
                   <ul>
    <?php include(dirname(__FILE__).'/suggestion.php'); ?>
    </ul>
là où vous désirez que vos liens soient affichés ...
Et hop, le tour est joué !
Vous pouvez le voir en 'action' ici plus bas, vos visiteurs auront donc à chaque passage, dans chaque, une petit plus qui les invitera à aller lire d'autres articles de votre site, des liens générés aléatoirement et qui ne seront jamais les mêmes, intéressant pour leur faire découvrir ce qu'ils n'auraient peut-être pas pensé à aller lire ;)

autres articles à lire :

Tous les articles ainsi que le contenu de ce site, comme indiqué en pages index, cgu et informations, sont mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, distribuer et modifier tant que cette note apparaît clairement:  "Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 3.0 France", ainsi que la provenance de contenu relayé. Leur utilisation, totale, en ligne, sur ce site est réservée à refOK.fr

1 commentaire

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est la dernière lettre du mot rgpln ?

Pour laisser un petit avis au passage, nul besoin d'avoir un site ou une adresse Internet, juste se donner un 'pseudo' ...
Les commentaires sont en 'dofollow', mais modérés à priori. Ils ne seront publiés qu'après vérification de votre message.
Si vous pensez ou désirez obtenir un backlink, votre commentaire doit être construit de manière cohérente, rédigé correctement ET avoir un minimum de contenu et de pertinence.