Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Erster eigener komplzierter MyCode, nichts geht...
#1
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 Big Grin

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;
}
}
Nun wird aber Leider immer noch
Code:
[galerie](Links)[/galerie]
angezeigt.

Am besten wäre es natürlich, wenn ihr mir den Code richtig umschreibt und mir die Fehler erklärt Big Grin, aber wenn ihr mir mitteilt, was ich alles verändern muss reicht das schon vollkommen Wink.

Ich danke euch schon mal 1000 Mal Smile
[Bild: Nirgendssicher.jpg]
Zitieren
#2
Sorry für den Post, ich habe den Fehler nun selbst gefunden:

PHP-Code:
$return = preg_replace_callback($code['1'], "bfb_parse_message_replace", $message);
$return = preg_replace_callback($code['2'], "bfb_parse_message_replace", $message);
return
$return;

Es bringt natürlich nichts, wenn ich beides auf return setze.

Lösung:
Nicht nach $code['1'] und $code['2'] getrennt, sonder einfach nur $code eingetragen (Verarbeitung von Arrays möglich) und den Code dann in eine Zeile gepackt.
[Bild: Nirgendssicher.jpg]
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Photo Themenansicht: Erster Beitrag modern, darauffolgende Antworten klassische Ansicht MyBB-Fanatiker 13 4.700 05.02.2015, 01:47
Letzter Beitrag: Arkan
  iShare zeigt nichts an ! derlala 8 3.225 22.12.2010, 12:35
Letzter Beitrag: derlala
  Shoutbox 2.0.1 neuste beiträge auf erster seite ollitsch 6 3.589 27.11.2007, 02:10
Letzter Beitrag: aman