WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 30.06.2021 19:27:18

choppopo
Gast

[gelöst] Backend: Script vor </body> einhängen?

Hallo!
Bin wieder mal beim Aufräumen.

Ich hab da ein Modul, das eigentlich nicht mehr braucht als ein
<script src="{WB_URL}/modules/page_toolbox/starttoolbox.js" type="text/javascript"></script>
am Ende jeder Backend-Seite.

Kann ich das auch irgendwie automatisch haben, also dass dieses JS ohne Änderung am Theme eingehängt wird?

Also so wie Cookie Consent, nur eben im Backend?

Beitrag geändert von choppopo (30.06.2021 20:12:32)

#2 01.07.2021 11:43:13

stefanek
Developer

Re: [gelöst] Backend: Script vor </body> einhängen?

Die Themes wissen nicht was sich in einzelnen Modulen tut wenn die Module nicht explizit aufgerufen werden.
Wenn es ein AdminTool ist, wird es unter AdminTools aufgerufen, wenn das Modul ausgewählt ist.
Wenn es ein PageType Modul ist, eben dort (usw.)

Du musst das Script also tatsächlich manuell ins Theme einhängen.
Alternativ ließe sich (sehr) wahrscheinlich auch etwas über das OpF Dashboard machen, aber da bin ich momentan nicht auf dem Laufenden. Theoretisch würde Dein Modul ein OpF Plugin registrieren welches dann im gesamten Backend wirkt.

Gruß,
Christian


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#3 01.07.2021 21:35:46

mrbaseman
Developer

Re: [gelöst] Backend: Script vor </body> einhängen?

ja, eine coole Anwendung für einen Plugin-Filter, mal schnell zusammengeklickt und exportiert...

Offline

Liked by:

stefanek

#4 02.07.2021 01:20:01

stefanek
Developer

Re: [gelöst] Backend: Script vor </body> einhängen?

Super Martin.
Vielen Dank.

Geht es nicht auch, dass man einen Filter im eigenen Modul mitliefert und diesen dann bei der Installation mit installiert/initialisiert?

Kleiner Änderungsvorschlag:
ich würde in der filter.php den Funktionsaufruf etwas ändern, statt

insertJsFile($uFileLoc=WB_URL."/modules/page_toolbox/starttoolbox.js", $sDomPos = 'BODY BTM-');

ohne die Parameter/Variablen

insertJsFile(WB_URL."/modules/page_toolbox/starttoolbox.js", 'BODY BTM-');

Schönen Gruß,
Christian

Beitrag geändert von stefanek (02.07.2021 01:23:28)


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#5 02.07.2021 09:59:26

mrbaseman
Developer

Re: [gelöst] Backend: Script vor </body> einhängen?

Klar, die filter.php kann man in ein anderes Modul reinpacken und den Aufruf aus der plugin_install.php mit in die install.php dieses Moduls, die Pfade anpassen und fertig.

Naja, und wenn man's als Teil eines Moduls ausliefert, dann muss man in der uninstall.php den Filter auch wieder abmelden, weil ja die filter.php ggf. mit dem Modul auch wieder deinstalliert wird. Das steht in der Hilfe unter Modul-Filter beschrieben.

Alternativ, wenn man den Filter bei der Deinstallation im System zurücklassen will (was ich nicht empfehlen würde), kann man auf die Abmeldung verzichten, sollte dann aber die Funktion nicht in einem File ablegen sondern als String im func-Parameter beim Registrieren des Filters mit übergeben. Das ist aber unschön, wenn man so nebenbei was ins System mogelt und bei der Deinstallation auch nicht wieder aufräumt.

Offline

Liked by:

stefanek

#6 02.07.2021 11:54:27

choppopo
Gast

Re: [gelöst] Backend: Script vor </body> einhängen?

Hallo und Danke!
Der Filter tut genau was soll. So insgesamt verstehe ich aber nur Bahnhof ;-)

Das Modul - nennen wir es "page_toolbox": Was wäre das eigentlich für ein Typ: Ich hab mal $module_function = 'snippet'; gewählt, weil es  nirgends auftauchen soll. Aber es soll natürlich auch deinstalliert werden können - und dabei den OPF wieder mitnehmen, sonst gibt es Fehler (404)

In der install.php sollte also auch der OPF installiert (und aktiviert) werden, in der uninstall.php soll auch der Filter deinstalliert werden.

Wie geht das?

#7 02.07.2021 14:18:22

stefanek
Developer

Re: [gelöst] Backend: Script vor </body> einhängen?

In die uninstall.php könntest Du eine der OpF Funktionen verwenden, um das Plugin bei der Deinstallation zu löschen. (Alternativ: eine eigene Query reinschreiben, die in der DB das Plugin löscht.)

Damit kein Fehler erscheint könntest Du aber auch in der filter.php des Plugins die Funktion ändern:

function opff_insert_toolbox(&$content, $page_id, $section_id, $module, $wb) {
	$file = '/modules/page_toolbox/starttoolbox.js';
	if(file_exists(WB_PATH.$file)){
		insertJsFile(WB_URL.$file, 'BODY BTM-');
	}
  return(TRUE);
}

Dann wird's auch nicht meckern.


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

Fußzeile des Forums

up