CSS- und JavaScript-Anpassungen

Fragen Rund um den Quelltext.
Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

CSS- und JavaScript-Anpassungen

Beitragvon Florian » Mo 29. Jan 2018, 14:37

Hallo,

ich möchte gerne eigene CSS-Anweisungen und JavaScript global einbinden, ohne das die Verweise nach jedem Update/Upgrade erneut eingepflegt werden müssen. Diese wäre der Fall, wenn die Verweise direkt in die Template-Dateien "page.tpl" und "popup.tpl" ergänzt werden.

Bei meiner Analyse des Quellcodes habe ich entdeckt, dass für CSS-Anweisungen einfach eine Datei "./themes/new/css/custom.css" und "./themes/new/css/custom_popup.css" angelegt werden kann. Das passt.

Allerdings gibt es eine derartige Lösung nicht für JavaScript-
Zuletzt geändert von Florian am Mo 29. Jan 2018, 14:44, insgesamt 1-mal geändert.

Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

CSS- und JavaScript-Anpassungen

Beitragvon Florian » Mo 29. Jan 2018, 14:42

..., lediglich über ein Modul lässt sich eine gleichnamige JS-Datei im Ordner "./js/" ablegen und automatisch verarbeiten - dann aber auch nur im Modulkontext und nicht global.

Wenn es gegenwärtig keinen anderen Weg gibt, wäre es super, entsprechend dem Ansatz der CSS-Dateien, eine Datei "./themes/new/css/custom.js" und ggf. "./themes/new/css/custom_popup.js" anlegen zu können, die dann ebenso mit in den Header des Templates wandert.

P.S. Der Button zum Ändern eines Beitrags im Forum wird bei mir nur sehr minimal angezeigt:
Bildschirmfoto am 2018-01-29 um 14.45.48-fullpage.png
Bildschirmfoto am 2018-01-29 um 14.45.48-fullpage.png (10.33 KiB) 1461 mal betrachtet
Lieben Dank und Grüße
Florian

sauterbe
Administrator
Beiträge: 6
Registriert: Mi 31. Dez 2014, 14:34

Re: CSS- und JavaScript-Anpassungen

Beitragvon sauterbe » Mo 29. Jan 2018, 19:23

das geht eigentlich (aus dem quelltext von wawision)

f(is_file("./themes/new/css/custom.css"))
$this->Tpl->Set('FINALCSSLINKS','<link href="./themes/new/css/custom.css" rel="stylesheet" type="text/css" />');

if(is_file("./themes/new/css/custom_popup.css"))
$this->Tpl->Set('FINALCSSLINKSPOPUP','<link href="./themes/new/css/custom_popup.css" rel="stylesheet" type="text/css" />');


klappt das nicht?

Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

Re: CSS- und JavaScript-Anpassungen

Beitragvon Florian » Mi 31. Jan 2018, 15:15

Ja, den Ansatz hatte ich wie in meinen ersten Beiträgen beschrieben bereits entdeckt und für CSS-Anweisungen klappt das so auch, jedoch gibt es einen derartigen Ansatz wohl (noch) nicht für JavaScript. Und genau der fehlt mir. Oder habe ich etwas übersehen?

sauterbe
Administrator
Beiträge: 6
Registriert: Mi 31. Dez 2014, 14:34

Re: CSS- und JavaScript-Anpassungen

Beitragvon sauterbe » Do 1. Feb 2018, 20:53

ah ok / aktuell gibt es das nur für css das stimmt

Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

Re: CSS- und JavaScript-Anpassungen

Beitragvon Florian » Do 22. Feb 2018, 13:45

Habe noch einmal geforscht. Die Methode "Show()" der Klasse "Page" in der Datei "./phpwf/plugins/class.page.php" sowie die Methode "Run()" der Klasse "Player" in der Datei "./phpwf/class.player.php" in der die "page.tpl" bzw. "popup.tpl" Templates verarbeitet werden, lassen sich derzeit wohl nicht überladen, um auf diesem Wege eine angepasste Version "page_custom.tpl" der "page.tpl" bzw. der "popup.tpl" zu parsen.

Daher wäre es super, in einer der nächsten Versionen eine eigene Javascript-Datei aus Theme einbinden zu können, entsprechend dem Ansatz der CSS-Datei.

Vielen Dank und beste Grüße
Florian

sauterbe
Administrator
Beiträge: 6
Registriert: Mi 31. Dez 2014, 14:34

Re: CSS- und JavaScript-Anpassungen

Beitragvon sauterbe » Fr 23. Feb 2018, 05:56

wir haben ab der 17.4 das angeopasst das man auch _custom.tpl machen kann

Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

Re: CSS- und JavaScript-Anpassungen

Beitragvon Florian » Fr 23. Feb 2018, 10:49

Haben die 17.4 beta laufen, "./www/themes/new/templates/page_custom.tpl" wird leider nicht verarbeitet. Der Ansatz eine "custom.js" äquivalent zur "custom.css" einbinden zu können halte ich auch für die meiste Fälle für ausreichend. Hätte auch den Vorteil das man nach einem Update ggf. update-bedingten Neuerungen/Änderungen aus der "page.tpl" in die angepasste "page_custom.tpl" übertragen muss.

Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

Re: CSS- und JavaScript-Anpassungen

Beitragvon Florian » Fr 23. Feb 2018, 11:35

Entsprechend der Erweiterung der Methode "Parse" in der Klasse "TemplateParser" aus dem Beitrag "Anpassund einer Seite und Überlagen des Templates", lässt sich auch die Methode "FinalParse" erweitern, dann wird u.A. auch die "page_custom.tpl" und "popup_custom.tpl" verarbeitet. Anpassungen der Klassen "Page" und "Player" sind damit obsolet.

Code: Alles auswählen

  function FinalParse($_template){

    // check if custom template exists_template
    $checkcustom = str_replace('.tpl','_custom.tpl',$_template);
    if(isset($this->TEMPLATELIST[$checkcustom])) $_template = $checkcustom;
Ein "custom.js" ins Template laden lässt sich übrigens durch zusätzliche Methode z.B. "CustomJs" in einer überladenen "erpAPI" Klasse bewerkstelligen, die dann noch im Konstruktor der Klasse aufgerufen werden muss.

Code: Alles auswählen

  function CustomJs()
  {

    if(is_file("./themes/new/js/custom.js"))
      $this->app->Tpl->Set('ADDITIONALJAVASCRIPT','<script type="text/javascript" src="./themes/new/js/custom.js"></script>');

  }

Florian
Beiträge: 0
Registriert: Mo 15. Mai 2017, 17:05

Re: CSS- und JavaScript-Anpassungen

Beitragvon Florian » Fr 23. Feb 2018, 16:24

Damit individuelle Anpassungen an PHP-Dateien, die gegenwärtig von WaWision noch nicht mit dem Zusatz "_custom" verarbeitet werden (wie z.B."./phpwf/plugins/class.page.php"), bei einem Update/Upgrade nicht verloren gehen bietet es sich an, die Dateien bereits mit dem Zusatz "_custom" anzulegen und diese dann in der Datei ohne den Zusatz per include-Befehl zu laden. Nach einem Update/Upgrade muss dann lediglich die include-Befehle wieder in die Datei setzten, was sich ggf. auch automatisiert per Batch-Script erledigen lässt.