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

#1 30. Mai 2012 17:14

jojo
probiert CMS/ms aus
Registriert: 17. April 2012
Beiträge: 20

[GELÖST] CTLModuleMaker - FrontendUser - active / inactive

Hallo, hoffentlich ist dies nun meine letzte Frage zum CTLModuleMaker 1.8.9.3. ... Ich möchte das erstellte Modul gerne so anpassen, dass im Frontend neu hinzugefügte Elemente zunächst inaktiv sind. In der Datei "action.FEaddkneipe.php" habe ich den folgenden Abschnitt dazu gefunden:

        active=".(isset($item->active)?$item->active:1).",

Stelle ich hier den Wert auf "0", so werden allerdings nicht nur die neuen Elemente auf "inaktiv" gesetzt, sondern auch bestehende Elemente, die im Frontend lediglich bearbeitet wurden - diese sollen aber auch weiterhin "aktiv" bleiben. Meine Idee war, mit einer if-Abfrage zu pürfen, ob bereits eine ID existiert, was bei neuen Elementen nicht der Fall ist:

        if($item->id) {
        active=".(isset($item->active)?$item->active:1).",
        }else{
        active=".(isset($item->active)?$item->active:0).",
        }

Leider funktioniert dieser Ansatz so nicht ... Vielleicht hat ja jemand einen Tipp für mich, wie ich dieses Problem lösen kann oder wo der Fehler bei meinem bisherigen Ansatz liegen könnte. Vielen Dank schonmal für die Bemühungen!!!


PS: Mit {$item->active->getHiddenInput(0)} habe ich es auch schon versucht, doch scheint dieser Tag erst ab dem CTLModuleMaker 2.0 kompatibel zu sein.

Offline

#2 14. Juni 2012 09:56

jojo
probiert CMS/ms aus
Registriert: 17. April 2012
Beiträge: 20

Re: [GELÖST] CTLModuleMaker - FrontendUser - active / inactive

Habe nun endlich eine Lösung für mein Problem gefunden, auch wenn man es mit besseren Kenntnissen sicher auch eleganter lösen kann. Anstatt nur die Zeile zum Aktivieren bzw. Deaktivieren des Elements in die if-Abfrage zu setzen, habe ich nun in der Datei "action.FEaddkneipe.php" den gesamten Abschnitt "FIELDS TO UPDATE" in die if-Abfrage eingefügt:

        if($item->id) {
        // FIELDS TO UPDATE
        [...]
        active=".(isset($item->active)?$item->active:1).",
        [...]
        }else{
        // FIELDS TO UPDATE
        [...]
        active=".(isset($item->active)?$item->active:0).",
        [...]
        }

Auf diese Weise werden mit FrontendUser eingefügte neue Elemente zunächst deaktiviert, während bereits bestehende Elemente nach dem Editieren weiterhin aktiv sind.

Bei mir funktioniert es auf jeden Fall einwandfrei und vielleicht können auch noch andere CMSMS-User etwas damit anfangen.

Offline