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

#1 20. Mai 2011 06:40

frickel
hat von CMS/ms gehört
Ort: Münster
Registriert: 20. Mai 2011
Beiträge: 17

Anzahl der in einem Block verwendeten UDT´s ermitteln

Hallo,
ich bin neue bei CMSms und soll eine statische Vereinsseite aufhübschen.
Auf mehreren Seiten soll eine Liste von Mitarbeitern ausgegeben werden,
immer zwei nebeneinander (siehe Beispielbild).

Ich habe jetzt einen UDT namens "Mitarbeiter" erstellt, der mir jeweils einen Block rendert.
Die Eingabe sieht etwa so aus:

{*Mitarbeiter name='Barbara' abschluss='Dipl. SozPäd.' mobil='123' mail='mail@domain.de'}
{*Mitarbeiter name='Max' mobil='456' mail='max@muster.org'}

Die Anzahl der Parameter und damit die Höhe der Mitarbeiter-Blöcke kann also variieren,
das Design macht es aber nötig immer zwei Mitarbeiter an deren Unterkannte auszurichten,
daher kann ich nicht einfach 'floating Divs' ausgeben.

Auf der alten statischen Seite wurde das über Tabellen gemacht, aber dazu müsste ich wissen
wieviele {*Mitarbeiter } eingegeben wurden und beim rendern des UDTs auch noch an welcher
Position der aktuelle Mitarbeiter ist.

Geht das irgendwie?

Ein weiteres Problem ist das die Anzahl der Mitarbeiter nicht umbedingt grade sein muss,
daher müsste ich auch noch wissen, ob der aktuelle Eintrag der letzte ist, um die Tabelle ordentlich abzuschließen.

Wäre super wenn jemand ne Idee hat. Sind UDTs überhaupt der richtige Ansatz dafür, oder gibts da noch nen bessen Weg?
Gruß frickel
beispiel_mitarbeiter.gif

Offline

#2 20. Mai 2011 06:59

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

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

Via UDT isses doch ein unheimliches Gefummel und performance-technischer Schietkram.

Als Modul hätte ich dir CompanyDirectory empfohlen, das kannst du auch für Aktionen wie deine verwenden.

Eine andere Variante wäre, eine CSV-Datei zu laden, die Daten an Smarty zuzuweisen und dann über ein einfaches Template darzustellen.

Offline

#3 20. Mai 2011 21:08

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

Wenn ich es richtig verstanden habe, fügt ein Redakteur in das normale Content-Feld, direkt nacheinander, so viele UDTs ein, wie er braucht. Das ganze wird in einer Tabelle ausgewiesen. Der letzte UDT-Aufruf soll wissen, ob er an gerader oder ungerader Stelle steht, damit die Tabelle sauber geschlossen werden kann.

Entweder, man packt da noch einen Parameter "last" hinzu der beim Rendern greift, oder man schleift eine variable durch. Also das UDT gibt einen Zähler zurück, der beim nächsten Aufruf als Startwert übergeben wird. Also Quasi:

{udt counter=0 ... }
{udt counter=$counter ... }
{udt counter=$counter ... }
{udt counter=$counter ... }

Aber cyberman hat recht, das ist schon ziemlich fummelig und auch nicht wirklich elegant.

CSV Import hört sich nach einer guten Lösung an, wenn die ein modul zu mächtig oder zu komplex erscheint. Erfordert aber ein wenig Programmierung.

Viele Grüße
Nils

Offline

#4 20. Mai 2011 21:51

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

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

UDT ist in diesem Fall nicht nur eine Fummelei, sondern steht in Sachen Performance auch irgendwie in keinem Verhältnis zum Nutzen. Ich würde dazu lieber ein Modul verwenden und dann ein entsprechendes Template basteln.


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

#5 21. Mai 2011 12:36

frickel
hat von CMS/ms gehört
Ort: Münster
Registriert: 20. Mai 2011
Beiträge: 17

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

Danke für die Antworten smile

Ihr habt mich überzeugt, UDTs sind da wohl nicht der richtige Weg.
CompanyDirectory hab ich mir angesehen, finde ich aber für diesen Zweck zu aufwändig.
Bei der CSV-Idee verstehe ich noch nicht wie mein Kunde die dann online ändern könnte, es sollte auf jeden Fall über das CMSms-Admin-Interface laufen.

Überlege jetzt was mit dem AdvancedContent-Modul zu machen.
Das PageBlocks-Modul wäre auch eine nette Möglichkeit, aber das scheint in der aktuellen Version nicht mehr zu laufen.
Gibt´s dazu vielleicht noch eine Alternative? Fände es auch für andere Gelegenheiten gut wenn man übers Admin-Interface Content-Blöcke hinzufügen könnte.

Offline

#6 21. Mai 2011 12:58

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

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

Du kannst auch das News oder CGBlog Modul dazu zweckentfremden. Oder Dir mit CTLModuleMaker ein eigenes Modul basteln.

Einfach mal per Klick beim Bearbeiten einer Seite einen Block hinzufügen geht leider nicht.
Content-Blöcke wären in Deinem Fall meiner Meinung nach eigentlich auch nicht der richtige Weg.
Sieh es mal so, Mitarbeiter sind nichts weiter als Datensätze bzw. Artikel. So wie News-Artikel. Sie haben ganz eigene Eigenschaften (Name, Vorname, Adresse etc.), die nichts mit einer einfachen Seite zu tun haben und daher auch von den Seiten getrennt verwaltet werden sollten. Das mit Hilfe von Content-Blöcken lösen zu wollen ... dafür sind diese Content-Blöcke eigentlich nicht gedacht.


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 21. Mai 2011 14:35

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

Leichtgewicht und ideal wäre denke ich ListIt Modul, es macht ja sonst nix als eine liste der Artikel.

Offline

#8 22. Mai 2011 05:35

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

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

frickel schrieb:

Bei der CSV-Idee verstehe ich noch nicht wie mein Kunde die dann online ändern könnte, es sollte auf jeden Fall über das CMSms-Admin-Interface laufen.

Neue CSV-Datei mit Excel & Co erstellen, dann via Dateiverwaltung hochladen ... fertig wink.

Offline

#9 24. Mai 2011 14:48

frickel
hat von CMS/ms gehört
Ort: Münster
Registriert: 20. Mai 2011
Beiträge: 17

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

CTLModuleMaker war schon ein guter Tipp, aber ListIt ist perfekt dafür, damit wird auch der Kunde klarkommen.
Habe außerdem noch eine Übersetzung für ListIt angelegt, die Datei wird allerdings nicht direkt verwendet,
muss ich das noch irgendwo eintragen?

Besten Dank für die Anregungen!

Offline

#10 24. Mai 2011 18:05

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

Re: Anzahl der in einem Block verwendeten UDT´s ermitteln

Da scheint noch ein Fehler im Programm zu sein - hab daher einfach meine de_DE.php in en_US.php umbenannt und die "alte" en_US.php gelöscht ... und schon klappt's auch mit dem Nachbarn wink.

Offline