CMSimple_XH 1.7.0rc1

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
knollsen
Posts: 459
Joined: Wed Nov 06, 2013 2:28 pm

Re: CMSimple_XH 1.7.0rc1

Post by knollsen » Sat Jun 24, 2017 8:51 pm

Hm, das hat aber eigentlich nichts mit der Ladereihenfolge der Plugins zu tun, denn ....
Muss aber, denn andersrum funktioniert die Übergabe.
Das erste Plugin ist im template ganz oben nach <body> <?php echo myFunction("1",false") ;?> ..... nach 5 divs wird dann die Seite mit Content() geladen und auf einer Unter-Seite das 2 Plugin mit {{{my2-Function("2",false");}}}
Jetzt frag ich mich halt, warum myFunction die Variable nicht an my2-Function übergeben kann, aber my2-Function die Variable an myFunction.???

Im Grunde sind ja die Variablen eh nicht global beim laden der Seite vorhanden, denn sie werden ja gefüllt, erst mit dem Funktionsaufruf. Also bedeutet das die Plugins im Content mit {{{plugin}}} auf ner Seite, ehr geladen werden, als der Pluginaufruf im template mit <?php echo plugin;?>.
So hat Du dich ja ausgedrückt? Als würde die Seite rückwärts aufgelöst. :roll: (wie von </html> nach <body>)
...globalen Variable statt per Funktionsaufruf im Template auch einfach vom User manuell ...
Klaro geht das, aber wenn sowas automatisch funktioniert kann, warum nicht.
...und in XH 1.7 just bevor sie verwendet
Aha - also könnte ich auf das andere Plugin zugreifen (wenn vorhanden) wäre ne Idee

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Sat Jun 24, 2017 9:38 pm

knollsen wrote:
Hm, das hat aber eigentlich nichts mit der Ladereihenfolge der Plugins zu tun, denn ....
Muss aber, denn andersrum funktioniert die Übergabe.
Das erste Plugin ist im template ganz oben nach <body> <?php echo myFunction("1",false") ;?> ..... nach 5 divs wird dann die Seite mit Content() geladen und auf einer Unter-Seite das 2 Plugin mit {{{my2-Function("2",false");}}}
Jetzt frag ich mich halt, warum myFunction die Variable nicht an my2-Function übergeben kann, aber my2-Function die Variable an myFunction.???
Pluginaufrufe im Content werden nicht erst mit dem Aufruf der content() Funktion ausgewertet[1], sondern bereits bevor das Template geladen wird, aber nachdem die Plugins geladen wurden. Daher kann my2-Function() eine globale Variable setzen, die in myFunction() verfügbar ist, aber eben nicht umgekehrt.
knollsen wrote:
...globalen Variable statt per Funktionsaufruf im Template auch einfach vom User manuell ...
Klaro geht das, aber wenn sowas automatisch funktioniert kann, warum nicht.
Na ja, was heißt automatisch? So wie es jetzt ist, muss ja irgendjemand den Funktionsaufruf mit dem Parameter im Template einfügen. Dann könnte man auch zusätzlich (oder alternativ?) zu diesem Funktionsaufruf den entsprechenden Parameter in die Pluginkonfiguration schreiben. Damit der selbe Wert nicht zweimal notiert werden muss (DRY) kann er in der Funktion ebenfalls aus der Konfiguration gelesen werden.

Grundsätzlich sollte man aber hinterfragen, ob der Informationsaustausch mittels globaler Variable (eine Pluginkonfigurationsoption ist letztlich auch eine solche) sinnvoll ist. Ich selbst finde das immer suboptimal. In diesem Fall wäre es auch denkbar, dass nicht Plugin1 die Variable setzt und Plugin2 sie liest, sondern dass Plugin2 eine Funktion von Plugin1 aufruft, die den Wert zurückliefert. Das hilft dir hier nicht direkt (da es an der Ausführungsreihenfolge nichts wirklich ändert), aber es wäre zusätzlich eine Option.

Jedenfalls kommt mir diese Pluginabhängigkeit seltsam vor (was nicht heißt, dass sie nicht sinnvoll sein kann).
  • Können die beiden Plugins denn überhaupt unabhängig voneinander genutzt werden (also nur Plugin1 bzw. nur Plugin2)? Falls nein, dann macht man vielleicht besser ein Plugin daraus.
  • Enthalten sie gleiche oder sehr ähnliche Funktionalität? Falls ja, dann könnte es sinnvoll sein die gemeinsame Funktionalität irgendwie auszugliedern.
[1] Ehrlich gesagt, weiß ich nicht wirklich, warum das so ist. Scheint irgendwie fraglich. Auf jeden Fall ist es schon immer so, und das könnte daran liegen, dass die Evaluierung von CMSimple-Skripting früher nicht in einer Funktion erfolgt ist, sondern im globalen Gültigkeitsbereich, der eben aus content() heraus nicht aufgerufen werden kann. Das wäre seit XH 1.5 möglich, aber dann stünden, wie ich gerade feststelle, z.B. die $description und die $keywords im Template nicht zur Verfügung. Ohne Bruch mit der Abwärtskompatibilität kann das also nicht geändert werden.
Christoph M. Becker – Plugins for CMSimple_XH

knollsen
Posts: 459
Joined: Wed Nov 06, 2013 2:28 pm

Re: CMSimple_XH 1.7.0rc1

Post by knollsen » Sat Jun 24, 2017 11:43 pm

Ich verstehe das schon wie Du das meinst!
Das Gleiche ist aber anders (in xh 1.6), wenn ich im Template (selbes Beispiel) die Funktion nicht an das Plugin übergebe, sondern an die userfuncs.php. Dann Verhält sich das anders und die Übergabe funktioniert komischerweise. Klar sind die beiden Plugins getrennt. Ich dachte mir nur eine spez. Erweiterung ohne zusätzliche Parameter zu übergeben, falls beide Plugins installiert sind. Ich mach das aber jetzt anders, ein guten Tipp haste mir ja gegeben! Danke

Hartmut
Posts: 553
Joined: Sat Nov 05, 2011 6:13 pm
Location: Butzbach, Deutschland
Contact:

Re: CMSimple_XH 1.7.0rc1

Post by Hartmut » Sun Jun 25, 2017 11:26 am

Hallo,

ich habe einmal eine Frage zur Warnmeldung "intl" bei einer jungfäulichen Installation von CMSimple_XH 7.0rc1.

In einem meiner Strato Hosting Pakete habe ich CMSimple_XH 7.0rc1 neu installiert und unter "Einstellungen" -> "Info" erhalte ich die Warnmeldung "Prüfe, dass die Erweiterung 'intl' geladen ist … Warnung".

Was hat diese Meldung zu bedeuten und wie kann man sie unter CMSimple_XH "Info" "verschwinden" lassen?

CMSimple_XH 7.0rc1
PHP Info:
System: SunOS localhost 5.10 Generic_142901-13 i86pc
PHP Version 5.6.30
(intl wird dort nicht aufgelistet)

Viele Grüße
Hartmut

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Sun Jun 25, 2017 12:23 pm

Hartmut wrote:In einem meiner Strato Hosting Pakete habe ich CMSimple_XH 7.0rc1 neu installiert und unter "Einstellungen" -> "Info" erhalte ich die Warnmeldung "Prüfe, dass die Erweiterung 'intl' geladen ist … Warnung".

Was hat diese Meldung zu bedeuten und wie kann man sie unter CMSimple_XH "Info" "verschwinden" lassen?
Die Meldung bedeutet, dass die PHP-Erweiterung "intl" nicht geladen (also vorhanden) ist. Da es eine Warnung (und kein Fehlschlag) ist, wird diese Erweiterung nicht unbedingt benötigt, so dass man die Warnung ignorieren kann. Zur Zeit wird intl nur verwendet, um eine (bessere) Internationalisierung der Datumsangaben zu erreichen (v.a. lastupdate() im Template).

Die Warnung kann man verschwinden lassen, indem man die intl Erweiterung aktiviert (geht u.U. im Control-Panel des Webspace; ansonsten müsste das vermutlich der Provider durchführen).
Christoph M. Becker – Plugins for CMSimple_XH

Hartmut
Posts: 553
Joined: Sat Nov 05, 2011 6:13 pm
Location: Butzbach, Deutschland
Contact:

Re: CMSimple_XH 1.7.0rc1

Post by Hartmut » Sun Jun 25, 2017 5:31 pm

cmb wrote:
Hartmut wrote:In einem meiner Strato Hosting Pakete habe ich CMSimple_XH 7.0rc1 neu installiert und unter "Einstellungen" -> "Info" erhalte ich die Warnmeldung "Prüfe, dass die Erweiterung 'intl' geladen ist … Warnung".

Was hat diese Meldung zu bedeuten und wie kann man sie unter CMSimple_XH "Info" "verschwinden" lassen?
Die Meldung bedeutet, dass die PHP-Erweiterung "intl" nicht geladen (also vorhanden) ist. Da es eine Warnung (und kein Fehlschlag) ist, wird diese Erweiterung nicht unbedingt benötigt, so dass man die Warnung ignorieren kann. Zur Zeit wird intl nur verwendet, um eine (bessere) Internationalisierung der Datumsangaben zu erreichen (v.a. lastupdate() im Template).

Die Warnung kann man verschwinden lassen, indem man die intl Erweiterung aktiviert (geht u.U. im Control-Panel des Webspace; ansonsten müsste das vermutlich der Provider durchführen).
Danke für die Info und ich werde dies für die Onlinedokumentation im Hinterkopf behalten.

Viele Grüße

Hartmut

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CMSimple_XH 1.7.0rc1

Post by frase » Wed Jun 28, 2017 11:03 am

Eine kleine Ungereimtheit ist mir aufgefallen.
Ich habe - damit ich's nicht vergesse - in einen Plugin-Ordner eine vorläufig völlig leere "version.nfo" gelegt.
Beim Aufruf der Seite: "Site/CMS Info" meldet der Debugger (im Adm-Modus):
NOTICE: Undefined offset: 5
..\cmsimple\functions.php:2753
Definitiv nichts Schlimmes. Wollte es nur mal erwähnen.

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Wed Jun 28, 2017 12:38 pm

frase wrote:Ich habe - damit ich's nicht vergesse - in einen Plugin-Ordner eine vorläufig völlig leere "version.nfo" gelegt.
Beim Aufruf der Seite: "Site/CMS Info" meldet der Debugger (im Adm-Modus):
NOTICE: Undefined offset: 5
..\cmsimple\functions.php:2753
Das ist diese Zeile. Ich würde da nicht nachbessern; die Notice ist eine guter Hinweis, dass was mit dem Format der version.nfo nicht passt. Wenn dich die Notice stört, du aber version.nfo noch nicht anpassen willst, dann benenn die Datei einfach um.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CMSimple_XH 1.7.0rc1

Post by frase » Wed Jun 28, 2017 12:54 pm

cmb wrote:Ich würde da nicht nachbessern; die Notice ist eine guter Hinweis ...
Genau.
Und wenn man bewusst etwas Falsches reinlegt, darf man sich nicht über Meldungen wundern ... :idea:
Alles okay, danke.

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

Re: CMSimple_XH 1.7.0rc1 > Menu.php

Post by lck » Sat Jul 01, 2017 9:09 pm

Wohin ist den die Datei .cmsimple/classes/Menu.php in CMSimple_XH 1.7.0rc1 entschwunden :shock:

Wie ich gerade feststellen musste, funktionieren ein paar Templates anscheinend so nicht mehr unter 1.7.0, da in meiner template.htm das Menü manipuliert wird per,

Code: Select all

<?php
require_once $pth['folder']['classes'] . 'Menu.php';

class MenuHorLi extends XH_Li
...
da gibt's dann einen sauberen
Fatal error: require_once(): Failed opening required './cmsimple/classes/Menu.php' (include_path='\xampp_7.1.1\php\PEAR') in D:\xampp\htdocs\...\...\...\templates\atwork\template.htm on line 2
Kopiere ich die Menu.php von 1.6.10 rüber, dann meckert der Debug-Modus:
WARNING: Cannot declare class XH_Li, because the name is already in use
D:\xampp\htdocs\...\...\...\cmsimple\functions.php:2644
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Post Reply