Forum PHPBoost
Bonjour,
Nous avons fait un site avec PHPBoost. Sur le forum, on échange souvent du code, or, si ils sont longs, c'est pas facile de les sélectionner.
Sur certain site, il y a un système afin de sélectionner automatiquement tout le code dans une zone de code.
Est-ce que ça existe sur PHPBoost ou faut-il le faire soit même ? Si il faut le faire, comment s'y prendre ?
Merci d'avance
Cordialement
Jagang
Nous avons fait un site avec PHPBoost. Sur le forum, on échange souvent du code, or, si ils sont longs, c'est pas facile de les sélectionner.
Sur certain site, il y a un système afin de sélectionner automatiquement tout le code dans une zone de code.
Est-ce que ça existe sur PHPBoost ou faut-il le faire soit même ? Si il faut le faire, comment s'y prendre ?
Merci d'avance
Cordialement
Jagang
Bonsoir,
Sur Phpboost, ce que tu demandes n'existe pas, en revanche, ceci peut t'intéresser. C'est le seul moyen afin de saisir du code.
Benji
Sur Phpboost, ce que tu demandes n'existe pas, en revanche, ceci peut t'intéresser. C'est le seul moyen afin de saisir du code.
Benji
Il n'y a pas la possibilité de sélectionner tout le code tel que le système est actuellement.
En revanche, je t'indique où est le code qui traite l'affichage de la balise code. Ca se passe dans /kernel/framework/content/parser/content_second_parser.class.php.
A la ligne 187 c'est pour les blocs de code, à la ligne 191 c'est pour mettre seulement une ligne en inline.
A cet endroit, le code rentré par l'utilisateur donc pas coloré (donc sans le formatage HTML) est dans $matches[4].
En revanche, je t'indique où est le code qui traite l'affichage de la balise code. Ca se passe dans /kernel/framework/content/parser/content_second_parser.class.php.
A la ligne 187 c'est pour les blocs de code, à la ligne 191 c'est pour mettre seulement une ligne en inline.
A cet endroit, le code rentré par l'utilisateur donc pas coloré (donc sans le formatage HTML) est dans $matches[4].
____________________
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++:
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."
Merci bien de ton aide, je vais regarder ça dès que je peut, actuellement, le site ne fonctionne plus, mais ça viens de chez moi ...
Mais j'ai pas compris un truc, on peut avoir un bout de code en inline ? Comment fait-on en BBCode ?
Merci de ton aide
Cordialement
Jagang
Mais j'ai pas compris un truc, on peut avoir un bout de code en inline ? Comment fait-on en BBCode ?
Merci de ton aide
Cordialement
Jagang
Voici comment j'ai fait (soit pour aider les gens soit pour que l'on me crie dessus parce que j'ai pas mis ce qu'il faut où il faut) :
Déjà, la fonction qui sélectionne le code :
Code JAVASCRIPT :
Je l'ai mise à la fin du fichier global.js, ne sachant pas où le mettre. C'est bien ?
Ensuite, dans /kernel/framework/content/parser/content_second_parser.class.php j'ai changé la fonction comme ceci (ligne 175) :
Code PHP :
$identifiantNumeriqueDuCode permet d'avoir un identifiant unique par chargement pour pouvoir correctement sélectionner le code.
$randTxt permet d'avoir un identifiant unique par page, pour éviter d'avoir des problèmes à cause de la prévisualisation.
Voila, ai-je bien fait les chose ?
Cordialement
Jagang
Edité par Jagang Le 09/03/11 à 01h09
Déjà, la fonction qui sélectionne le code :
Code JAVASCRIPT :
// Sélectionne tout le code function selectCode(a) { // Get ID of code block var e = document.getElementById(a); // Not IE if (window.getSelection) { var s = window.getSelection(); // Safari if (s.setBaseAndExtent) { s.setBaseAndExtent(e, 0, e, e.innerText.length - 1); } // Firefox and Opera else { var r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } } // Some older browsers else if (document.getSelection) { var s = document.getSelection(); var r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } // IE else if (document.selection) { var r = document.body.createTextRange(); r.moveToElementText(e); r.select(); } }
Je l'ai mise à la fin du fichier global.js, ne sachant pas où le mettre. C'est bien ?
Ensuite, dans /kernel/framework/content/parser/content_second_parser.class.php j'ai changé la fonction comme ceci (ligne 175) :
Code PHP :
<?php function _callback_highlight_code($matches) { global $LANG; static $identifiantNumeriqueDuCode, $randTxt; if(empty($randTxt)) $randTxt = substr(md5(time()),0,5) . 'b'; $line_number=!empty($matches[2]); $inline_code=!empty($matches[3]); $contents=$this->_highlight_code($matches[4],$matches[1],$line_number,$inline_code); $identifiantNumeriqueDuCode++; $identifiantDuCode = 'code_'.$randTxt.$identifiantNumeriqueDuCode; if(!$inline_code && !empty($matches[1])) { $contents='<span class="text_code">'.sprintf($LANG['code_langage'],strtoupper($matches[1])).' - <a href="javascript:javascript:selectCode(\''.$identifiantDuCode.'\')">Sélectionner ce code</a></span><div class="code" id="'.$identifiantDuCode.'">'.$contents.'</div>'; } else if(!$inline_code && empty($matches[1])) { $contents='<span class="text_code">'.$LANG['code_tag'].' - <a href="javascript:javascript:selectCode(\''.$identifiantDuCode.'\')">Sélectionner ce code</a></span><div class="code" id="'.$identifiantDuCode.'">'.$contents.'</div>'; } return $contents; } ?>
$identifiantNumeriqueDuCode permet d'avoir un identifiant unique par chargement pour pouvoir correctement sélectionner le code.
$randTxt permet d'avoir un identifiant unique par page, pour éviter d'avoir des problèmes à cause de la prévisualisation.
Voila, ai-je bien fait les chose ?
Cordialement
Jagang
Edité par Jagang Le 09/03/11 à 01h09
Pour le code en inline :
Code BBCODE :
Ca donne
Pour le code javascript, global.js est une solution convenable.
Quant à savoir si tu as bien fait les choses, j'ai rapidement lu le code, ça me semble pas mal. Ca fonctionne comme tu veux ?
Code BBCODE :
[code=php,0,1]echo 'toto';[/code]
Ca donne
echo 'toto';.
Pour le code javascript, global.js est une solution convenable.
Quant à savoir si tu as bien fait les choses, j'ai rapidement lu le code, ça me semble pas mal. Ca fonctionne comme tu veux ?
____________________
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++:
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."
Tout fonctionne correctement, merci.
Par contre, où est définit
Simplement car il m'affiche quelque chose comme ça : Citation:
Et ça fait pas joli le ": -".
Merci
Cordialement
Jagang
Par contre, où est définit
$LANG['code_langage']?
Simplement car il m'affiche quelque chose comme ça : Citation:
Code VB : - Sélectionner ce code
Et ça fait pas joli le ": -".
Merci
Cordialement
Jagang
Dans /lang/french/main.php je pense.
Mais pour le coup, le tiret ne doit pas être dans la variable de langue mais plutôt dans le code vers là où tu as modifié des choses.
Mais d'ailleurs, normalement il n'y est pas ce tiret. Ne serait-ce pas toi qui l'as rajouté par mégarde ?
Mais pour le coup, le tiret ne doit pas être dans la variable de langue mais plutôt dans le code vers là où tu as modifié des choses.
Mais d'ailleurs, normalement il n'y est pas ce tiret. Ne serait-ce pas toi qui l'as rajouté par mégarde ?
____________________
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++:
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."
J'ai rajouté le tiret et je veux enlever les deux-points.
Merci, j'ai bien trouver dans le fichier que tu m'as indiqué.
Merci
Cordialement
Jagang
Merci, j'ai bien trouver dans le fichier que tu m'as indiqué.
Merci
Cordialement
Jagang
Ah pardon, je n'avais pas bien compris ce que tu voulais.
____________________
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++:
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."
1 Utilisateur en ligne :: 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne: Aucun membre connecté
Utilisateur en ligne: Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie





PHPBoost

Support
Téléchargements
Développement
Communauté














