This is an analysis of the navigable data model that Wikidot site builders could in theory work with. The model consists of a hierarchy of objects. For each type of object we note typical properties of the object, as well as ways to select and order objects.
- Cluster — a collection of sites
- Site
- Page
- Revision
- Comment
- Tag
- File
- Member
- Page
- Site
Cluster - [[module ListClusters ...]]
- Properties: name, created_by, created_at, tags
- Selection: created_at, tags
- Ordering: any property
- Container: owned by current user
Use cases:
- User-space cluster management tools
Site - [[module ListSites ...]]
- Properties: name, title, created_by, created_at, tags, deleted, pages, edits, members, quality, karma
- Selection: created_by, created_at, tags, deleted, pages, edits, members, quality, karma
- Ordering: name, created_by, created_at, karma
- Container: owned by current user
Use cases:
- Top rated sites
- Feed of newly created sites
- Feed of probably spam sites
Page - [[module ListPages ...]]
- Properties: name, title, content, created_by, created_at, tags, category, parent, etc.
- Selection: created_by, created_at, tags, category, parent, etc.
- Ordering: name, created_by, parent, etc.
- Container: current site
Comment - [[module ListComments ...]]
- Properties: title, content, created_by, created_at, level, parent
- Selection: created_by, created_at, tags, parent, etc.
- Ordering: name, created_by, parent, etc.
- Container: current site
Use cases:
- Emulating the Comments module on a page.
- Properties: name, parent (page), pages
- Selection: parent, pages
- Ordering: name, parent, pages
- Container: current site
Use cases:
- Custom formatting of tags in ListPages
- Reporting on tag usage within a site
Revision - [[module ListRevisions ...]]
- Properties: created_by, created_at, parent (page), description
- Selection: created_by, created_at, parent (page)
- Ordering: created_at
- Container: current page
Use cases:
- Custom history pages
File - [[module ListFiles ...]]
- Properties: created_by, created_at, parent (page), description, type, downloads
- Selection: created_by, created_at, parent (page), image
- Ordering: created_at, name, size, parent (page), type, downloads
- Container: current site
Use cases:
- File management
Member - [[module ListMembers ...]]
- Properties: name, role, joined_at
- Selection: role, joined_at
- Ordering: name, role, joined_at
- Container: current site
Use cases:
- User-space membership management tools
… shouldn't this be updated_at instead of created_at ?
I attempted to edit it myself, but was so confused as to what parts I should edit and what parts I should leave the same… that I decided I'll leave it to you to do instead :)
Shane Smith ★ Website: Wikidot Development & Programming. ★ STE Wikidot Editor: Windows. Mac. Linux. ★ Twitter. Google+.
These property lists are not formal. We would need to define each layer separately (as we did for ListPages with design:4) and work out exactly what properties we can provide.
Portfolio
Rating: +1
λ James Kanjo
Blog | Wikidot Expert | λ and Proud
Web Developer | HTML | CSS | JavaScript
Yeah, I noticed the rating module had disappeared =|
Rating +1 also
Shane Smith ★ Website: Wikidot Development & Programming. ★ STE Wikidot Editor: Windows. Mac. Linux. ★ Twitter. Google+.