MyBB.support, le portail francophone de MyBB

Version complète : créer page PHP avec header forum
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Salut,
j'aimerai créer une page PHP en gardant les header et les footer du forum.
Mais comment faire?

merci
En utilisant le plugin Page Manager :
http://mods.mybb.com/view/page-manager
ce sera plus simple...
non on doit choisir entre header-footer et html ou php sans header-footer!
et j'aimerai les deux :/
Alors, inspire-toi de ça :
http://mybb.fr/thread-4392-post-24300.html#pid24300

Cependant, même si je ne connais pas bien "Page Manager", je ne vois pas pourquoi tu ne pourrais pas inclure le header et le footer ? Dans la mesure où la page est écrite en PHP, tout est possible, me semble-t-il !
si si je peux inclure header et footer.
mais on peut pas mettre sur php quand les deux sont inclus. le php est seulement autorisé quand on choisi une page blanche!
J'ai réussi grâce à ce script :
Code PHP :
<?php
define
("IN_MYBB"1);
define('THIS_SCRIPT''MaPage.php');

require_once 
"./global.php";

$MonTitre "Ma Page PHP";
$MonContenu '';

add_breadcrumb($MonTitre"MaPage.php");

$template='<html>
<head>
<title>'
.$mybb->settings['bbname'].' - '.$MonTitre.'</title>
{$headerinclude}
</head>
<body>
{$header}
{$errors}
{$MonContenu}
{$footer}
</body>
</html>'
;

eval(
"\$my_body = \"".$template."\";");
output_page($my_body);
?>

mais maintenant j'aimerai poser une condition.
Si membre connecté on fait ça, sinon ça.
Comment on peut vérifier? C'est quoi la fonction pour tester si un membre est co?
Pour cela, il est possible de vérifier la variable $mybb->user['uid'] pour savoir s'il est connecté ou non. Valeur 0 si non-connecté ou son UID s'il est connecté!..
Code PHP :
<?php
define
("IN_MYBB"1);
define('THIS_SCRIPT''registerChat.php');

require_once 
"./global.php";

$MonTitre "Ma Page PHP";
$MonContenu '
if($mybb->user['
uid'] == 0) {
echo "Erreur"; 
}
else {
echo "GG";
} '



add_breadcrumb($MonTitre"registerChat.php");

$template='<html>
<head>
<title>'
.$mybb->settings['bbname'].' - '.$MonTitre.'</title>
{$headerinclude}
</head>
<body>
{$header}
{$errors}
{$MonContenu}
{$footer}
</body>
</html>'
;

eval(
"\$my_body = \"".$template."\";");
output_page($my_body);
?>
J'ai une erreur PHP quand je teste ! Sad
Code :
$MonContenu = '
C'est quoi ça ?
Code :
$MonContenu = '';
ça ira mieux !
erreur!
Code PHP :
$MonContenu ' if($mybb->user['uid'] == 0) { echo "Erreur"; } else { echo "GG"; } '
Mais tu ne peux pas mettre du PHP entre guillemets dans une variable voyons !
Essaye comme ça :
Code PHP :
if($mybb->user['uid']) {
    
$MonContenu "Bravo !";
} else {
    
$MonContenu "Erreur !";

D'acc mais si je veux l'adapter dans mon code je fais comment?
j'aimerai garder ma structure :/
Il faut simplement remplacer :
Code PHP :
$MonContenu ' if($mybb->user['uid'] == 0) { echo "Erreur"; } else { echo "GG"; } '

par :
Code PHP :
if($mybb->user['uid']) {
    
$MonContenu "GG";
} else {
    
$MonContenu "Erreur";

Dans $MonContenu, tu peux mettre du HTML mais pas de PHP, si tu veux utiliser PHP pour modifier $MonContenu, il faut le faire à l'extérieur de la variable, par exemple le code suivant affiche le nom de la personne connectée, si quelqu'un est connecté, et en rouge si c'est un administrateur :

Code PHP :
if($mybb->user['uid']) {
    if(
$mybb->user['usergroup'] == 4) {
        
$MonContenu "<span style=\"color: red;\">";
    } else {
        
$MonContenu "<span>";
    }
    
$MonContenu .= "F&eacute;licitations " $mybb->user['username'] . ", vous vous &ecirc;tes connect&eacute;(e) au forum avec succ&egrave;s !</span>";
} else {
     
$MonContenu "Vous n'&ecirc;tes pas connect&eacute;(e) au forum.";

merci beaucoup!
dernière question. J'aimerai récupérer le nom d'utilisateur.
C'est quoi la ft?
La variable $mybb->user te permet de récupérer le contenu de tous les champs de la base de données relatifs au compte d'utilisateur actuellement connecté : $mybb->user['uid'] te donnera l'identifiant, $mybb->user['username'] son nom d'utilisateur (je l'ai utilisé dans mon exemple précédent), ou encore (utilisé également ci-dessus), l'identifiant de son groupe : $mybb->user['usergroup'], son nombre de messages, $mybb->user['postnum'], etc..
Ok et dans le $moncontenu j'aimerai ajouter des variables PHP.
comment je peux faire?

Code PHP :
<?php
define
("IN_MYBB"1);
define('THIS_SCRIPT''registerChat.php');

require_once 
"./global.php";

$MonTitre "Ma Page PHP";
if(
$mybb->user['uid']) {
$MonContenu 'Form goes here'
} else { 
$MonContenu 'Erreur, vous devez être connecté pour continuer!';
}




add_breadcrumb($MonTitre"registerChat.php");

$template='<html>
<head>
<title>'
.$mybb->settings['bbname'].' - '.$MonTitre.'</title>
{$headerinclude}
</head>
<body>
{$header}
{$errors}
{$MonContenu}
{$footer}
</body>
</html>'
;

eval(
"\$my_body = \"".$template."\";");
output_page($my_body);
?>

voilà mon code
et à la place de "form goes here", je veux mettre un formulaire qui traite des données ^^
Là, ça commence à dépasser le support de MyBB, il faudrait que tu apprennes le PHP. Smile

Je vais quand même répondre à ta question : pour insérer une variable dans une chaîne de caractères, il faut la concaténer en utilisant l'opérateur ".", exemple :
Code PHP :
$maVariable 10;
$monTexte "Vous avez " $maVariable " points."
enfait je t'explique!
je connais les bases du PHP mais là ton système va pas être possible...
j'ai un code venant d'un PHPBB, donc très complexe (environ 200 lignes)
le code marche correctement, j'aimerai l'intégrer dans mon code mybb.
donc si uid != 0
ON EXECUTE LE CODE
sinon
echo erreur

tu comprends??
De toute façon, tu ne pourras pas mettre ton code dans une variable s'il contient du PHP.
Pour être évaluée (fonction eval()), il faut que ta variable évaluée (ici $template) ne contienne qu'une chaîne de caractères, ce qui n'est pas le cas avec un bout de code PHP, c'est d'ailleurs pour cela que Page Manager ne permet d'utiliser conjointement les templates header et footer avec PHP.

Les templates sont là pour permettre d'afficher une page formatée : d'afficher, pas de gérer. Regarde les templates, tu n'y verras jamais de traitement d'information, jamais de PHP (sauf avec un certain plugin).

Ce que tu peux essayer, c'est d'installer ce plugin : http://mybbhacks.zingaburga.com/showthread.php?tid=260 et de créer un template contenant :
Code :
<if $mybb->user['uid'] then>
TON CODE
<else/>
Erreur.
</if>

et de créer ta page ainsi :
Code PHP :
<?php
define
("IN_MYBB"1);
define('THIS_SCRIPT''registerChat.php');

require_once 
"./global.php";

$MonTitre "Ma Page PHP";

add_breadcrumb($MonTitre"registerChat.php");

$template='<html>
<head>
<title>'
.$mybb->settings['bbname'].' - '.$MonTitre.'</title>
{$headerinclude}
</head>
<body>
{$header}
{$errors}
{$TON_TEMPLATE}
{$footer}
</body>
</html>'
;

eval(
"\$my_body = \"".$template."\";");
output_page($my_body);
?>

J'ignore totalement si ça fonctionne, mais ça risque pas grand chose d'essayer.
Oui mais y'a pas moyen de présenter le code autrement?
au lieu de faire
$titre
$contenu

echo titre
echo contenu

on pourrait pas faire directement un echo?
là du coup je pourrai faire ma condition
et mettre mon code phpbb simplement entre les accolades { }
Pages : 1 2
 Utilitaire de traduction fourni par Regentronique