Skip to content

Instantly share code, notes, and snippets.

@laszlokorte
Created November 14, 2009 18:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laszlokorte/234670 to your computer and use it in GitHub Desktop.
Save laszlokorte/234670 to your computer and use it in GitHub Desktop.
<?php
final class VideoBbcode
{
public static function load()
{
// Die ABCodes sollen in die Gruppe video registriert werden
$group = array('video');
// ABCodes für verschiedene Video-Portale registrieren
Bbcode::register(new BbcodePattern('youtube', "/\[youtube\](.*?)\[\/youtube\]/si","VideoBbcode::youtube()"), $group);
Bbcode::register(new BbcodePattern('myvideo', "/\[myvideo\](.*?)\[\/myvideo\]/si","VideoBbcode::myvideo()"), $group);
Bbcode::register(new BbcodePattern('vimeo', "/\[vimeo\](.*?)\[\/vimeo\]/si","VideoBbcode::vimeo()"), $group);
}
public static function youtube($match)
{
//hier wird der HTML-Code für Youtube-Videos generiert und zurückgegeben
...
}
public static function myvideo($match)
{
//hier wird der HTML-Code für MyVideo-Videos generiert und zurückgegeben
...
}
public static function vimeo($match)
{
//hier wird der HTML-Code für Vimeo-Videos generiert und zurückgegeben
...
}
}
//-----------------------------------
// in einer anderen Datei, in der der ABCode und das VideoBbcode-Addon schon includiert und geladen wurden
//Die Videos von allen Hostern sollen gepostet werden können
//Die Video-Gruppe wird auf den String in $text angewendet
$text = Bbcode::convert($text, 'video');
//es sollen alle Videos gepostet werden können, außer die von Vimeo
//Die video-Gruppe wird geladen und in $bbcode gespeichert
$bbcode = new Bbcode('video');
//Der Vimeo-Bbcode wird deaktiviert
$bbcode->deactivatePattern('vimeo');
//Der modifizierte Video-Gruppe wird auf den String in $text angewendet
$text = $bbcode->convert($text);
//Es sollen alle Bbcodes aus der base-Gruppe benutzt werden.
//Außerdem sollen youtube videos eingebunden werden können
//base-Gruppe laden
$bbcode = new Bbcode('base');
//youtube-Bbcode aktivieren
$bbcode->activatePattern('youtube');
//base-Gruppe und youtube-Bbcode auf den String in $text anwenden
$text = $bbcode->convert($text);
//Der Text soll ohne jegliche Formatierungen angezeigt werden
//Allerdings sollen die Bbcode-Befehle, die beim schreiben des Textes benutzt wurden, des Lesen nicht behindern
//Dafür sollen sie einach entfernt werden
//Base-Gruppe laden (base wird als Standardgruppe benutzt)
$bbcode = new Bbcode();
//die clear-Methode auf den String in $text anwenden
$text = $bbcode->clear($text);
//Die Bold-, Italic- und Underline-Formatierungen sollen umgesetzt, aber alle anderen entfernt werden
//neuen Bbcode instanzieren
$bbcode = new Bbcode();
//alle Suchmuster deaktivieren
$bbcode->clearPatterns();
//bold, italic und underline wieder aktivieren
$bbcode->activatePattern('bold');
$bbcode->activatePattern('italic');
$bbcode->activatePattern('underline');
//die 3 Suchmuster auf den String in $text anwenden
$text = $bbcode->convert();
//die base-Gruppe erneut laden, damit wieder alle Suchmuster aktiv sind
$bbcode = new Bbcode('base');
//die clear-Methode auf den String in $text anwenden, damit alle zuvor noch niht umgewandelten Bbcode-Befehle entfernt werden
$text = $bbcode->clear();
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment