Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 16. April 2018 00:17

Daniel
hat von CMS/ms gehört
Registriert: 07. Februar 2014
Beiträge: 13

LISE und JSAvailability auf CMSms 2

Hallöchen alle miteinander,

ich einem Projekt für Fereinwohnungen habe ich mittels ListIt und JSAvailability ein Belegungsplan erstellt.
Leider ist ListIt unter CMSms Version 2 nicht mehr lauffähig. Lise ist ein ebenwürdiger Nachfolger, aber leider unterstützt Lise nicht mehr JSAvailability. Ich bekomme JSAvailability zwar mittels Auskommentierung der JSAvailability.module.php

[== PHP ==]
public function GetDependencies() { //return array('ListIt2' => '1.4'); }

installiert, aber ich bekomme nicht die Felddefinition in Lise eingelesen.
Habt Ihr ein Tipp für mich wie ich die beiden Module unter CMSms2 wieder zusammen zum Laufen bewegen kann?

Vielen Dank schon einmal für eure Bemühungen.

Offline

#2 16. April 2018 03:54

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: LISE und JSAvailability auf CMSms 2

Hast du schon probiert, GetDependencies() mit den Daten von LISE zu füllen (anstatt es auszukommentieren) ?

Offline

#3 16. April 2018 10:51

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: LISE und JSAvailability auf CMSms 2

Wenn die Entwickler von LISE kein JSAvailability Unterstützen, dann wird es nicht ausreichen, die Abhängigkeit zu ändern und auf LISE zu münzen. Denn LISE weiß nichts von dieser Abhängigkeit und interessiert sich demzufolge auch nicht für JSAvailability egal, was das Modul für Abhängigkeiten hat.
LISE macht daher folgendes: Es scant alle Module und prüft, ob eine bestimmte Datei vorhanden ist, mit der Felder für LISE definiert werden. (Ist im Prinzip sowas wie die Core-Funktion "HasCapability", mit der Module angeben können, dass sie z.B. mit {content_module ...} aufgerufen werden können oder dass sie WYSIWYG Editoren sind)
D.h., wenn ein Modul eine Datei namens "lisefd.blablubb.php" hat, dann geht LISE davon aus, dass es da ein Zusammenspiel gibt und verwendet diese Datei.

JSAvailability ist aber schon etwas älter. Ich weiß also nicht, ob es überhaupt mit CMSms 2.0 kompatibel ist. Dass es sich installieren lässt, sagt allein nicht viel über die Funktionstüchtigkeit aus. Das Prinzip mit dem Scannen von Modulen war aber damals schon ähnlich. D.h. JSAvailability hat eine spezielle Datei mit Felddefinitionen für ListIt. Nur heißt diese eben listit2fd.availability.php.
Es wird leider nicht ausreichen, nur den Namen der Datei zu ändern. Man muss auch den Klassennamen im PHP-Code ändern:

class listit2fd_Availability extends ListIt2FielddefBase

muss zu

class lisefd_Availability extends LISEFielddefBase

werden.
Ich weiß aber nicht, ob das allein ausreicht.
Ich weiß auch nicht, ob es generell ausreicht, im Code einfach nur alle Vorkommen von listit2fd in lisefd zu ändern.
Müsste man mal ausprobieren.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#4 16. April 2018 19:44

Daniel
hat von CMS/ms gehört
Registriert: 07. Februar 2014
Beiträge: 13

Re: LISE und JSAvailability auf CMSms 2

cyberman schrieb:

Hast du schon probiert, GetDependencies() mit den Daten von LISE zu füllen (anstatt es auszukommentieren) ?

Danke cyberman, aber das hat leider nicht geholfen. Ist ja auch wirklich nur eine Abhängigkeit die abgefragt wird.

Offline

#5 16. April 2018 19:50

Daniel
hat von CMS/ms gehört
Registriert: 07. Februar 2014
Beiträge: 13

Re: LISE und JSAvailability auf CMSms 2

NaN schrieb:

Wenn die Entwickler von LISE kein JSAvailability Unterstützen, dann wird es nicht ausreichen, die Abhängigkeit zu ändern und auf LISE zu münzen. Denn LISE weiß nichts von dieser Abhängigkeit und interessiert sich demzufolge auch nicht für JSAvailability egal, was das Modul für Abhängigkeiten hat.
LISE macht daher folgendes: Es scant alle Module und prüft, ob eine bestimmte Datei vorhanden ist, mit der Felder für LISE definiert werden. (Ist im Prinzip sowas wie die Core-Funktion "HasCapability", mit der Module angeben können, dass sie z.B. mit {content_module ...} aufgerufen werden können oder dass sie WYSIWYG Editoren sind)
D.h., wenn ein Modul eine Datei namens "lisefd.blablubb.php" hat, dann geht LISE davon aus, dass es da ein Zusammenspiel gibt und verwendet diese Datei.

JSAvailability ist aber schon etwas älter. Ich weiß also nicht, ob es überhaupt mit CMSms 2.0 kompatibel ist. Dass es sich installieren lässt, sagt allein nicht viel über die Funktionstüchtigkeit aus. Das Prinzip mit dem Scannen von Modulen war aber damals schon ähnlich. D.h. JSAvailability hat eine spezielle Datei mit Felddefinitionen für ListIt. Nur heißt diese eben listit2fd.availability.php.
Es wird leider nicht ausreichen, nur den Namen der Datei zu ändern. Man muss auch den Klassennamen im PHP-Code ändern:

class listit2fd_Availability extends ListIt2FielddefBase

muss zu

class lisefd_Availability extends LISEFielddefBase

werden.
Ich weiß aber nicht, ob das allein ausreicht.
Ich weiß auch nicht, ob es generell ausreicht, im Code einfach nur alle Vorkommen von listit2fd in lisefd zu ändern.
Müsste man mal ausprobieren.

Danke NaN,

ich habe alle Vorkomnisse der Klassennamen wie du geschrieben hast angepasst (waren nicht so viele, das Modul ist ja relativ klein). Leider hat das nicht den gewünschten Effekt. Die Felddefinition kann nicht eingelesen werden.
Es wäre für mein kleine Projekt echt hilfreich wenn die Module miteinander "sprechen" würden.

Ich möchte ungern die Seite auf CMSms Version 1 downgraden.

Bitte helft mir (hört sich an wie aus einer RTL Doku Soap) big_smile

Offline

#6 17. April 2018 10:48

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: LISE und JSAvailability auf CMSms 2

Folgende Schritte haben bei mir zu einem Ergebnis geführt:

1. Verzeichnisstruktur ändern

Das komplette Verzeichnis "modules/JSAvailability/fielddefs/" nach
"modules/JSAvailability/lib/fielddefs" verschieben.

2. Dateien umbenennen

Alle Dateien in "modules/JSAvailability/lib/fielddefs/" von "listit2fd ... " in "lisefd ... " umbenennen (das ist bei den Javascripts oder Stylesheets zwar nicht zwingend nötig, macht aber den nächsten Schritt einfacher)

3. In allen Dateien alle Vorkommen von "listit2fd" in "lisefd" ändern.

4. In LISE die Felder neu einlesen.

Im Backend unter "Erweiterungen -> LISE -> Tab: Felddefinitionen" unter der Tabelle den Button "Felddefinitionen neu einlesen" klicken. Dann taucht in der Liste "Availability" auf.

Dann kann ich im Backend in meiner LISE-Instanz im Tab "Felddefinitionen" ein Feld vom Typ "Availability"  anlegen und beim Bearbeiten von Einträgen habe ich dann einen Kalender in dem ich etwas auswählen kann. Was genau mir das bringen soll, weiß ich allerdings noch nicht. Ich habe keine Ahnung, was genau JSAvailability macht. Denn im Frontend sehe ich nichts. Soll das so sein?

EDIT: Okay, ich sehe zumindest JSON Daten. Aber was ich damit tun soll? Keine Ahnung.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 17. April 2018 18:14

Daniel
hat von CMS/ms gehört
Registriert: 07. Februar 2014
Beiträge: 13

Re: LISE und JSAvailability auf CMSms 2

Vielen lieben Dank NaN,

das war´s. Das Modul funktioniert jetzt wieder.
Mit dem Modul kann man jetzt über den Lise Eintrag die Tage markieren an denen das Objekt gebucht wurde.
Der Nutzer kann somit recht schnell und einfach sehen wann das Objekt gebucht werden kann.

Damit man im Frontent mehr als nur die JSON Daten zu sehen bekommt, muss man im jeweiligen Lise Template den JSAvailability Eintrag einbinden.

In meinem Fall sieht das so aus:

[== SMARTY ==]
{JSAvailability field=$item->fielddefs['buchungszeitraum']} 

Wobei "buchungszeitraum" der Name bzw. Alias der Felddefinition ist, den ich vergeben habe.

Das Resultat sieht dann wie folgt aus:
Belegungsplanansicht im Frontend

Damit nicht jeder der das Modul benötigt, die Änderungen durchführen muss, habe ich das geänderte Modul mal hochgeladen.

Die Abhängigkeit habe ich jetzt auch vernünftig geändert und nicht nur auskommentiert smile

[== PHP ==]
public function GetDependencies() { return array('LISE' => '1.2'); }

An dieser Stelle möchte ich mich recht herzlich für die schnelle Hilfe bedanken.
1000 DANK

Offline