|
koala bruder
Registriert seit: 22.05.2006
Beiträge: 7
|
Freitag, 26. Mai 2006 17:17:29
Hallo,
ich bräuchte mal einen groben richtungsweiseden Tip für einen Anfänger.
Ich habe mir eine Klasse Spielbericht angelegt und möchte die Spielberichtobjekte mit ausgesuchten Attributen in einer Tabelle visualisieren. Wenn man einen speziellen Spielbericht auswählt soll sich dieser öffnen. Die Tabelle soll ähnlich wie bei PHPMyAdmin sortiert werden können.
Mit meiner beschränkten Erfahrung würde ich einen "Folder" Anlegen und diesem meine Objekte zu ordnen. Dann würde ich das "Node Template" für den Folder überschreiben und meine Tabelle samt Datenbankabfragen (fetch) in das Template plazieren. Falls dieser Weg Sinn macht, könnte man dem "Folder" dann erklären, dass er nur Spielberichtobjekte aufnimmt?
Ein anderer Weg den ich mir Vorstellen könnte wäre zwischen "Folder" und Spielberichtobjekt ein Spielberichtsammlungsobjekt zu plazieren.
Gibt es für den Aufbau einer "DB-result-verabeitenden" Tabelle vielleicht eine fertige Templatefunktion?
Danke
Tobias
|
|
Sebastian v. Roos
Registriert seit: 27.01.2006
Beiträge: 358
|
Freitag, 26. Mai 2006 20:03:29
zumindest was das umgehen mit dem codewriting ist, bin ich auch gewissermaßen Anfänger (und werd es wohl auch bleiben , aber ich finde das hört sich richtig an, was du schreibst.
Ich habe mir kürzlich eine Aufgabenliste angelegt, was vielleicht ähnlich ist.
Ich habe Aufgaben verschiedener Bereiche, und für jeden Bereich einen Folder angelegt. Für die einzelnen Aufgaben habe ich mir eine Klasse angelegt (die ich "business" genannt habe) und dann die Aufgaben unterhalb der Ordner eingetragen.
Und natürlich wollte ich auch einen Überblick über Alle Aufgaben der verschiedenen Bereiche.
Dafür hab ich mir dann noch mal, ausserhalb obiger Struktur, ein Objekt angelegt, dafür ein override angelegt und in das Template dann den Code wie folgt:
{def $list=fetch( 'content', 'tree', hash( 'parent_node_id', 122,
attribute_filter_type, include,
attribute_filter, array( array( 'business/erledigt', '=', '0' ) ),
sort_by, array( array( attribute, false(), 263 ), $parent.datamap.name )
) )}
<table class="list" width="3000px">
<tr>
<th>Aufgabenbereich:</th><th>Titel:</th><th>Kurz:</th><th>Details:</th><th>Volumen:</th><th>Beginn/Status:</th><th>Wichtigkeit:</th>
</tr>
{foreach $list as $entry}
<tr>
<td class="micro">{attribute_view_gui attribute=$entry.parent.data_map.name}</td>
<td class="micro">{attribute_view_gui attribute=$entry.data_map.title}</td>
<td class="micro">{attribute_view_gui attribute=$entry.data_map.intro}</td>
<td class="micro">{attribute_view_gui attribute=$entry.data_map.body}</td>
<td class="micro">{attribute_view_gui attribute=$entry.data_map.volumen}</td>
<td class="micro"> {$entry.object.published|l10n(shortdatetime)} <br /> <i>{attribute_view_gui attribute=$entry.data_map.status}</i></td>
<td class="micro">{attribute_view_gui attribute=$entry.data_map.wichtigkeit}</td>
{/foreach}
</tr>
</table>
{undef}
wobei attribute_filter, array( array( 'business/erledigt', '=', '0' ) ), ein Filter ist, der mir in der Tabelle nur die Aufgaben anzeigt, für die die Checkbox "erledigt" noch nicht gesetzt ist.
Die 263 ist die ID von dem Feld "wichtigkeit" in meiner Aufgabenklasse, denn danach soll die Liste geordnet werden.
Und 122 ist die Id von einem Folder, der noch mal den anderen Foldern übergeordnet ist.
Ansonsten mit
class_filter_type, include,
class_filter_array, array( 'spielbericht' ),
kannste ja filtern.
Hoffentlich jetzt nicht zu banal mein Hinweis.
Gruß
_______________________
http://webdevelopment.artenic.de ARTENIC - Publishing mit allen Mitteln!
|