Neu Plugin Customlink-Tabs mit der Plugin-URL#plugin-tab-nnn, woher nnn nehmen?

fibergirl

Sehr aktives Mitglied
14. April 2016
832
262
Hallo,

mein neues Plugin wird Customlink-Tabs haben, die in info.xml definiert sind.
Dort gibt es jeweils ein Fomular, das beim Abschicken wieder auf derselben Seite (in demselben Tab) landen soll.

Äußerlich unterscheiden sich die Custom-Links auf das Plugin durch einen angehängten Hash "#plugin-tab-(irgendeine Zahl)".
Zum Beispiel https://meine.domain.tld/admin/plugin.php?kPlugin=138#plugin-tab-135

Meine Frage ist: woher kommt diese Zahl 135?

kPlugin steht in $plugin->getID().
Aber wo finde ich die Zahl im Hash #plugin-tab-? Gibt es da eine auch Variable oder Funktion?

Den erzeugten Quelltext untersuchen und abschreiben ist doch vermutlich eine ganz schlechte Idee...

Dank & Gruß,
fibergirl
 

fibergirl

Sehr aktives Mitglied
14. April 2016
832
262
Hallo @NETZdinge.de ,
vielen Dank!

Ich hatte diese Version schon hier im Forum gesehen, aber gleich verworfen und noch nicht mal ausprobiert, war ja uralt und für den Shop 3.
Aber es funktioniert tatsächlich!

Mittlerweile habe ich aber auch eine alternative Implementation mit einer eigenen Funktion, die tatsächlich die Plugin-Tab Nummer herausfindet.
Aber so ist es viel besser und einfacher.

Dank&Gruß,
fibergirl
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Noch einfacher geht das, wenn du in deiner Boostrap.php die Methode renderAdminMenuTab() implementierst, siehe dazu auch https://gitlab.com/jtl-software/jtl-shop/plugins/jtl_test/-/blob/master/Bootstrap.php#L192

Wenn du im Template dieses Tabs auch noch ein hidden-Input mit name="kPluginAdminMenu" anlegst, bleibt der Tab dann auch nach Absenden eines Formulars aktiv.

Also z.B. in so:

Code:
public function renderAdminMenuTab(string $tabName, int $menuID, JTLSmarty $smarty): string
{
    $smarty->assign('menuID', $menuID);
    return $smarty->fetch($this->getPlugin()->getPaths()->getAdminPath() . '/templates/meineTemplateDatei.tpl');
}

Und in meineTemplateDatei.tpl:
Code:
<form method="post">
    {$jtl_token}
    <input type="hidden" name="kPluginAdminMenu" value="{$menuID}">
    <input type="text" name="foo_tab3" class="form-control">
    <button class="btn btn-default" type="submit">Absenden</button>
</form>
 

SportNet

Sehr aktives Mitglied
16. Oktober 2014
237
56
Hallo @NETZdinge.de ,


Mittlerweile habe ich aber auch eine alternative Implementation mit einer eigenen Funktion, die tatsächlich die Plugin-Tab Nummer herausfindet.
Aber so ist es viel besser und einfacher.
Kannst du uns daran teilhaben lassen? Die Methode von Felix funktioniert für uns leider nicht wie gewünscht, da bei Definition von <Filename>script.php</Filename> in der info.xml scheinbar die renderAdminMenuTab Funktion nicht aufgerufen wird.

bzw. @FMoche wie können wir aus unserem Script oder der zugehörigen Templatedatei auf menuID zugreifen, wenn die bootstrap.php nicht genutzt wird?

Die Variante von @NETZdinge.de "?kPlugin=" . $plugin->getID() . "&cPluginTab='NameDesTabs'" geht in 5.2 zwar auch noch, aber wir hätte es gern variabler.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.049
2.300
Berlin
Firma
css-umsetzung
Ich Regel das bei mir per JS, so lande ich immer wieder in dem Tab den ich im Plugin zuletzt offen hatte, ohne das ich hier Parameter übergeben muss
Das nutze ich seit dem 4er Shop in allen Plugins, du musst also nichts weiter tun als dieses JS im Backend einzubinden.

Code:
var cssHashCode  = function() {
    var hash = 5381, i = this.length
    while(i)
        hash = (hash * 33) ^ this.charCodeAt(--i)
    return hash >>> 0;
};

jQuery(document).ready(function() {
    cssHashCode(document.location.href);
    $('.tabs-nav a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        var target = $(e.target).attr("href"); // activated tab
        $.cookie('target', target, {expires: 7});
    });

    if ($.cookie('target') != 'undefined') {
        $(".tabs-nav li.nav-item a[href='" + $.cookie('target') + "']").tab('show');
    }
});
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL-Shop 5.2.3 – Google-Shoppin-Plugin 2.3.0: Mehrere Rückgaberichtlinien (DE + Ausland) bei einem Feed / return_policy_label Plugins für JTL-Shop 0
Neu VeroPay Plugin? Kampfansage gegen PayPal? User helfen Usern 54
Neu Coupon-Steuer Plugin: Korrekte Steuerberechnung für JTL-Shop Coupons Plugins für JTL-Shop 1
Neu How to properly update order status through JTL Shop plugin? Allgemeine Fragen zu JTL-Shop 4
Neu Update auf 5.6.1. – Trusted Shops Plugin erzeugt Fehlercode 500 Installation / Updates von JTL-Shop 6
Neu 🌟Neues Plugin: 35up Automatisiertes Cross-Selling Plugins für JTL-Shop 0
Neu 🚀 Pilotkunden gesucht: HS Dynamic Pricing Plugin für JTL-Shop Plugins für JTL-Shop 0
Neu Plugin: DITH Mengenrabatt – Warenkorbrabatte nach Stückzahl (mix + match), ohne Preisänderung am Artikel Plugins für JTL-Shop 0
Neu 🚀 JTL Shop Performance Check (Free): Kostenloses Plugin Plugins für JTL-Shop 0
Neu HTTP ERROR 500 - plugin installieren JTL-Shop - Fehler und Bugs 0
Neu Neues Plugin: DITH ShipNow – Versand-Countdown ⏱️ Plugins für JTL-Shop 0
Neu Paypal Plugin JTL-Shop - Fehler und Bugs 1
Neu Fragen zum KBA Finder Plugin (CiN) Plugins für JTL-Shop 1
Neu JTL Shop Brevo Plugin meldet keine Abmeldungen an JTL Shop + Kontakte landen nicht in der Willkommenssequenz Plugins für JTL-Shop 0
Neu Neues PLugin: DITH Lieferantenbestand – realistische Lieferzeiten mit Lieferanten- + Eigenbestand Plugins für JTL-Shop 0
Neu PayPal-Plugin blockiert bei PayPal-Störung Checkout JTL-Shop - Fehler und Bugs 4
Neu Teststand auf localhost - Plugin-Lizenzen abgelaufen Plugins für JTL-Shop 2
Neu Neues Plugin: JTL Closed Shop – Zugangsbeschränkung, Pre-Sale & Wartungsmodus für deinen JTL-Shop Plugins für JTL-Shop 2
Neu KI-WaWi-Workflows: Eigene KI-Endpunkte direkt aus JTL-Workflows ansprechen – ohne Plugin, flexibel und schnell Dienstleistung, Jobs und Ähnliches 3
Neu Mindestbestellwerte nach verschiedenen Lieferarten mit dem Plugin Lieferslot Allgemeine Fragen zu JTL-Shop 1
Neu PayPal Checkout Plugin (iPhone), Probleme mit PayPal-App Plugins für JTL-Shop 0
Neu Plugin: Mengenrabatt im Warenkorb nach Artikelanzahl Plugins für JTL-Shop 0
Neu 📢 Neues Plugin "JTL Translate Pro" by Nirico.de Plugins für JTL-Shop 0
Neu JTL PayPal Plugin - keine Einstellmöglichkeiten, keine Anzeige im Frontend Plugins für JTL-Shop 2
Neu Plugin-Idee: Überkäufe Lieferantenbestände & Lieferzeiten (API/CSV/XML) in Shop & Wawi Plugins für JTL-Shop 2
Neu Plugin Manager Fehlermeldung JTL-Shop - Fehler und Bugs 4
Neu Nach Update auf PayPal 2.1.0 doppelte Zahlungsarten und Ratepay Plugin erforderlich Plugins für JTL-Shop 0

Ähnliche Themen