bonjour j'ai un souci avec le tuto geschi pour mettre des codes dans un block
voilà la page :
http://le.coffre.free.fr/forum/poster.php?action=nouveautopic&f=6
donc il sélectionne dans le select s'il veut mettre php css etc..
<select title="code" name="code" onchange="javascript: bbcode('<' + this.value + '>','</code>'); this.selectedIndex = 0;">
<option style="font-weight: bold;" class="code_titre" selected="selected">Code</option>
<option value="code type= html">HTML</option>
<option value="code type= javascript">JavaScript</option>
<option value="code type= php">PHP</option>
<option value="code type= sql">SQL</option>
<option value="code type= css">CSS</option>
</select>
donc il met leur code
mais dans les messages posté c'est là où ça bloque
http://le.coffre.free.fr/forum/voirforum.php?f=6
si on prend chaque page des messages posté
http://le.coffre.free.fr/forum/voirtopic.php?t=55
http://le.coffre.free.fr/forum/voirtopic.php?t=56
http://le.coffre.free.fr/forum/voirtopic.php?t=57
http://le.coffre.free.fr/forum/voirtopic.php?t=58
http://le.coffre.free.fr/forum/voirtopic.php?t=59
http://le.coffre.free.fr/forum/voirtopic.php?t=62
on peut voir le cadre avec des couleurs
mais le souci si on met bonjour il met le mot dans le cadre je ne sais pas pour quoi par exemple il y as code : php mais il est dans le cadre et je voudrais qu'il sois pas dans le cadre et je voudrais mettre en haut du cadre
et le 2 éme souci il met a chaque fin de ligne <br /> comment faire pour enlenvé le code br /
et ensuite l'autre souci j'ai voulu mettre 2 code dans un message mais il n'a fait qu'un block il m'a supprimé l'autre code
et aussi il n'a pas voulu les coloré les codes pour dire que c'est du css où html etc...je ne sais pas où ça coince
donc voilà les code que j'ai mis
voirtopic.php
// Détails sur le membre qui a posté
echo'<tr><td>
<img src="images/messages/avatars/'.$data2['membre_avatar'].'" alt="" />
<br />Membre inscrit le '.date('d/m/Y',$data2['membre_inscrit']).'
<br />Messages : '.$data2['membre_post'].'<br />
Localisation : '.$data2['membre_localisation'].'</td>';
echo'<td>';
// la méthode de geshi
/*
if ($matches[1] == "html"){
$matches[1] = "html4strict"; }
$geshi = new GeSHi($matches[2], $matches[1]);
echo $matches[2]."__";
echo $matches[1];
if ($matches[1] == "html4strict"){
echo '<div id="geshi"><strong>Code HTML:</strong><div class="code">'.code($data2['post_texte']).'</div></div>';
}
else {
echo '<div id="geshi"><strong>Code '.$matches[1].':</strong><div class="code">'.code($data2['post_texte']).'</div></div>';
}
*/
echo '<div id="geshi">'.code($data2['post_texte']).'</div>';
// Message
//echo code($data2['post_texte']);
if (!empty($data2['membre_signature']))
echo '<br /><hr />'.code($data2['membre_signature']);
echo'</td></tr>';
} // Fin de la boucle ! \o/
?>
et dans bbcode.php
<?php
function code($texte)
{
// Mise en forme du Message posté
//BBcode pour afficher des codes pour coloriser
$texte = html_entity_decode($texte);
//$texte = preg_replace('`<(.+)>`isU', '<$1>', $texte);
function ParsageGeSHi($matches)
{
include_once('geshi/geshi.php'); // Inclure la librairie GeSHi
# Liste des langages
$ListeType = array(
'html' => 'HTML',
'javascript' => 'JavaScript',
'php' => 'PHP',
'sql' => 'SQL',
'css' => 'CSS',
);
if (!array_key_exists($matches[1], $ListeType))
$TypeCode = '';
else
$TypeCode = $matches[1];
$Type = $ListeType[$TypeCode];
# Coloration
$geshi = new GeSHi($matches[2], $TypeCode);
$geshi->set_header_type(GESHI_HEADER_NONE);
$CodeParse = $geshi->parse_code();
$CodeParse = str_replace(chr(10), '', $CodeParse); // Pour supprimer les retour à la ligne en trop
//DEBUT'.$matches[1].'MILIEU'.$matches[2].'FIN
return '<span class="code"><strong>Code : ' . $Type . '</strong></span><div class="code2">' . $CodeParse . '</div>';
}
//$texte = preg_replace_callback('#<code type= (.+)>(.+)</code>#isU', 'ParsageGeSHi', $texte);
$texte = preg_replace_callback('#\<code type= (.+)\>(.+)\</code\>#isU', 'ParsageGeSHi', $texte);
?>
et bien entendu j'ai mis ça en haut de la page :
include_once('geshi/geshi.php'); // Inclure la librairie GeSHi
je ne sais pas pour quoi les codes ne sont pas coloré sauf pour le php
et si on met 2 code dans 2 balises différent il ne fait qu'une balise
et l'autre il faut supprimé tout les <br /> a chaque lignes
et aussi pour quoi si on met un texte non dans les balises il met le texte dans le cadre où est le code
voir les résultats
donc si quelqu'un pourrais voir où est l'érreur et voir comment faire un bo cadre ouù ils sont les codes en sachant que j'ai mis dans mon css :
#geshi
{
border:1px dashed #FFFFFF; /* couleur du cadre */
margin-left:40px;
margin-right:40px;
color:#FFFFFF;
padding:0.2em;
overflow-y:auto;
overflow:auto;
display:block;
}
merci d'avance de votre aide de m'aidé à faire fonctionné ces 4 codes php,css,html,javasscript,sql avec les couleurs
si vous voulez avoir une autre page où un autre code n'hésitez pas à me le dire
|