Smarty Parser Probleem
Ik ben bezig met Smarty en ik wil in het forum dat de php codes gehighlight worden
Nu heb ik al een aantal dingen geprobeerd maar geen goed resultaat.
Ik heb dit al geprobeerd te gebruiken maar ook dit toont of highlight de code niet:
Smarty plugin:smarty modifier.bbcode2html.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function smarty_modifier_bbcode2html($message) {
$preg = array(
'/(?<!\\\\)\[code(?::\w+)?\](.*?)\[\/code(?::\w+)?\]/si' => "<div class=\"bb-code\">\\1</div>",
'/(?<!\\\\)\[php(?::\w+)?\](.*?)\[\/php(?::\w+)?\]/si' => "<div class=\"bb-php\">\\1</div>",
'/\\\\(\[\/?\w+(?::\w+)*\])/' => "\\1"
);
$message = preg_replace(array_keys($preg), array_values($preg), $message);
return $message;
}
?>
function smarty_modifier_bbcode2html($message) {
$preg = array(
'/(?<!\\\\)\[code(?::\w+)?\](.*?)\[\/code(?::\w+)?\]/si' => "<div class=\"bb-code\">\\1</div>",
'/(?<!\\\\)\[php(?::\w+)?\](.*?)\[\/php(?::\w+)?\]/si' => "<div class=\"bb-php\">\\1</div>",
'/\\\\(\[\/?\w+(?::\w+)*\])/' => "\\1"
);
$message = preg_replace(array_keys($preg), array_values($preg), $message);
return $message;
}
?>
Smarty plugin:smarty modifier.highlight.php
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
function smarty_modifier_highlight($string)
{
return highlight_string($string,true);
}
?>
function smarty_modifier_highlight($string)
{
return highlight_string($string,true);
}
?>
De codes word aangeroepen met:
Code (php)
1
2
3
4
2
3
4
<?php
{$posts[post_loop].forumpost_body|bbcode2html}
{$posts[post_loop].forumpost_body|highlight}
?>
{$posts[post_loop].forumpost_body|bbcode2html}
{$posts[post_loop].forumpost_body|highlight}
?>
geen van deze 2 opties werkt
nu heb ik zelf een replace gemaakt die werkt wel, de code word wel getoond maar highlight niet
Nogmaals het gaat hier om Smarty!
Als ik wel highlight_string( < ? "\\1" ? >,true ) in de code zet, Plaats:http://madirc.nl/help/ubbparser2.png
Als ik niet {highlight_string}( < ? "\\1" ? >,true) in de code zet, Plaats:http://madirc.nl/help/ubbparser1.png
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function forum_bbcode_parse_view($string)
{
// [php] ubbparser
// Deze toont de code maar highlight de code niet
$codetext = "\\1"; //zeg maar niks hier over maar het werkt :)
// < ? en de ? > tag staat in de post verwerkt met [ php] < ? code ? > [ /php] dus < ? en ? > zijn toch niet nodig dan?:
$codetext = highlight_string($codetext,true);
$string = preg_replace('/\[php\](.*?)\[\/php\]/si',"<blockquote>code:<br><table width=\"50%\" cellpadding=\"2\" cellspacing=\"0\" class=\"code_table\"><tr><td NOWRAP valign=\"top\"><div class=\"code_source\" id=\"code_492\" NOWRAP> $codetext </div></table></blockquote>",$string);
return $string;
}
?>
function forum_bbcode_parse_view($string)
{
// [php] ubbparser
// Deze toont de code maar highlight de code niet
$codetext = "\\1"; //zeg maar niks hier over maar het werkt :)
// < ? en de ? > tag staat in de post verwerkt met [ php] < ? code ? > [ /php] dus < ? en ? > zijn toch niet nodig dan?:
$codetext = highlight_string($codetext,true);
$string = preg_replace('/\[php\](.*?)\[\/php\]/si',"<blockquote>code:<br><table width=\"50%\" cellpadding=\"2\" cellspacing=\"0\" class=\"code_table\"><tr><td NOWRAP valign=\"top\"><div class=\"code_source\" id=\"code_492\" NOWRAP> $codetext </div></table></blockquote>",$string);
return $string;
}
?>
of
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
function forum_bbcode_parse_view($string)
{
// [php] ubbparser
// Deze toont de code maar highlight de code niet
$string = preg_replace('/\[php\](.*?)\[\/php\]/si',"<blockquote>code:<br><table width=\"50%\" cellpadding=\"2\" cellspacing=\"0\" class=\"code_table\"><tr><td NOWRAP valign=\"top\"><div class=\"code_source\" id=\"code_492\" NOWRAP> ".highlight_string("\\1",true)." </div></table></blockquote>",$string);
return $string;
}
?>
function forum_bbcode_parse_view($string)
{
// [php] ubbparser
// Deze toont de code maar highlight de code niet
$string = preg_replace('/\[php\](.*?)\[\/php\]/si',"<blockquote>code:<br><table width=\"50%\" cellpadding=\"2\" cellspacing=\"0\" class=\"code_table\"><tr><td NOWRAP valign=\"top\"><div class=\"code_source\" id=\"code_492\" NOWRAP> ".highlight_string("\\1",true)." </div></table></blockquote>",$string);
return $string;
}
?>
of
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function forum_bbcode_parse_view($string)
{
$text = "\\1";
$string = preg_replace("/\[php\](.*?)\[\/php\]/si"," "kleurphp(' $text ')",$string);
function kleurphp($text)
{
$text = trim($text);
$text = str_replace('\"', '"', $text);
ob_start();
highlight_string($text,true);
$text = ob_get_contents();
ob_end_clean();
$output = "<table cellpadding=\"2\" cellspacing=\"0\" class=\"code_table\"><tr><td NOWRAP align=\"left\" valign=\"top\"><div class=\"code_source\" id=\"code_492\" NOWRAP><font color=\"#000000\"> ".$text." </div></table><br>";
$output = eregi_replace("(<code>)(.*)(</code>)"," \\2",$output);
return $output;
}
}
?>
function forum_bbcode_parse_view($string)
{
$text = "\\1";
$string = preg_replace("/\[php\](.*?)\[\/php\]/si"," "kleurphp(' $text ')",$string);
function kleurphp($text)
{
$text = trim($text);
$text = str_replace('\"', '"', $text);
ob_start();
highlight_string($text,true);
$text = ob_get_contents();
ob_end_clean();
$output = "<table cellpadding=\"2\" cellspacing=\"0\" class=\"code_table\"><tr><td NOWRAP align=\"left\" valign=\"top\"><div class=\"code_source\" id=\"code_492\" NOWRAP><font color=\"#000000\"> ".$text." </div></table><br>";
$output = eregi_replace("(<code>)(.*)(</code>)"," \\2",$output);
return $output;
}
}
?>
maar ook deze werkt niet
Wat kan ik nog meer proberen?
want mijn opties zijn wel even op na een week of 2 klooie :)
Ik heb nog wel meer opties geprobeerd maar ook geen highlight
edit:
hier heb ik nog een code geprobeerd maar ook deze hightlight niet
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
function forum_bbcode_parse_view($string)
{
$open_php = preg_match_all('/\[php\]/i', $string, $matches);
$close_php = preg_match_all('/\[\/php\]/i', $string, $matches);
$total_phptags = ( $open_php>$close_php ? $close_php : $open_php );
if($total_phptags) {
$string = preg_replace('/\[php\]/i', "<blockquote>code:<br><div class='bb-code'><div> ".highlight_string("\\1",true)." </div>", $string, $total_phptags);
$string = strrev(preg_replace('/\]php\/\[/i', ">vid/<>etouqkcolb/<", strrev($string), $total_phptags));
}
}
?>
function forum_bbcode_parse_view($string)
{
$open_php = preg_match_all('/\[php\]/i', $string, $matches);
$close_php = preg_match_all('/\[\/php\]/i', $string, $matches);
$total_phptags = ( $open_php>$close_php ? $close_php : $open_php );
if($total_phptags) {
$string = preg_replace('/\[php\]/i', "<blockquote>code:<br><div class='bb-code'><div> ".highlight_string("\\1",true)." </div>", $string, $total_phptags);
$string = strrev(preg_replace('/\]php\/\[/i', ">vid/<>etouqkcolb/<", strrev($string), $total_phptags));
}
}
?>
weet iemand de oplossing hier voor?
met vriendelijke groet MaDHouSe
Gewijzigd op 26/02/2011 11:02:00 door Robert dat ben ik
Er zijn nog geen reacties op dit bericht.