THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Hello,

J'essaye de faire mon premier plugin mais un truc m'échappe merci au codeur de m'aider ;-)
J'ai du merder mais ou ?... je récupère pas un lien dynamique (qui bouge en fonction du contenu ou je suis)...
Je me suis inspiré de produit suivant/precedent une idée de ce qui coince ?

<?php
    include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsClassiques.class.php");
    class Dc_contenusuivprec extends PluginsClassiques{

        function dc_contenusuivprec(){
            $this->PluginsClassiques("dc_contenusuivprec");   
        }
       
        function init(){
            // TITRE
            $this->ajout_desc("contenu Suivant/Pr&eacute;d&eacute;dent","Plugin contenu Suivant/Pr&eacute;c&eacute;dent","Ce plugin permet de connaitre le contenu pr&eacute;c&eacute;dent et le contenu suivant.",1);
        }
       
        function destroy(){
        }
       
        function boucle($texte, $args){
        $i=0;
        // récupération des arguments
        $id        = lireTag($args, "id");
        $suivant       = lireTag($args, "suivant");
        $precedent     = lireTag($args, "precedent");
        $dossier   = lireTag($args, "dossier");
        $classement = lireTag($args, "classement");
       
        // préparation de la requete
        if($classement == "manuel") $order = "order by classement";
        else if($classement == "inverse") $order = "order by classement desc";
        else if($classement == "date") $order = "order by datemodif desc";
        else if($classement == "titre") $order = "order by titre";
        else if($classement == "titreinverse") $order = "order by contenudesc.titre desc";
        else $order = "order by classement";

        $search        = "";
        $res        = "";

        if (!empty($dossier)){
            $search1 = "dossier in($dossier)";
        }
               
        //requete
        if($classement != "titre" && $classement != "titreinverse"){
            $query_contenu = "SELECT id FROM contenu WHERE ligne='1' AND $search1 $order";
        } else {
            $query_contenu = "SELECT contenu.id FROM contenu, contenudesc WHERE ligne='1' AND contenu.id=contenudesc.contenu AND $search1 $order";
        }
        $resul_contenu = mysql_query($query_contenu);
        $nb_contenu = mysql_num_rows($resul_contenu);
       
        while($row = mysql_fetch_assoc($resul_contenu)){
            if($row["id"] != $id) { $i++;
            }
            else break;
        }
       
        //récupération de la position de l'élèment suivant et précédent
        $posprec = $i-1;
        $possuiv = $i+1;
       
        //test si la boucle est pour le contenu précédent
        if ($precedent=="1"){
            if ($posprec >= 0){
                if($classement != "titre" && $classement != "titreinverse"){
                    $query_prec = "SELECT id FROM contenu WHERE ligne='1' AND $search1 $order limit $posprec,1";
                } else {
                    $query_prec = "SELECT contenu.id FROM contenu, contenudesc WHERE ligne='1' AND contenu.id=contenudesc.contenu AND $search1 $order limit $posprec,1";
                }               
                $resul_prec = mysql_query($query_prec);
                $cont_prec  = mysql_result($resul_prec, 0);
            }
            else {
                return "";
            }
           
        }
        //test si la boucle est pour le contenu suivant
        if ($suivant=="1"){
            if ($possuiv < $nb_contenu){
                if($classement != "titre" && $classement != "titreinverse"){
                    $query_suiv = "SELECT id FROM contenu WHERE ligne='1' AND $search1 $order limit $possuiv,1";
                } else {
                    $query_suiv = "SELECT contenu.id FROM contenu, contenudesc WHERE ligne='1' AND contenu.id=contenudesc.contenu AND $search1 $order limit $possuiv,1";
                }
               
                $resul_suiv = mysql_query($query_suiv);
                $cont_suiv = mysql_result($resul_suiv, 0);
            }
            else {
                return "";
            }
        }
       
        //renvoie des données
        $temp = str_replace("#REFPREC", "$cont_prec", $texte);
        $temp = str_replace("#REFSUIV", "$cont_suiv", $temp);
        $res .= $temp;
        return $res;
        }

        function action($res){
        }
    }


?>


Ce qui est fait n'est plus à faire ;-)

Offline


J'ai terassé tout le monde avec ma question ? ;-)


Ce qui est fait n'est plus à faire ;-)