24.01.2008, 21:53
Hallo,
ich habe nun mein erstes Plugin geschrieben, dass einen MyCode erstellen soll. Die Inhalte der MyCodes sollen verarbeitet werden, deshalb Plugin. Aber wie üblich bei meinen ersten Scripten: Nichts funktioniert
Der MyCode soll so aussehen:
In einer zweiten Variante soll man noch Text unter die Bilder setzen können:
Das Ganze habe ich so aufgezogen:
Nun wird aber Leider immer noch angezeigt.
Am besten wäre es natürlich, wenn ihr mir den Code richtig umschreibt und mir die Fehler erklärt , aber wenn ihr mir mitteilt, was ich alles verändern muss reicht das schon vollkommen .
Ich danke euch schon mal 1000 Mal
ich habe nun mein erstes Plugin geschrieben, dass einen MyCode erstellen soll. Die Inhalte der MyCodes sollen verarbeitet werden, deshalb Plugin. Aber wie üblich bei meinen ersten Scripten: Nichts funktioniert
Der MyCode soll so aussehen:
Code:
[galerie](Link zum Bild),(Link zum nächsten Bild),(Link zum nächsten Bild),...[/galerie]
In einer zweiten Variante soll man noch Text unter die Bilder setzen können:
Code:
[galerie=(Text zum ersten Bild),(Text zum zweiten Bild),....](Link zum Bild),(Link zum nächsten Bild),(Link zum nächsten Bild),...[/galerie]
Das Ganze habe ich so aufgezogen:
PHP-Code:
$plugins->add_hook("parse_message", "bfb_parse_message");
function bfb_parse_message($message)
{
$code['1'] = "!\[galerie\](.*?)\[/galerie\]!";
$code['2'] = "!\[galerie=(.*?)\](.*?)\[/galerie\]!";
$return = preg_replace_callback($code['1'], "bfb_parse_message_replace", $message);
$return = preg_replace_callback($code['2'], "bfb_parse_message_replace", $message);
return $return;
}
function bfb_parse_message_replace($matches)
{
global $templates;
if(isset($matches[2]))
{
list($code, $txt, $lnk) = $matches;
$link = explode(',', $lnk);
$text = explode(',', $txt);
$list = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"25\" align=\"center\" class=\"inhalt\">";
foreach($link as $key => $value)
{
if($value != "")
{
if($key % 2 != 0)
{
$list .= "<td><img src=\"".$value."\" height=\"130\" width=\"150\" alt=\"Pic\" /><br />".$text[$key]."</td></tr>";
}
else
{
$list .= "<tr><td><img src=\"".$value."\" height=\"130\" width=\"150\" alt=\"Pic\" /><br />".$text[$key]."</td>";
}
}
}
$lastsigns = substr($list, "-5");
if($lastsigns == "</td>")
{
$list .= "<td></td></tr></table>";
}
elseif($lastsigns == "</tr>")
{
$list .= "</table>";
}
else
{
$list = "The Script was occured by an error. Please call a webmaster!";
}
$inhalt = $list;
eval("\$complete = \"".$templates->get("page_standard")."\";");
return $complete;
}
else
{
list($code, $lnk) = $matches;
$link = explode(",", $lnk);
$list = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"25\" align=\"center\" class=\"inhalt\">";
foreach($link as $key => $value)
{
if($value != "")
{
if($key % 2 != 0)
{
$list .= "<td><img src=\"".$value."\" height=\"130\" width=\"150\" alt=\"Pic\" /></td></tr>";
}
else
{
$list .= "<tr><td><img src=\"".$value."\" height=\"130\" width=\"150\" alt=\"Pic\" /></td>";
}
}
}
$lastsigns = substr($list, "-5");
if($lastsigns == "</td>")
{
$list .= "<td></td></tr></table>";
}
elseif($lastsigns == "</tr>")
{
$list .= "</table>";
}
else
{
$list = "The Script was occured by an error. Please call a webmaster!";
}
$inhalt = $list;
eval("\$complete = \"".$templates->get("page_standard")."\";");
return $complete;
}
}
Code:
[galerie](Links)[/galerie]
Am besten wäre es natürlich, wenn ihr mir den Code richtig umschreibt und mir die Fehler erklärt , aber wenn ihr mir mitteilt, was ich alles verändern muss reicht das schon vollkommen .
Ich danke euch schon mal 1000 Mal