MyBB.support, le portail francophone de MyBB

Version complète : Connaitre l'ID du forum en cours
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,

je patauge encore un peux avec les variables globales de mybb.
Je voudrais savoir comment dans un plugin je peux connaitre l'ID du forum en cour d'affichage ? (le $fid)


(c'est sans doute evident, mais bon. :-) )
j'ai posé une question idiote ou personne ne sait ? :-)

j'utilise pour l'instant la commande suivante:
Code :
$fid = intval($mybb->input['fid']);

qui me récupère l'ID du forum via les options dans l'URL.

Mais forcement ça ne marche plus quand j'affiche les messages. Dans ce cas je peux récupérer le 'tid' voir le 'pid',mais bon...
C'est que la situation est plus complexe que cela. Dépendamment du "hook" choisit dans le plugin ou du script/template choisi, la variable contenant le numéro du forum est contenu dans $mybb->input['fid'], $fid, $post['fid'], $thread['fid'], etc...

Wink
(11-12-2011, 16:15)exdiogene a écrit : [ -> ]C'est que la situation est plus complexe que cela. Dépendamment du "hook" choisit dans le plugin ou du script/template choisi, la variable contenant le numéro du forum est contenu dans $mybb->input['fid'], $fid, $post['fid'], $thread['fid'], etc...

Wink
merci pour la réponse.
Je commence a mieux comprendre la structure de Mybb, ça va mieux je progresse vite. Passer un forum d'un phpbb trop customisé par un amateur (moi...) en mybb c'est du boulot !


Voila mon petit plugin vite fait:
Code :
<?php
/**
* Change l'image de fond en fonction du forum
*/

// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

$plugins->add_hook("global_start", "bg2forum");

function bg2forum_info()
{
    return array(
        "name"            => "Background to Forum",
        "description"    => "Affiche une image de fond en fonction du forum",
        "website"        => "test",
        "author"        => "h2o",
        "authorsite"    => "test",
        "version"        => "0.1",
        "guid"             => "",
        "compatibility" => "*"
    );
}

function bg2forum() {
    
    global $bg2forum, $mybb;
        
     $fid = intval($mybb->input['fid']);    
     $tid = intval($mybb->input['tid']);
    
     $thread = array();
    
     if($fid == '0' && $tid <> '0')
     {         
          $thread = get_thread($tid);
          $fid = $thread['fid'];
     }    
    
     switch($fid) {
         case 4: // forum 1
           $bg_image = "bgforum1.jpg";
           break;
          
         case 5: // forum 2
           $bg_image = "bgforum2.jpg";
           break;
          
         default: // fond par defaut
            $bg_image = "bgdefaut.jpg";
     }
         
     $bg_css = "<style type='text/css'>
                 body { background-image: url(images/fond/".$bg_image."); background-repeat: repeat; background-attachment: fixed; }
                 </style>";              
     eval("\$bg2forum = \"".$bg_css."\";");
}

?>

Il faut l'adapter bien sur, et éditer le template "headerinclude" et ajouter {$bg2forum}, après {$stylesheets} par exemple.
J'ajouterais plus tard une interface dans l'admin, la possibilité de fond pour la recherche, les panneau de control, enfin ça doit pas être trop compliqué.

 Utilitaire de traduction fourni par Regentronique