Ubb-parser Class + smilies + woordfilter + simpel
Auteur: Mulle - 26 april 2008 - 19:08 - Gekeurd door: marten - Hits: 8545 - Aantal punten: 4.25 (2 stemmen)
Dit is een UBB-parser CLASS met volgende mogelijkheden:
-ubb-tags
-smilies
-woordenfilter
-eenvoudig zelf te maken tags
De volgende tags zijn aanwezig (26/04/2008)
-Tekstopmaak
-[b]tekst[/b]
-[i]tekst[/i]
-[u]tekst[/u]
-[s]tekst[/s]
-[sub]tekst[/sub]
-[li]tekst[/li]
-[center]tekst[/center]
-[color]tekst[/color]
-[marque]tekst[/marque]
-Links + afbeeldingen
-[email title=#]e-mail adres[/email]
-[url=# target=# title=#]url[/url]
-[img width=# height=#]figuur[/img]
-Externe Filmpjes
-[youtube width=# height=#]video nr[/youtube]
-[break width=# height=#]video nr[/break]
-[google_video width=# height=#]video nr[/google_video]
-Google zoeken
-[google_search]teskt zoeken[/google_search]
-UBB tags negeren
-[show_tags]tekst[/show_tags]
-Overige
-[offtopic]tekst[/offtopic]
-[quote name=#][/quote]
-Tekstopmaak -[b]tekst[/b] -[i]tekst[/i] -[u]tekst[/u] -[s]tekst[/s] -[sub]tekst[/sub] -[li]tekst[/li] -[center]tekst[/center] -[color]tekst[/color] -[marque]tekst[/marque] -Links + afbeeldingen -[email title=#]e-mail adres[/email] -[url=# target=# title=#]url[/url] -[img width=# height=#]figuur[/img] -Externe Filmpjes -[youtube width=# height=#]video nr[/youtube] -[break width=# height=#]video nr[/break] -[google_video width=# height=#]video nr[/google_video] -Google zoeken -[google_search]teskt zoeken[/google_search] -UBB tags negeren -[show_tags]tekst[/show_tags] -Overige -[offtopic]tekst[/offtopic] -[quote name=#][/quote]
Verder wordt uitgelegd hoe je eenvoudig een eigen tag kan maken.
Heb je zelf tags gemaakt dat je wilt delen met anderen, dan mag je mij altijd contacteren. Ik zet dan de tags in de zipfile.
Commentaar en opmerkingen zijn altijd welkom (zowel positieve als negatieve (wel met een grondige uitleg))
Deze classe is geinspireerd op een ander script (ivm met de regex). Ik kan niet meer terugvinden van wie en van waar omdat ik de code al enkele jaren heb liggen. Als iemand het weet mag dat gemeld worden aan mij, ik kan het er dan bij vermelden.
|
Code: |
Gebruik maken van de ubb_parser class
<?php
//$text => tekst die door de parser moet
...
//class aanroepen
$ubb = new Ubb_parser( $text );
//tags uitschakelen [2 mogelijkheden] (worden niet geparsed)
$ubb -> disable_tags( array( 'b' , 'i' ) );
of
$ubb -> disable_tags( 'u' );
$ubb -> disable_tags( 'center' );
//tags terug inschakelen [2 mogelijkheden] (worden terug geparsed)
$ubb -> enable_tags( array( 'b' , 'i' ) );
of
$ubb -> enable_tags( 'u' );
$ubb -> enable_tags( 'center' );
//woordfilter [2 mogelijkheden] (vervangt woorden)
$ubb -> wordFiltre( array( 'kut' , 'fuck' ) , "***" ); //kut => *** ; fuck => ***
of
$ubb -> wordFiltre( array( 'kut' => 'k*t' , 'fuck' => 'f*ck' ) ); //kut => k*t ; fuck => f*ck
//Smilies importeren
$ubb -> importSmilies( 'public/smilies/v1/smilies.txt' );
/*
In de map met de smilies wordt het bestand 'smilies.txt' geplaatst met de volgende inhoud
:D => biggrin.gif
:d => biggrin.gif
:blink: => blink.gif
B) => cool.gif
b) => cool.gif
<_< => dry.gif
...
*/
//Smilies zelf toekennen
$ubb -> setSmilies( array( ":D" => "biggrin.gif" , ":d" => "biggrin.gif" ) , 'public/smilies/v1/' );
of
$ubb -> setSmilies( array( ":D" => "public/smilies/v1/biggrin.gif" ) );
//tekst parsen
echo $ubb -> parse_text( );
?>
<?php //$text => tekst die door de parser moet ... //class aanroepen $ubb = new Ubb_parser( $text ); //tags uitschakelen [2 mogelijkheden] (worden niet geparsed) $ubb -> disable_tags( array( 'b' , 'i' ) ); of $ubb -> disable_tags( 'u' ); $ubb -> disable_tags( 'center' ); //tags terug inschakelen [2 mogelijkheden] (worden terug geparsed) $ubb -> enable_tags( array( 'b' , 'i' ) ); of $ubb -> enable_tags( 'u' ); $ubb -> enable_tags( 'center' ); //woordfilter [2 mogelijkheden] (vervangt woorden) $ubb -> wordFiltre( array( 'kut' , 'fuck' ) , "***" ); //kut => *** ; fuck => *** of $ubb -> wordFiltre( array( 'kut' => 'k*t' , 'fuck' => 'f*ck' ) ); //kut => k*t ; fuck => f*ck //Smilies importeren $ubb -> importSmilies( 'public/smilies/v1/smilies.txt' ); /* In de map met de smilies wordt het bestand 'smilies.txt' geplaatst met de volgende inhoud :D => biggrin.gif :d => biggrin.gif :blink: => blink.gif B) => cool.gif b) => cool.gif <_< => dry.gif ... */ //Smilies zelf toekennen $ubb -> setSmilies( array( ":D" => "biggrin.gif" , ":d" => "biggrin.gif" ) , 'public/smilies/v1/' ); of $ubb -> setSmilies( array( ":D" => "public/smilies/v1/biggrin.gif" ) ); //tekst parsen echo $ubb -> parse_text( ); ?>
Zelf UBB tags aanmaken:
Alle zelf gemaakte tags moeten in de map tags geplaatst worden.
Ik ga een voorbeeld geven van een youtube tag (voor youtube filmpjes)
-Er wordt een niewe php file gemaakt met de tag naam: [tag].php (youtube.php)
-Nu wordt de volgende functie aangemaakt ubbTag_[tag] (ubbTag_youtube)
-Deze functie bevat 2 parameters
-->$content: is de tekst tussen de tags [youtube]videonr[/youtube] => videonr
-->$args: is een array met alle argumenten van de tag [youtube width=500 height=400]videonr[/youtube] => array( width => 500 , height => 400 )
<?php
function ubbTag_youtube( $content , $args ) {
}
?>
<?php function ubbTag_youtube( $content , $args ) { } ?>
-Alle mogelijke argumenten definieren met een standaard waarde zodat ze niet moeten worden gebruikt bij de tag
<?php
function ubbTag_youtube( $content , $args ) {
$args = array_merge( array( 'width' => '400' , 'height' => '326' ) , $args );
}
?>
<?php function ubbTag_youtube( $content , $args ) { } ?>
-Alle argumenten omzetten naar variabelen (met functie extract) zodat het gewenste resultaat gemaakt kan worden
<?php
function ubbTag_youtube( $content , $args ) {
$args = array_merge( array( 'width' => '400' , 'height' => '326' ) , $args );
extract( $args );
return "<embed style=\"width: " . $width . "px; height: " . $height . "px;\" wmode=\"transparent\" type=\"application/x-shockwave-flash\" src=\"http://www.youtube.com/v/" . $content . "&hl=nl\"></embed>";
}
?>
<?php function ubbTag_youtube( $content , $args ) { return "<embed style=\"width: " . $width . "px; height: " . $height . "px;\" wmode=\"transparent\" type=\"application/x-shockwave-flash\" src=\"http://www.youtube.com/v/" . $content . "&hl=nl\"></embed>"; } ?>
-De ubb tag is aangemaakt, dus redelijk simpel Download code (.txt)
|
 |
|
Stemmen |
Niet ingelogd. |
|