[PEAR] BBCode-Klasse mit Smileys's
Twilo
- php
Hallo,
ich verwende diese BBCode Klasse
http://pear.php.net/package/HTML_BBCodeParser
und möchte auch Smileys (z.B. :-), :-(, etc.) automatisch zu Smileys umwandeln lassen
eine Suche bei Google und im Archiv
http://www.google.com/search?num=100&hl=de&q=BBCode+Parser+smileys+pear&btnG=Suche&lr=
http://suche.de.selfhtml.org/cgi-bin/such.pl?suchausdruck=bbcode+smiley&case=on&feld=alle&index_5=on&index_6=on&index_7=on&index_8=on&index_9=on&index_10=on&index_11=on&hits=100
waren leider vergebens
könnte mir eine ein Tipp geben, wie z.B. der Inhalt aussehen müsste, wenn ich mit dieser Smileys ersetzen lassen möchte?
so sieht es z.B. für ein Link aus
require_once('HTML/BBCodeParser.php');
class HTML_BBCodeParser_Filter_Email extends HTML_BBCodeParser
{
var $_definedTags = array( 'email' => array( 'htmlopen' => 'a',
'htmlclose' => 'a',
'allowed' => 'none^img',
'attributes'=> »» array('email' =>'href=%2$smailto:%1$s%2$s')
)
);
function _preparse()
{
$options = PEAR::getStaticProperty('HTML_BBCodeParser','_options');
$o = $options['open'];
$c = $options['close'];
$oe = $options['open_esc'];
$ce = $options['close_esc'];
$pattern = array( "!(^|\s)([-a-z0-9_.]+@[-a-z0-9.]+.[a-z]{2,4})!i",
"!".$oe."email(".$ce."|\s.*".$ce.")(.*)".$oe."/email".$ce."!Ui");
$replace = array( "\1".$o."email=\2".$c."\2".$o."/email".$c,
$o."email=\2\1\2".$o."/email".$c);
$this->_preparsed = preg_replace($pattern, $replace, $this->_text);
}
}
ich weiss nicht wirklich, wie ich anfangen soll/muss
über jede Hilfe wäre ich dankbar :-)
mfg
Twilo
Hi!
ich verwende diese BBCode Klasse
http://pear.php.net/package/HTML_BBCodeParserund möchte auch Smileys (z.B. :-), :-(, etc.) automatisch zu Smileys umwandeln lassen
Wenn du wirklich nur Smilies à la :-) ;-) automatisch in die entsprechenden Bilder umwandeln möchtest, reicht bereits eine Funktion wie z.B. str_replace:
$search = array(":-)", ";-)");
$replace = array("<img src="smilie.png" alt="smilie" />", "<img src="grins.png" alt="grins" />");
$text = str_replace($search, $replace, $text); # ersetzt alle Vorkommen von
# :-) ;-) in die Bilder
Grüße,
Fabian St.
Hallo,
ich verwende diese BBCode Klasse
http://pear.php.net/package/HTML_BBCodeParser
und möchte auch Smileys (z.B. :-), :-(, etc.) automatisch zu Smileys umwandeln lassen
Wenn du wirklich nur Smilies à la :-) ;-) automatisch in die entsprechenden Bilder umwandeln möchtest, reicht bereits eine Funktion wie z.B. str_replace:
$search = array(":-)", ";-)");
$replace = array("<img src="smilie.png" alt="smilie" />", "<img src="grins.png" alt="grins" />");
$text = str_replace($search, $replace, $text); # ersetzt alle Vorkommen von
# :-) ;-) in die Bilder
es wäre gut, wenn das über die BBCode Klasse funktionieren würde
zur Zeit hab ich es so ähnlich geregelt, wie du es vorgeschlagen hast
könnte ich dann ja per BBCode Klasse regeln, ob die Smileys ersetzt werden sollen etc.
ich weiss, es geht auch so, aber mein System ist schon so geschrieben, dass ich an die BBCode Klasse, Parameter übergebe, was ersetzt werden soll
mir fehlt das nur noch für die Smileys :)
mfg
Twilo
hab es so gelöst
Datei Names Smileys.php im Ordner Filter erstellen und folgenden Inhalt einfügen
<?php
[...]
require_once('HTML/BBCodeParser.php');
class HTML_BBCodeParser_Filter_Smileys extends HTML_BBCodeParser
{
function _preparse()
{
$pattern = array( ':-)',
':-(');
$replace = array( '<img src="/smileys/1.gif" alt="Smile" title="Smile" />',
'<img src="/smileys/2.gif" alt="Traurig" title="Traurig" />');
$this->_preparsed = str_replace($pattern, $replace, $this->_text);
}
}
?>