Hallo David,
Demnach wäre Category und Thread dann eine Subclass
von Folder,
und Entry eine von Page.
das ist eigentlich genau die Vorgehensweise, welche ich mir vorgestellt
habe. Ich denke so ist es am Einfachsten, weil du am Meisten
weiterverwenden kannst. Sonst musst du ja irgendwie selber einen
Dispatcher schreiben, der die richtigen Komponenten aufruft.
Meinst du, das lässt genug Möglichkeiten zur
Erweiterung, z.B. wenn es
auch noch Subkategorien geben wird?
Das sollte kein Problem sein, Subkategorien sind dann einfach
Kategorien welche sich in einer anderen Kategorie befinden. Dazu
braucht es wohl keine einzige Zeile Code und man kann sie verschachteln
wie auch die Ordner. Oder haben Subkategorien andere Eigenschaften als
Top-Level Kategorien?
Bist du auf keinerlei Probleme gestossen, wenn die URL
immer länger
wird?
So lange sind diese URLs ja dann auch wieder nicht. Das RFC meint:
The HTTP protocol does not place any a priori limit on the
length of a URI. Servers MUST be able to handle the URI of
any resource they serve, and SHOULD be able to handle URIs
of unbounded length if they provide GET-based forms that
could generate such URIs. A server SHOULD return 414
(Request-URI Too Long) status if a URI is longer than
the server can handle (see section 10.4.15).
Note: Servers ought to be cautious about depending on URI
lengths above 255 bytes, because some older client or proxy
implementations might not properly support these lengths.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2
In anderen Quellen lese ich das bis zu 64k URL problemlos
funktionieren, aber ich kenne mich da weniger aus, habe das noch nicht
bis an die Limiten getestet.
Und können so zwei Threads den gleichen Titel haben?
Im Moment wohl
nicht,
aber könnte man wohl einbauen?
Dass der Titel direkt auf die URL abgebildet wird habe ich aus Gründen
der Benutzerfreundlichkeit bei der Navigation gemacht. Ich denke, dass
dies in einem Forum weniger nötig ist: du könntest die Methoden #title,
#id, ... überschreiben und die Threads einfach durchnummerieren.
Grüsse,
Lukas
PS: Bitte poste deine Fragen zukünftig in Englisch in die Mailing-Liste.
--
Lukas Renggli
http://renggli.freezope.org