Ajouter un nouveau BBCode ? [Réglé]
djikstra Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre djikstra
- Inscrit le : 22/09/2008
J'aimerais pouvoir gérer une nouvelle balise BBCode pour mon site en V3, balise qui serait utilisée sur le forum et/ou les news.
On gère sur notre site un petit concours de pronos, en s'appuyant sur le site www.pronorama.com
Ce site offre un module pronorama, pour afficher, via iframe, un espace de saisie des pronos, ou bien un tableau du classement actuel. Drôlement pratique, pas besoin d'aller sur un nouveau site. Sauf que pour l'intégration, la solution n'est donnée que pour un forum phpBB...
L'idée est donc de créer une balise BBCode [pronorama], pour, lorsqu'on parse le contenu du message, appeler ensuite le code php associé à la génération du tableau dans une iframe.
J'ai trouvé ce message http://www.phpboost.com/forum/topic-4144+parsage-du-bbcode-dans-les-message-du-form.php et je me demandais si je pouvais m'appuyer sur les infos données dans celui-ci...
Bref, toute info sera bonne à prendre

Merci !
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Le code doit être ajouté à la ligne 76 de /kernel/framework/content/content_second_parser.class.php.
Le contenu se trouve dans la variable
$this->content.
N'hésite pas si tu as des questions.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
djikstra Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre djikstra
- Inscrit le : 22/09/2008
Si je résume, le but à atteindre est d'utiliser une nouvelle balise de la forme suivante
Code BBCODE :
[pronorama] idappel=fdsmjkfmzerklmkrmz1782hkhkh08fdsjkfsdlfjsdlfjlruzoerzeozeourzour fonction=prono bordure=000000 competition=1234 regroupement=34ème journée [/pronorama]
ou peut-être mieux:
Code BBCODE :
[pronorama=idappel,bordure,competition]fonction,regroupement[/pronorama]
mieux dans le sens où idappel, bordure, competition ne varieront que très peu, alors que fonction et regroupement peuvent changer selon ce que le posteur veut afficher
Les étapes sont donc:
- dans /kernel/framework/content/parser/bbcode_parser.class.php, implémenter la détection de la nouvelle balise BBCode
- dans /kernel/framework/content/parser/content_second_parser.class.php, implémenter la fonction qui fait appel au site pronorama, pour en retour récupérer le code html
Je fais erreur, j'oublie des trucs ?
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
A quoi ressemble la fonction d'intégration à PHPBB ? On doit pouvoir l'adapter simplement à PHPBoost.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
djikstra Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre djikstra
- Inscrit le : 22/09/2008
Code PHP :
// ----------------------------------------- // [MOD Pronorama pour forum phpBB3] : debut // ----------------------------------------- // Etape 1) Modification du source phpBB3 // Fichier a modifier : [racine du forum]/includes/bbcode.php // Fonction a modifier : bbcode_second_pass() // L'integralite du code PHP ci-dessous doit être ajoute a la fin de cette fonction // (juste avant l'accolade marquant la fin de la fonction) // // Etape 2) Creation d'un BBCode "pronorama" // Utilisation du BBCode : [pronorama]{TEXT}[/pronorama] // Remplacement de l’HTML : [pronorama]{TEXT}[/pronorama] // // Syntaxe d'utilisation du BBCode dans un message : // Consultez le forum Pronorama : "Le MOD Pronorama pour forum phpBB3" // http://www.pronorama.com/forum/ // ------------- // debut du code // ------------- $oldmessage = $message; $newmessage = ''; $url = 'http://www.pronorama.net/pronorama/extern/ticket/'; $erreurd = '[MOD Pronorama pour forum phpBB3] '; $erreurf = ' Si le problème persiste, merci de contacter l'équipe Pronorama en cliquant sur le lien "Contacts" situé dans le bandeau supérieur du site "www.pronorama.com".'; $erreur1 = 'Code erreur = C01 : La communication avec le serveur Pronorama a échoué.'; $erreur2 = 'Code erreur = C02 : Le serveur Pronorama a renvoyé une réponse incorrecte.'; $tabbbc1 = spliti('[pronorama]' , $oldmessage); foreach ($tabbbc1 as $bbc) { $tabbbc2 = spliti('[/pronorama]', $bbc); if (count($tabbbc2) == 1) { $newmessage = $newmessage . $tabbbc2[0]; } else { $contenuglobal = htmlspecialchars_decode($tabbbc2[0]); $tablignescontenu = split("n", $contenuglobal); $parametresurl = ''; foreach ($tablignescontenu as $ligne) { $tabligne=split('=', $ligne, 2); if (count($tabligne) == 2) { switch(strtolower(mb_detect_encoding($tabligne[1]))) { case 'utf-8' : $tabligne[1] = utf8_decode($tabligne[1]); break; default : break; } $parametresurl = $parametresurl . ($parametresurl==''?'?':'&') . $tabligne[0] . '=' . urlencode($tabligne[1]); } } $xhtml = ''; $urlcomplete = $url . $parametresurl; $strxml = @file_get_contents($urlcomplete); if ($strxml) { $xml = @simplexml_load_string($strxml); if ($xml) { $xhtml = (string) $xml->xhtml; } else { $xhtml = $erreurd . $erreur2 . $erreurf; } } else { $xhtml = $erreurd . $erreur1 . $erreurf; } $newmessage = $newmessage . $xhtml; $newmessage = $newmessage . $tabbbc2[1]; } } $message = $newmessage; // ----------- // fin du code // ----------- // --------------------------------------- // [MOD Pronorama pour forum phpBB3] : fin // ---------------------------------------
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Ce code est assez déguelasse et peu évolutif.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
djikstra Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre djikstra
- Inscrit le : 22/09/2008
Code PHP :
// -------------------------------------- // [Mod Pronorama / Site web PHP] : debut // -------------------------------------- // Etape 1) Modification du source de votre site web // L'intégralite du code PHP ci-dessous doit être ajoute dans la page PHP souhaitee // // Etape 2) Adaptation des parametres d'URL // Modifiez la valeur de chacune des variables prefixees par "param_" en fonction du contexte souhaite // Pour plus d'informations, consultez le forum Pronorama : MOD Pronorama "site web PHP" // http://www.pronorama.com/forum/ // ------------- // début du code // ------------- // debut des variables a modifier //idappel (voir site pronorama) $param_idappel = 'idappel'; //fonction: prono - class $param_fonction = 'class'; //Code de la couleur du cadre, au format HTML (hexadecimal, sur 6 caracteres, sans le # $param_bordure = '000000'; //n° competition (voir site pronorama) $param_competition = 'n° competition (voir site pronorama)'; //regroupement: facultatif $param_regroupement = '<nom du regroupement dans cette competition>'; // fin des variables a modifier $parametres_url = '?idappel=' . urlencode($param_idappel) . '&fonction=' . urlencode($param_fonction) . '&bordure=' . urlencode($param_bordure) . '&competition=' . urlencode($param_competition) . '®roupement=' . urlencode($param_regroupement) . ''; $url = 'http://www.pronorama.net/pronorama/extern/ticket/'; $erreurd = '[MOD Pronorama ⁄ Site web] '; $erreurf = ' Si le problème persiste, merci de contacter l'équipe Pronorama en cliquant sur le lien "Contacts" situé dans le bandeau supérieur du site "www.pronorama.com".'; $erreur1 = 'Code erreur = C01 : La communication avec le serveur Pronorama a échoué.'; $erreur2 = 'Code erreur = C02 : Le serveur Pronorama a renvoyé une réponse incorrecte.'; $xhtml = ''; $url_complete = $url . $parametres_url; $strxml = @file_get_contents($url_complete); if ($strxml) { $xml = @simplexml_load_string($strxml); if ($xml) { $xhtml = (string) $xml->xhtml; } else { $xhtml = $erreurd . $erreur2 . $erreurf; } } else { $xhtml = $erreurd . $erreur1 . $erreurf; } echo $xhtml; // ----------- // fin du code // ----------- // ------------------------------------ // [Mod Pronorama / Site web PHP] : fin // ------------------------------------
Les paramètres seront donnés en utilisant la balise [pronorama], il suffit que je construise mon expression régulière pour les récupérer, et ça devrait aller, non ?
Édité par djikstra Le 25/09/2009 à 15h49
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
$param_... sont les paramètres de la balise ?Dans ce cas, effectivement, il faut faire l'expression régulière qui capture dans le fichier content_second_parser.class.php à la ligne que j'ai indiqué et puis les donner à ce code qui me semble a sa place dans une fonction.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
djikstra Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre djikstra
- Inscrit le : 22/09/2008
Code PHP :
[pronorama=idappel,bordure,competition]fonction,regroupement[/pronorama]
ça devrait pouvoir être satisfaisant si jamais je me prends pas trop la tête dessus
djikstra Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre djikstra
- Inscrit le : 22/09/2008
scromx Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre scromx
- Inscrit le : 26/01/2011
Je vous remercie d'avance.
babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
tu peux te faire une idée sur ce post
en comparant le module à télécharger avec le module officiel
attention, c'est un module de travail, à ne surtout pas utiliser en prod
scromx Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre scromx
- Inscrit le : 26/01/2011
babsolune :plop
tu peux te faire une idée sur ce post
en comparant le module à télécharger avec le module officiel
attention, c'est un module de travail, à ne surtout pas utiliser en prod
Merci Babsolune mais j'aimerai juste rajouter ce code en :
<script type="text/javascript"> BBDONNEE = new Window({className: "nuncio", title: "<img src="/upload/MAIL.png"> mail ", top:12, left:12, width:1200, height:540, url: "https://monsitecom/fr/?box=1&protocol=http%3A&direct=write&args=%27s=BBDONNEE%27", showEffectOptions: {duration:1.5}}) win.show(); </script> <a href="#" onclick="BBDONNEE.show();"><img src="/upload/mail.png"> BBDONNEE</a>
exemple : BBDONNEE = Scromx
et mais je ne sais pas ou le mettre et comment vu que c'est du javascript
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Il me semble qu'entre deux balises [html] [/html] cela devrait fonctionner.
Olivier.
Olivier


scromx Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre scromx
- Inscrit le : 26/01/2011
olivierb :
Bonjour scromx,
Il me semble qu'entre deux balises cela devrait fonctionner.
Olivier.
Il me semble qu'entre deux balises cela devrait fonctionner.
Olivier.
En faite j'aimerai le proposer a tous le monde sans passer par le Code
Mais en faire un BB [MSG] [/MSG] par exemple
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
