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

fibergirl

Sehr aktives Mitglied
14. April 2016
829
253
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
829
253
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.362
340
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
168
43
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
6.674
1.605
Berlin
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 Plugin für Boomerang Versandverpackungen Plugins für JTL-Shop 1
Neu Netto für Händler gleich, Brutto für Endkunden - Plugin oder andere Alternative? Allgemeine Fragen zu JTL-Shop 0
Neu 💙 Neues Plugin: Wunschzettel Plus (Wunschzettelauswahl direkt am Artikel) Plugins für JTL-Shop 0
Neu Paypal Plugin Version 1.2.0 läuft und 1.4.0. läuft nicht auf derselben Umgebung Plugins für JTL-Shop 0
Neu Fehlermeldung nach Bestellabschluss durch Plugin Gelöste Themen in diesem Bereich 7
Neu Neues Plugin: Google Translate / Übersetzer (DSGVO-konform und weitere Features) Plugins für JTL-Shop 2
Neu Händlerbund Plugin lässt sich nicht installieren Shop ver. 5.3.0 Plugins für JTL-Shop 1
Neu Eigene Seiten mit Plugin erstellen Technische Fragen zu Plugins und Templates 1
Neu Neues Plugin: Instagram-Feed Portlet (Als Galerie- oder Slideransicht und weitere Features) + 3x kostenlose Lizenzen Plugins für JTL-Shop 4
Neu 🌟Neues Plugin: Bounce Landingpage Plugins für JTL-Shop 5
Neu 504 Gateway Time-Out nginx bei Plugin-Updates Gelöste Themen in diesem Bereich 10
Neu Unterstützung bei JTL5-Shop-Überarbeitung gesucht - Template/Plugin uvm. Dienstleistung, Jobs und Ähnliches 1
Neu Erledigt - Plugin PayPal Checkout, Update auf 1.4.0, Komplettabsturz Plugins für JTL-Shop 1
Neu Paypal Plugin erzeugt "Quirks Mode" Betrieb / Pflege von JTL-Shop 0
Neu Mail-Versand & Plugin Doku Technische Fragen zu Plugins und Templates 2
Neu Variationen im Shop Auswahl zurücksetzen (Plugin?) Betrieb / Pflege von JTL-Shop 3
Neu NEU ✔️ PDF-Angebots-Plugin für den JTL-Shop 5 - PDF Angebote von der Produktseite oder aus dem Warenkorb heraus generieren B2C / B2B Plugins für JTL-Shop 5
Neu Neues Plugin: Hersteller Slider Portlet (Zentrierungs- oder Schwarz/Weiß-Modus, Responsive Anpassung..) inkl. 5 kostenlosen Lizenzen Plugins für JTL-Shop 4
Neu Plugin KBA Finder Implementierung/Darstellungsänderung Plugins für JTL-Shop 0
Neu Custom Template für Custom Artikel mit Plugin? Plugins für JTL-Shop 0
Neu JTL Connector Plugin Aktivierunf [Fehlermeldung] WooCommerce-Connector 1
Neu Erfahrung mit LS-Cache Plugin Technische Fragen zu Plugins und Templates 10
Neu 🌟Neues Plugin: FRASPY Altersprüfung & IdentitätsCheck Plugins für JTL-Shop 3
Neu 🎉 Neues Plugin: "Versandkosten und Lieferzeit automatisch beziehen - UPS Extension" 🎉 Plugins für JTL-Shop 2
Neu Neues Plugin: Formular Portlet (Drag&Drop Dateiupload by FilePond, Kontakt, Retoure, Reklamation, Gewerbenachweis..) Plugins für JTL-Shop 10
Neu Neues Plugin - Solar Steuerfrei (Mehrwertsteuerbefreiung nach §12 Abs. 3 UStGt für Solar- und Photovoltaikanlagen) Plugins für JTL-Shop 9
Neu Plugin Mail senden - Cc / Bcc Technische Fragen zu Plugins und Templates 4
Neu [Gelöst] IT Rechtskanzlei AGB Plugin Fehler "Plugin wurde nicht gefunden" Plugins für JTL-Shop 4

Ähnliche Themen