Code - Fragen

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen (Login-Page)

Post by lck » Wed Aug 05, 2020 8:09 pm

Ist es möglich auf der Login-Seite Fa-Icons zu nutzen, wenn in der Konfiguration von Fa_XH Autoload auf OFF ist (das ist der Standardzustand)?

Per template.htm geht das nicht, da es auf der Login-Seite gar nicht eingebunden wird. Dazu müsste man wohl in functions.php die function loginforms() ändern oder mit userfuncs.php arbeiten :? .
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Wed Aug 05, 2020 11:02 pm

lck wrote:
Wed Aug 05, 2020 8:09 pm
Ist es möglich auf der Login-Seite Fa-Icons zu nutzen, wenn in der Konfiguration von Fa_XH Autoload auf OFF ist (das ist der Standardzustand)?

Per template.htm geht das nicht, da es auf der Login-Seite gar nicht eingebunden wird. Dazu müsste man wohl in functions.php die function loginforms() ändern oder mit userfuncs.php arbeiten :? .
Ja, das hart kodierte Login-Template ist wohl etwas zu starr.

Für jetzt könnte man wohl tatsächlich userfuncs.php nutzen (für PHP >= 5.4; für ältere PHP Versionen siehe Hilfedatei):

Code: Select all

(new Fa\RequireCommand)->execute();
Allerdings ist userfuncs.php eigentlich wie ein Plugin (es wird vor den Plugins geladen, also doch etwas anders, was aber für Templates eher nicht relevant sein sollte), und Templates können ja Plugins mit ausliefern. Das Plugin bräuchte lediglich index.php (mit dem obigen Code) und eine leere admin.php (nicht sicher, ob das immer noch erforderlich ist). Und man könnte bei Bedarf Konfigurations- und Sprachdateien nutzen; vielleicht eine praktikable Alternative zur zuvor vorgeschlagenen Template-Config? – einfach templates/<template> und plugins/<template>.
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Thu Aug 06, 2020 9:46 am

cmb wrote:
Wed Aug 05, 2020 11:02 pm
Für jetzt könnte man wohl tatsächlich userfuncs.php nutzen (für PHP >= 5.4; für ältere PHP Versionen siehe Hilfedatei):
WOW, funktioniert und ja, die Hilfedatei sollte man lesen bevor man frägt ;) .
cmb wrote:
Wed Aug 05, 2020 11:02 pm
... und Templates können ja Plugins mit ausliefern. Das Plugin bräuchte lediglich index.php (mit dem obigen Code) und eine leere admin.php (nicht sicher, ob das immer noch erforderlich ist).
Funktioniert auch. Die admin.php ist hier nicht notwendig.
cmb wrote:
Wed Aug 05, 2020 11:02 pm
Und man könnte bei Bedarf Konfigurations- und Sprachdateien nutzen; vielleicht eine praktikable Alternative zur zuvor vorgeschlagenen Template-Config? – einfach templates/<template> und plugins/<template>.
Gute Idee, das werde ich mir mal genauer anschauen, wenn Zeit ist. Danke Christoph!
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Fri Dec 24, 2021 1:03 pm

In der Druckansicht werden ja nur xhstyles.css und das Template CSS eingebunden, keine font-awesome.min.css. Auch die Zweitsprachen CSS Dateien wie z.B. in "Little Jo" nicht.
Irgendwie schon komisch, wenn dann die Druckansicht andere Farben hat als in der Zweitsprachenseite gewollt, bzw. Keine FA-Icons auftauchen. Fast ein BUG.

Wie könnte man das erreichen, wo müsste man da manipulieren?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Fri Dec 24, 2021 3:37 pm

lck wrote:
Fri Dec 24, 2021 1:03 pm
In der Druckansicht werden ja nur xhstyles.css und das Template CSS eingebunden, keine font-awesome.min.css. Auch die Zweitsprachen CSS Dateien wie z.B. in "Little Jo" nicht.
Irgendwie schon komisch, wenn dann die Druckansicht andere Farben hat als in der Zweitsprachenseite gewollt, bzw. Keine FA-Icons auftauchen. Fast ein BUG.
Die Druckansicht und auch das Loginformular verwenden das gleiche eingebaute Template. Das FA-Problem könnte man also genauso lösen, wie weiter oben für das Loginformular beschrieben. Oder klappt das hier nicht?

Bezüglich Template spezifischer CSS-Dateien und ähnlichen Assets: egal, ob die im Template hart-kodiert sind, oder dort per PHP an $hjs und Co. übergeben werden – davon weiß das eingebaute Template nichts (eben weil das Template gar nicht erst zum Zug kommt). Abgesehen von userfuncs.php oder einem kleinen Plugin per Template, sehe ich nur die Möglichkeit, dass wir Templates dahingehend erweiteren, dass sie ein PHP-Script haben können, wo solche Dinge getan werden, und das eben immer ausgeführt wird. Oder vielleicht, dass Templates selbst das eingebaute Miniformular ersetzen können, indem sie eine entsprechende Funktion definieren. Na ja, letztlich ist beides das gleiche in Grün.
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Sat Dec 25, 2021 10:41 am

cmb wrote:
Fri Dec 24, 2021 3:37 pm
Die Druckansicht und auch das Loginformular verwenden das gleiche eingebaute Template. Das FA-Problem könnte man also genauso lösen, wie weiter oben für das Loginformular beschrieben. Oder klappt das hier nicht?
Doch das klappt.
lck wrote:
Fri Dec 24, 2021 1:03 pm
Bezüglich Template spezifischer CSS-Dateien und ähnlichen Assets: egal, ob die im Template hart-kodiert sind, oder dort per PHP an $hjs und Co. übergeben werden – davon weiß das eingebaute Template nichts (eben weil das Template gar nicht erst zum Zug kommt). Abgesehen von userfuncs.php oder einem kleinen Plugin per Template ...
Ah ja, ok. Dann müsste das Einbinden der Zweitsprachen CSS-Dateien in der index.php des Template Plugins erfolgen und nicht in der template.htm. Das klappt auch. Danke Christoph.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Mon Dec 27, 2021 10:50 am

lck wrote:
Sat Dec 25, 2021 10:41 am
Dann müsste das Einbinden der Zweitsprachen CSS-Dateien in der index.php des Template Plugins erfolgen und nicht in der template.htm. Das klappt auch.
Problem plugins/<template>.

1.) Das Einbinden der CSS-Dateien per Plugin index.php erfolgt ja vor der Template CSS-Datei. Da tut sich aber ein Problem auf, man müsste hier meist mit !important arbeiten, da ansonsten die Werte überschrieben würden. Oder kann man das beeinflussen?

2.) Das Plugin müsste abhängig vom Template geladen/eingebunden werden, also nur dann, wenn das entsprechende Template aktiv ist. Ansonsten kann es eventuell Darstellungsprobleme bei anderen Templates geben. Das könnte aber per if (isset(...)) aus der config.php abgefragt werden, oder?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Code - Fragen

Post by cmb » Mon Dec 27, 2021 6:20 pm

lck wrote:
Mon Dec 27, 2021 10:50 am
1.) Das Einbinden der CSS-Dateien per Plugin index.php erfolgt ja vor der Template CSS-Datei. Da tut sich aber ein Problem auf, man müsste hier meist mit !important arbeiten, da ansonsten die Werte überschrieben würden. Oder kann man das beeinflussen?
Oh, das ist garstig. Letztlich wird das Template-Stylesheet per head() nach $hjs eingebunden, so dass man ein Zweitsprachen-Stylesheet nicht per Plugin index.php danach einbinden kann. Allerdings wird das schließende </head> ja vom Template erzeugt, so dass man es von dort einbinden könnte (evtl. durch Aufruf einer Funktion, die vom Template-Plugin bereit gestellt wird).
lck wrote:
Mon Dec 27, 2021 10:50 am
2.) Das Plugin müsste abhängig vom Template geladen/eingebunden werden, also nur dann, wenn das entsprechende Template aktiv ist. Ansonsten kann es eventuell Darstellungsprobleme bei anderen Templates geben. Das könnte aber per if (isset(...)) aus der config.php abgefragt werden, oder?
Geht im Prinzip sinngemäß, aber das berücksichtigt keine Seiten spezifischen Templates (page_params) oder Plugins wie TemplateSwitcher. Also besser basename($pth['folder']['template']) prüfen, und zwar erst, nachdem alle Plugins geladen wurden; etwa:

Code: Select all

XH_afterPluginLoading(function () {
    global $pth;
    if (basename($pth['folder']['template']) === "mein_template_name") {
        // mach jetzt was zu tun ist
    }
}
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Mon Dec 27, 2021 8:25 pm

cmb wrote:
Mon Dec 27, 2021 6:20 pm
Geht im Prinzip sinngemäß, aber das berücksichtigt keine Seiten spezifischen Templates (page_params) oder Plugins wie TemplateSwitcher. Also besser basename($pth['folder']['template']) prüfen, und zwar erst, nachdem alle Plugins geladen wurden; etwa:

Code: Select all

XH_afterPluginLoading(function () {
    global $pth;
    if (basename($pth['folder']['template']) === "mein_template_name") {
        // mach jetzt was zu tun ist
    }
}
Danke, das funktioniert. Musste am Ende des Codes noch eine ")" ergänzen und bei global noch $sl.

Code: Select all

XH_afterPluginLoading(function () {
    global $pth, $sl;
	
    if (basename($pth['folder']['template']) === "little-jo_test") {
		echo '<link rel="stylesheet" type="text/css" href="'.$pth['folder']['template'].$sl.'.css">'."\n";
    }
}
)
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Code - Fragen

Post by lck » Mon Dec 27, 2021 8:30 pm

cmb wrote:
Mon Dec 27, 2021 6:20 pm
lck wrote:
Mon Dec 27, 2021 10:50 am
1.) Das Einbinden der CSS-Dateien per Plugin index.php erfolgt ja vor der Template CSS-Datei. Da tut sich aber ein Problem auf, man müsste hier meist mit !important arbeiten, da ansonsten die Werte überschrieben würden. Oder kann man das beeinflussen?
Oh, das ist garstig. Letztlich wird das Template-Stylesheet per head() nach $hjs eingebunden, so dass man ein Zweitsprachen-Stylesheet nicht per Plugin index.php danach einbinden kann. Allerdings wird das schließende </head> ja vom Template erzeugt, so dass man es von dort einbinden könnte (evtl. durch Aufruf einer Funktion, die vom Template-Plugin bereit gestellt wird).
So weit verstanden. Bei der Umsetzung hapert's allerdings :( .
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Post Reply