Fa_XH
Moderator: Tata
Re: Fa_XH
Hi Christoph,
bin gerade dabei mein alternatives Adminmenü zu überarbeiten. Ich hatte den Fehler gemacht, im simple-Template Buttons global zu stylen
Ist über die Menü-Styles lösbar.
Jetzt komme ich drauf, dass bei installiertem FA-Plugin das Adminmenü FA doppelt einbindet. Klar.
Macht eigentlich keine Probleme, ist aber nicht schön.
Im simple-Template hatte ich das mit deiner Hilfe gut gelöst.
Leider komme ich mit dem Abschnitt "Plugin Developers" in der Hilfe-Datei des FA-Plugins überhaupt nicht klar.
Hast du (bei Gelegenheit) Tipps dazu?
Genial wäre - wie im Template - eine Prüfung: Ist FA_XH installiert?
Wenn ja - OK.
Wenn nein - FA aus dem Adminmenü-Plugin einbinden. - Das wäre ja nur die eine Zeile, die font-awesome.min.css aufruft.
bin gerade dabei mein alternatives Adminmenü zu überarbeiten. Ich hatte den Fehler gemacht, im simple-Template Buttons global zu stylen
Ist über die Menü-Styles lösbar.
Jetzt komme ich drauf, dass bei installiertem FA-Plugin das Adminmenü FA doppelt einbindet. Klar.
Macht eigentlich keine Probleme, ist aber nicht schön.
Im simple-Template hatte ich das mit deiner Hilfe gut gelöst.
Leider komme ich mit dem Abschnitt "Plugin Developers" in der Hilfe-Datei des FA-Plugins überhaupt nicht klar.
Hast du (bei Gelegenheit) Tipps dazu?
Genial wäre - wie im Template - eine Prüfung: Ist FA_XH installiert?
Wenn ja - OK.
Wenn nein - FA aus dem Adminmenü-Plugin einbinden. - Das wäre ja nur die eine Zeile, die font-awesome.min.css aufruft.
Re: Fa_XH
Das ist prinzipiell das gleiche wie im Template; kann etwa so aussehen:frase wrote:Leider komme ich mit dem Abschnitt "Plugin Developers" in der Hilfe-Datei des FA-Plugins überhaupt nicht klar.
Hast du (bei Gelegenheit) Tipps dazu?
Code: Select all
if (class_exists('Fa\\RequireCommand')) {
$temp = new Fa\RequireCommand;
$temp->execute();
$temp = null;
} else {
// FA manuell einbinden
}
Christoph M. Becker – Plugins for CMSimple_XH
Re: Fa_XH
Code: Select all
if (XH_ADM && $cf['editmenu']['external'] === 'fhs_adminmenu') {
if (class_exists('Fa\\RequireCommand')) {
$command = new Fa\RequireCommand;
$command->execute();
//$temp = null;
} else {
$hjs .= tag('link rel="stylesheet" type="text/css" href="' . $pth['folder']['plugins'] . 'fhs_adminmenu/css/font-awesome.min.css"');
}
...
Funktioniert mit installiertem FA-Plugin.
Ist FA-Plugin deaktiviert (.) passiert folgendes:
Ganz oben erscheint:
Debug meldet:string(17) "Fa\RequireCommand" string(39) "./plugins/fa/classes/RequireCommand.php"
Der Witz ist, FA wird richtig eingebunden. Vom Plugin und leider jetzt auch zusätzlich vom Template.WARNING: include_once(./plugins/fa/classes/RequireCommand.php): failed to open stream: No such file or directory
D:\xampp_711\htdocs\sites\_CMSXH\fhs-simple\cmsimple\functions.php:2606
WARNING: include_once(): Failed opening './plugins/fa/classes/RequireCommand.php' for inclusion (include_path='D:\xampp_711\php\PEAR')
D:\xampp_711\htdocs\sites\_CMSXH\fhs-simple\cmsimple\functions.php:2606
Re: Fa_XH
Das liegt daran, dass der Autoloader noch nicht fertig programmiert ist. Die Meldung oben wird durch das var_dump() erzeugt, und die Warnungen kommen, weil auch wenn die gewünschte Datei nicht existiert, trotzdem versucht wird sie einzubinden.frase wrote:Ist FA-Plugin deaktiviert (.) passiert folgendes:
Ganz oben erscheint:Debug meldet:string(17) "Fa\RequireCommand" string(39) "./plugins/fa/classes/RequireCommand.php"WARNING: include_once(./plugins/fa/classes/RequireCommand.php): failed to open stream: No such file or directory
D:\xampp_711\htdocs\sites\_CMSXH\fhs-simple\cmsimple\functions.php:2606
WARNING: include_once(): Failed opening './plugins/fa/classes/RequireCommand.php' for inclusion (include_path='D:\xampp_711\php\PEAR')
D:\xampp_711\htdocs\sites\_CMSXH\fhs-simple\cmsimple\functions.php:2606
Mir ist halt nicht wirklich klar, wie man im Falle einer nicht vorhandenen Datei vorgehen soll. Einfach stillschweigend ignorieren ist in Deinem Fall das beste, aber Pluginentwickler könnte es verwirren, wenn z.B. durch einen Tippfehler die Klassendatei ohne Hinweis nicht geladen wird. Ich tendiere aber doch eher dazu, keine Meldung auszugeben; nutzt ein Entwickler eine nicht existierende Klasse ohne class_exists() Prüfung, dann kommt sowieso ein fataler Fehler; prüft er auf class_exists(), dann wird er wohl einen Fallback parat haben. Also den oben genannten Code durch folgenden ersetzen:
Code: Select all
// possible error handling
if (!file_exists($filename)) {
return;
}
// include the class file
include_once $filename;
Hm, das sollte eigentlich nicht passieren.frase wrote:Der Witz ist, FA wird richtig eingebunden. Vom Plugin und leider jetzt auch zusätzlich vom Template.
Christoph M. Becker – Plugins for CMSimple_XH
Re: Fa_XH
Da habe ich mich missverständlich ausgedrückt.cmb wrote:PS:
frase hat geschrieben:
Der Witz ist, FA wird richtig eingebunden. Vom Plugin und leider jetzt auch zusätzlich vom Template.
Hm, das sollte eigentlich nicht passieren.
FA wird richtigerweise vom adminmenu-Plugin eingebunden. Nicht vom FA-Plugin.
Erstmal danke für deine Mühe.
Ich schau' mal weiter.
Re: Fa_XH
Mit der Änderung in functions.php klappt alles bestens.
Bestens in laienhaftem Sinne
Die Folgen für andere kann ich nicht überschauen.
Wenn man nur irgendwie in Templates oder in Plugins prüfen könnte, ob es schon FA (als CSS eingebunden) irgendwo gibt, dann könnten wir uns das alles sparen. Ich meine, nicht auf das FA-Plugin prüfen, sondern nur, ob FA schon vorhanden ist. Geht aber sicher nicht - oder?
Bestens in laienhaftem Sinne
Die Folgen für andere kann ich nicht überschauen.
Wenn man nur irgendwie in Templates oder in Plugins prüfen könnte, ob es schon FA (als CSS eingebunden) irgendwo gibt, dann könnten wir uns das alles sparen. Ich meine, nicht auf das FA-Plugin prüfen, sondern nur, ob FA schon vorhanden ist. Geht aber sicher nicht - oder?
Re: Fa_XH
Gehen tut es irgendwie schon, aber es ist hässlich. Im Prinzip das gleiche Problem wie mit jQuery bevor das jQuery4CMSimple-Plugin entwickelt wurde. Daher halt auch Fa_XH. Ich denke, in den allermeisten Fällen kann man damit leben, dass man das Fa_XH Plugin eben erfordert, und keinen Fallback mit einem zusätzlich ausgelieferten Font Awesome realisiert. Erst recht, wenn Fa_XH in die Standard-Distribution aufgenommen werden sollte.frase wrote:Wenn man nur irgendwie in Templates oder in Plugins prüfen könnte, ob es schon FA (als CSS eingebunden) irgendwo gibt, dann könnten wir uns das alles sparen. Ich meine, nicht auf das FA-Plugin prüfen, sondern nur, ob FA schon vorhanden ist. Geht aber sicher nicht - oder?
Christoph M. Becker – Plugins for CMSimple_XH
Re: Fa_XH
Das sehe ich auch so. Wenn alles nur an einer / durch eine Stelle passiert muss man auch nur dort suchen, wenn mal etwas nicht klappt. Zur Not kann ein Plugin ja noch prüfen, ob das FA_XH - Plugin verfügbar ist und eine entsprechende Meldung ausgeben, wenn es fehlt. Je nach Art des Plugins könnte es so auch komplett die Arbeit verweigern.cmb wrote:Ich denke, in den allermeisten Fällen kann man damit leben, dass man das Fa_XH Plugin eben erfordert, und keinen Fallback mit einem zusätzlich ausgelieferten Font Awesome realisiert.
Und so würde ich mir das auch gleich für das CKEditor-Plungin wünschen.
Re: Fa_XH
Ich würde das Plugin eigentlich gerne gleich mit Fa_XH ausliefern, aber ich warte noch auf eine offizielle Version vom CKEditor, die external_plugins/ unterstützt, damit ich in der Doku die Einbindung erklären und die Erfordernis einer bestimmten CKEditor-Version angeben kann.Holger wrote:Und so würde ich mir das auch gleich für das CKEditor-Plungin wünschen.
Christoph M. Becker – Plugins for CMSimple_XH
Re: Fa_XH
Na, das hört sich ja vielversprechend an. Du hast mir ja gestern bei dem Problem des CKEditors mit RealBlog_XH etc. geholfen. Damit bin ich einen großen Schritt zu einem offiziellem Release weiter gekommen .cmb wrote:Ich würde das Plugin eigentlich gerne gleich mit Fa_XH ausliefern, aber ich warte noch auf eine offizielle Version vom CKEditor, die external_plugins/ unterstützt, damit ich in der Doku die Einbindung erklären und die Erfordernis einer bestimmten CKEditor-Version angeben kann.
Ich tue was ich kann!