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

#1 28. Mai 2017 16:42

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

[GELÖST] foreach-Verständnisfrage für das FEU-Modul

Hallo zusammen,

meist klappt es, jetzt wieder nicht - und ich weiß nicht warum...  hmm

Für das Frontend Users Module habe ich diverse Felder angelegt und später noch um ein paar Felder erweitert, die zunächst nicht feststanden, bzw. erforderlich waren. Der User hat ohnehin kaum Pflichtfelder, soll aber die Möglichkeit haben viele Informationen zu hinterlassen, wenn er denn möchte.

So habe ich ein funktionierendes und schönes Registration-Template (mit Self Registration), das eben nur die allerwichtigsten Felder abfragt, damit der User schnell ins System kommen kann. Hier ging das problemlos mit einer foreach a la:

[== Smarty ==]
{foreach from=$controls item=control}
 {if $control->name == 'username'}
  <input ... />
 {/if}
 {if $control->name == 'password'}
  <input ... />
 {/if}
...
{/foreach}

Wenn ich nun aber mit "demselben" Template (die zusätzlichen Felder sind dann via {$control->propname} erreichbar) ein "Einstellungen Ändern" Template aufbaue wo der User seine Informationen freiwillig ergänzen kann, kommen die Felder in der Reihenfolge der Anlage in der Datenbank, nicht in der Reihenfolge wie ich sie im Template angegeben habe ... verstehe ich nicht, bzw. ich verstehe es, kenne aber die Lösung nicht...  sad

Für "Einstellungen ändern" wäre das Template in etwa so:

[== Smarty ==]
{foreach from=$controls item=control}
 {if $control->name == 'username'}
   <input ... />
 {/if}
...
 {if $control->propname == 'familienname'}
   <input ... />
 {/if}
 {if $control->propname == 'vorname'}
   <input ... />
 {/if}
 {if $control->propname == 'mobilnummer'}
   <input ... />
 {/if}
 {if $control->propname == 'strasse'}
   <input ... />
 {/if}
...
{/foreach}

Die Ausgabe ist aber nicht Familienname, Vorname, Mobilnummer, Strasse - sondern Familienname, Mobilnummer, Vorname, Strasse (in der Reihenfolge der Anlage im FEU). Mit meinem gefährlichen Halbwissen beim Programmieren komme ich zu dem für mich logischen Schluss:

  • Ich hab hier "Username", was steht im Template?
      USERNAME -> Super Sache, weiter zum nächsten...

  • Ich hab hier "Familienname", was steht im Template?
      FAMILIENNAME -> Super Sache, weiter zum nächsten...

  • Ich hab hier "Mobilnummer", was steht im Template?
      VORNAME -> Aha. Sonst noch was im Template?
      MOBILNUMMER -> Super Sache, weiter zum nächsten...

  • Ich hab hier "Vorname", was steht im Template?
      MOBILNUMMER -> Aha. Sonst noch was im Template?
      STRASSE -> Aha. Sonst noch was im Template?
      VORNAME -> Wurde auch Zeit! Weiter zum nächsten...

Wie hole ich - wenn ich mit meiner Vermutung richtig liege - die Daten so ab, dass er sie in der Reihenfolge wie ich sie im Template habe, ausgibt?
Überhaupt hab ich ja das Template geändert, weil die Felder durcheinander kamen. Ab Werk ist das Template ja

  • if Feld-Typ1 -> Mach <input type="blabla1" name-völlig-egal />

  • if Feld-Typ2 -> Mach <input type="blabla2" name-völlig-egal />

logischerweise, damit es mit jeder Feldkonfiguration immer funktioniert.

Ich dachte leichtsinnig, wenn ich die Felder direkt mit Namen anspreche, müsste es (wie sonst bisher mit foreach auch) passen - aber: wieder nicht...  neutral

Muss ich bei der {foreach} was dranhängen oder etwas ändern? Ohne bekomme ich ja gar keine Daten.  roll
Vielen Dank für Eure Hinweise!

Offline

#2 28. Mai 2017 20:28

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] foreach-Verständnisfrage für das FEU-Modul

Wie hast du die Felder in der Benutzergruppe zugeordnet? Hier kann man die Reihenfolge der Felder bestimmen.

Deine Idee mit der foreach-Schleife funktioniert nicht. Die Felder kommen ja in der falschen Reihenfolge. Hier würde es nur was bringen wenn du die einzelnen Einträge des Arrays/Object direkt ansprichst.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#3 29. Mai 2017 23:02

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

Re: [GELÖST] foreach-Verständnisfrage für das FEU-Modul

Hallo Lukas,

das ist ja das fiese: Da würde es stimmen.
Mich hat das am Anfang mal gefuchst, dass es scheinbar keine Option zur Sortierung gäbe ... bis ich sie in den Benutzergruppen gefunden habe. Und ZACK — gleich wieder vergessen... big_smile

In der Verwaltung ist alles nur Alphabetisch, unabhängig von der Erstellung der Felder:
FEU Verwaltung (alle Felder)
---

In der Gruppenverwaltung kann ich die Felder rauf- und runter schubsen - hier würde es aber passen...
FEU Gruppenverwaltung
---

In der Ausgabe kommt es trotzdem anders:
FEU Frontend Ausgabe


Aber:
Du hast mich drauf gebracht, DANKE!

Ich hab anfangs drei Gruppen erstellt; eine der Gruppen ist 'Admins', damit ich - für den Fall - z.B. neue Seiten oder neue Formulare testen kann, bevor ich sie für die anderen "Freischalte"; die andere Gruppe kommt später sicher noch in Betracht, deswegen schon gleich mal angelegt - ist aber noch gar nicht in Gebrauch.

Das Konto, mit dem ich angemeldet bin, ist allen drei Gruppen zugeordnet. Wenn ich in einer der Gruppen die Reihenfolge ändere, ändert sie sich im Frontend. Zwar auch nicht gleich zu 100% vorhersehbar (erst wenn in allen Gruppen die Reihenfolge gleich ist, sonst ist es ein bisschen Würfelspiel), aber immerhin.

Für gewöhnlich wird auf dieser Installation ein User immer nur einer Gruppe angehören (können). Gut zu wissen, denn es werden später mal Felder hinzukommen der anderen Gruppe, die mit der ersten kaum etwas gemein haben wird.
Aber an meine Zugehörigkeit zu den Gruppen hatte ich jetzt wirklich nicht gedacht - für mich ging es rein um die Zuordnung im Template, nicht um die Datenbank.
Aber klar, im Template sage ich ja auch nicht "Template für Gruppe 1" sondern "Template für Datenänderung".

Also nochmal: Danke für den Tipp!  angel
Ich seh gerade beim machen von dem Ding, dass die ganze FEU-Geschichte nicht mal eben aus dem Ärmel geschüttelt wird, vordefinierte Templates hin- oder her. Hochspannend, ich hab richtig Spaß dran ... aber was zum Knobeln.
Demnächst muss ich noch was anderes fragen, was auch nicht so richtig klappt (Übergabe der Login-ID an FormBuilder), aber jetzt geht's erst in die Haia.
Dankeschööööööön!

Offline

#4 29. Mai 2017 05:44

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] foreach-Verständnisfrage für das FEU-Modul

+1


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline