Balise code avec php - Parser BbCode

Ce topic a été résolu
DevInput

DevInput Le 29 juin 2017 à 19:48 (Édité le 25 janvier 2019 à 17:53)


Bonjour je voudrai faire comme sur les pages tutos,
quand un utilisateur est connecter il voit sa :
<p>Il voit le code</p>
Par contre quand il est pas connecté il voit un message du genre : 
Il faut etre connecté pour voir les codes.

J'utilise du bbcode pour mes trucs et j'ai réaliser mon propre systeme de parsage de bbcode
<?php 
function showBBcodes($text) {
   // BBcode array
   $find = array(
      '~\[b\](.*?)\[/b\]~s',
      '~\[i\](.*?)\[/i\]~s',
      '~\[u\](.*?)\[/u\]~s',
      '~\[quote\](.*?)\[/quote\]~s',
      '~\[size=(.*?)\](.*?)\[/size\]~s',
      '~\[color=(.*?)\](.*?)\[/color\]~s',
      '~\[url\]((?:ftp|https?)://.*?)\[/url\]~s',
      '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s',
      '~\[code\](.*?)\[/code
\]~s'
);
// HTML tags to replace BBcode
$replace = array(
'<b>$1</b>',
'if(!empty($_SESSION["id"])){<i>$1</i>}else{<p>Vous ne puvez pas voir les texte en italique</p>}',
'<span style="text-decoration:underline;">$1</span>',
'<pre>$1</'.'pre>',
'<span style="font-size:$1px;">$2</span>',
'<span style="color:$1;">$2</span>',
'<a href="$1">$1</a>',
'<img src="$1" alt="" />',
'<pre>$1</pre>'
);
// Replacing the BBcodes with corresponding HTML tags
return preg_replace($find,$replace,$text);
}
?>Merci d'avance pour votre aide
coucougael94

coucougael94 Le 29 juin 2017 à 20:21

Salut nouveau !
Il te suffit de créer une condition puis, si elle est remplie/pas remplie tu ajoute une nouvelle règle de parsage BBCode pour les balises codes.
if(etatUtilisateur == connecté){
   //L'Utilisateur est connecté, on ajoute la règle qui affiche le code correctement
   $find[] = '~\[code\](.*?)\[/code
\]~s';
$replace[] = '<pre>$1</pre>';
} else {
//L'utilisateur n'est pas connecté, on cache le code
$find[] = '~\[code\](.*?)\[/code\]~s';
$replace[] = '<div style="color:red;">Connecte-toi pour découvrir le code de cet article !<br><a href="connexion.php" class="btn">Connexion</a> | <a href="inscription.php" class="btn">Inscription</a></div>';
}
C'était pas compliqué !
Maintenant, te suffit de modifier la condition ligne 1 et tu met le topic en résolu.
DevInput

DevInput Le 1 juillet 2017 à 11:58

Merci bcp,
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte