Joomla plugin - get parameters from syntax

  • ausgehend von diesem tutorial


    https://docs.joomla.org/J3.x:Creating_a_content_plugin


    konnte ich folgenden helper.php code erstellen:



    $regex_cat = '/{fotorama:(.*?)}/i';


    preg_match_all($regex_cat, $article->text, $matches);


    if ($matches)
    {


    $path = JPluginHelper::getLayoutPath('content', 'fotorama');


    foreach ($matches[1] as $catid)
    {


    $image = new images();
    $image ->categoryid = $catid;
    $allimages = $image ->getImages();


    ob_start();
    include $path;
    $html = ob_get_contents();
    ob_end_clean();


    $regex_cat = '/{fotorama:' . str_replace('.', '\.', str_replace('/', '\/', $catid)) . '}/is';


    $article->text = preg_replace($regex_cat, $html, $article->text);


    }
    }



    der code übernimmt die catid von meiner plugin syntax {fotoama:"catid"} dabei ist "catid" eine Zahl. Das funktioniert auch prima.


    Jetzt möchte ich noch zwei weiter Parameter auslesen. Zum einen "navigation"(charset) und "title"(number). Der gewünschet syntax code würde dann so aussehen {fotorama:5/dots/1}.


    Wie gelingt es mir noch die beiden anderen Parameter auszulesen und an die default.php tmpl zu übergeben?

  • vielen Dank für die Mühe und die großartige Antwort. Es ist mir nach einigen Rückschlägen gelungen Deine Lösung in meiner php Datei zu integrieren. Es funktioniert prima.
    Wie kann ich das plugin zweimal auf einer Seite integrieren? Hier nimmt er immer die Werte der letzten Syntax.

  • Wie kann ich das plugin zweimal auf einer Seite integrieren? Hier nimmt er immer die Werte der letzten Syntax.


    Ich versteh nicht ganz. Eigentlich ist der Code so aufgebaut, dass sämtliche Vorkommen des Plugin-Tags in $article->text schrittweise / nacheinander ausgetauscht werden.


    https://github.com/GHSVS-de/GH…ntag-mit-Optionen.php#L48


    und eigentlich werden die Parameter-Werte-Arrays jedesmal zurückgesetzt.


    https://github.com/GHSVS-de/GH…ntag-mit-Optionen.php#L59


    "Eigentlich" ist natürlich nicht "sicher"?


    Du kannst mir gerne aus der Datenbank die beiden Felder Introtext und Fulltext eines Beitrags, wo Fehler auftritt in eine Textdatei kopieren. Plus deinen Plugincode in einer weiteren Datei. Machst ein Zip draus und lädst mir das ZIP unter
    https://github.com/GHSVS-de/GHSVSThings/issues
    hoch. Das geht simpel per Drag & Drop in das Textfeld eines neuen Issues. Musst dir zuvor nur einen Account bei GitHub anlegen.


    Wenn beides nicht zu umfangreich ist, kannst beides wohl auch hier posten, aber bitte verwende diesmal den Code-Button und -Spoiler
    oder halt hier ZIP hochladen.

  • Danke für den Hinweis. Es geht tatsächlich und die Lösung war sogar schon in Deinem kommentierten Code vorhanden.


    Mit


    $article->text = str_replace($matchArray[0], $html, $article->text);


    anstatt


    $article->text = str_replace($matches[$i][0], $html, $article->text);


    kann ich das Plugin mehrmals einbinden.


    Noch einmal vielen Dank für die tolle Hilfe!