Logz forum

questions techniques et discussions générales

Vous n'êtes pas identifié.

Annonce

N'hésitez pas à poser vos questions dans le forum, c'est bien mieux que de m'envoyer des mails, car dans le forum tout le monde profitera des réponses. Pour éviter le spam du forum l'inscription est obligatoire pour poster des messages mais pas pour la lecture des messages, pour être tenu au courant des nouvelles versions du logz inscrivez vous à la mailing liste ici ou mailing liste là (c'est la même)

#1 2009-06-03 10:19:06

Delavy
Utilisateur occasionnel
Lieu: Metz
Date d'inscription: 2009-01-10
Messages: 4
Site web

Une accroche pour les articles.

Voici une astuce pour pouvoir ecrire une accroche à un article, un petit texte qui présente lesdit article dans la catégorie, avec un lien pour suivre et continuer l'article. On à déjà une fonctionalité qui limite le nombre de caractère affichés, mais c'est n'est pas maniable ni précis.
En attendant l'éventuelle intégration de cette fonction en dur dans le logz, voici une façon de le faire assez simplement sois même.

Le principe est simple : on insère un bout de code dans l'article là où on veut qu'il soit coupé dans la catégorie. Cette partie apparaîtra toujours dans l'article en entier, mais c'est une bonne manière d'introduire un texte sur le web : commencer par du concret (pyramide inversée)... Un commentaire du style <!--stoparticle--> donc placé à la fin du premier paragraphe (ou où vous voulez) remplit bien cette fonction : invisible, très court et facile à retenir.

Ensuite en éditant le modèle php, on coupe l'article et on insère un lien vers l'article en entier. En premier il y a la fonction, en deuxième la partie qui l'apelle. Je les ai séparées pour pouvoir les déplacer aisémant, laissant la grosse partie tout en haut et l'autre à son emplacement habituel.

Note :
* pour les articles que vous ne voulez pas couper, il suffit de ne pas mettre le bout de code dans l'article, et il sera affiché en entier
* comme on appelle plus le contenu dynamique, les catégories vides seront vraiment vide, sans l'article de substitution "construction en cour" et son lorem ipsum
*Pour différentier les page d'article des pages de catégorie, j'ai utilisé $_SERVER['QUERY_STRING'] qui contient la variable voulue. On peut donc limiter ce modèle à des catégories précises en spécifiant le nom des catégories.
* Pour changer le bout de code qui annonce la coupure, il suffit de remplacer <!--stoparticle-->  par la formule voulue.
* Le code ne concerne que sur les pages _mod , mais aussi bien sur l'accueil que dans les articles ou catégories (d'ou l'astuces pour le désactiver sur la page d'article).

Le code qui mouline les articles (avec un grand merci à Loz pour son aide précieuse sans laquelle je me serais noyé dans les expressions régulières):

Code:

function to_separe($Articles=null){
    $Result = "";
    $Temp = "";
    global $Categorie;
    foreach($Articles as $Article){
        if(!ereg("^art[=-]",$_SERVER['QUERY_STRING'])){ /* [A] Si après index ? on ne trouve pas art (doncqu'on est dans une cat ou sur l'accueil */
            $BoutsArticle = explode("<!--stoparticle-->",$Article); /*je découpe l'article*/
                $Temp =$BoutsArticle[0]; /*je récupère le premier bout*/
            if(!empty($BoutsArticle[1])){  /* [ A -1 ] si ya un deuxième bout = si l'article avait stoparticle, etait prévu a etre découpé*/
                $Temp .= "</div>"; /*je ferme le div*/
                preg_match("#index.php\?art[=-](\d{1,6})#",$BoutsArticle[1],$IdArticle); /*je cherche l'id de l'article*/
                $Temp .= "<a href=\"".$_SERVER['PHP_SELF']."?art-". $IdArticle[1] . "\" title=\"La page de l'article\" class=\"suitearticle\">La suite de l'article</a>"; /*je la met dans un lien*/
                }
            else{ /* [  A - 2 ]  sinon c'est que yavait qu'un seul bout, l'article était pas pret à être coupé */
                $Temp .="";
            }
            $Result .= $Temp;
        }
        else{ /* [ B ]  sinon je récupère que mon joli article, merci*/
            $Temp = $Article;
            $Result = $Temp;
        }
    }
    return $Result;
}

Ensuite il faut remplacer le bout de php qui apelle le contenu dynamique, par celui qui apelle les articles découpés :
on remplace

Code:

 <?php echo $ContenuDynamique;?>

par

Code:

 <?php  echo to_separe($ArticlesArray);?>

Et voilà ! Amusez vous bien !!

Dernière modification par Delavy (2009-06-03 10:36:01)

Hors ligne

 

#2 2009-06-05 15:13:59

Delavy
Utilisateur occasionnel
Lieu: Metz
Date d'inscription: 2009-01-10
Messages: 4
Site web

Re: Une accroche pour les articles.

Je viens de remarquer que les commentaires n'étaient pas accessibles, car ils viennent du contenu dynamique.
Il faut donc rajouter une condition, dans le foreach mais tout en haut, juste avant le [A] (que l'on transforme en B donc)

Code:

if (isset($_GET['commentaires'])) { /* [ A ]Si on demande les commentaire*/
    $Temp .= $Article;
    $Temp .=  $LesCommentaires.div($FormCommentaires,"textearticle");
    $Result = $Temp;
}

il faut ensuite evidemment transformer le if en dessous en elseif.
Et voilà !!

Hors ligne

 

Pied de page des forums

Powered by FluxBB