Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures...

Post on 22-Jun-2020

11 views 0 download

Transcript of Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures...

Lukas Renggli, August 2003 Slide 1

Smalltalk Wikitowards CMS

Lukas Renggli

Lukas Renggli, August 2003 Slide 2

Why another Wiki?

ß Object OrientedDesignß Extensibilityß Componentsß Web serverß Storage

ß Open sourceß Dialect independentß Test Suites

Lukas Renggli, August 2003 Slide 3

Roadmap

ß Userß Editingß Navigation

ß Administratorß Templates

ß Developerß Testingß Implementationß Coding Session

ß Summary

Lukas Renggli, August 2003 Slide 4

User

EditingNavigation

Lukas Renggli, August 2003 Slide 5

[Page Example 1]

ß Paragraphß Unordered Listß Links

SmallWikiDemo

SmallWikiDemo

Lukas Renggli, August 2003 Slide 6

[Page Example 2]

ß Rendererß Actionsß Sessionß Referencesß Path

SmallWikiDemo

SmallWikiDemo

Lukas Renggli, August 2003 Slide 7

Administrator

Templates

Lukas Renggli, August 2003 Slide 8

Wiki Title

Path

Actions

Refs

Structure Title

Content

Template Example I

Lukas Renggli, August 2003 Slide 9

Actions

Structure Title

Content

Actions

Template Example II

Lukas Renggli, August 2003 Slide 10

[Template Example]SmallWiki

DemoSmallWiki

Demo

Lukas Renggli, August 2003 Slide 11

Developer

TestingImplementationCoding Session

Lukas Renggli, August 2003 Slide 12

[Testing]SmallWiki

DemoSmallWiki

Demo

Lukas Renggli, August 2003 Slide 13

StructureDocument

Component���������Template���������

WikiItem��������� Visitor���������

Action���������

Basic Design

Lukas Renggli, August 2003 Slide 14

Structure���������

Folder����������� Page���������Resource���������1

*predecessor

children

1

0..1

children����������� data, mime-type����������� document�����������

title, predecessor,

properties, parent �����������parent 0..1

1

Structure

Lukas Renggli, August 2003 Slide 15

Wiki Documents!Heading TextParagraph containing a *Link*

:Page

:Page

:Document

:Header :Paragraph

:Text :InternalLink

SmaCC Parser

Lukas Renggli, August 2003 Slide 16

Available Extensions

ß Search Engineß Keyword Indexß Link Collectionß External Link Checkerß Photo Folderß E-Mail Notificationß Importer

Lukas Renggli, August 2003 Slide 17

Coding Session

ß RSS News Feedß BottomFeederß Reuse of Model

ß Template Componentß Visible on all Pagesß Configuration Interfaceß Automatic Refresh

<?xml version="1.0" ?><rss version="2.0"> <channel> <item> <title>SmallWiki</title> <description>A Small ... <link>http://www.sm ... </item> ... </channel></rss>

RSS

Lukas Renggli, August 2003 Slide 18

Presentedß Structureß Folderß Pagesß Resources

ß Documentsß Parsing

ß Templatesß Extensions

SummaryNot Seenß Pluggableß Serverß Storage

ß Versioningß Securityß Actionsß Callbacks

Lukas Renggli, August 2003 Slide 19

Towards a CMS

ß We should not let PHP and Zope winß SmallCMS: Reusable Components for

Content Managementß Join, use, extend, …

[I]

Lukas Renggli, August 2003 Slide 20

References

ß Latest Releaseß SCG StORE and Cincom Public StORE

ß Running SmallWikiß http://kilana.unibe.ch:9090

ß Documentationß http://c2.com/cgi/wiki?SmallWikiß http://scgwiki.iam.unibe.ch:8080/SCG/520

ß Related Projectsß Gardner: CMS using Seaside and SmallWikiß Garden: In-Image Wiki Editor for Squeak

Lukas Renggli, August 2003 Slide 21

General Setup

SwazooServer

Structure���Server���

Server

Request

Response

Client

Web Browser���

Lukas Renggli, August 2003 Slide 22

DocumentDocument

Component���������

HorizontalRule

Document���Composite�����

1

*

List����

Text

Preformatted

Paragraph

Mail

Internal

Link

ExternalOrderedList

UnorderedList

Header

Table����

Document����

Lukas Renggli, August 2003 Slide 23

* Template���������

Structures��������� String��������� RootContainer���������1

Column

Row����

References

Path����

Timestamp

Content����

Title

Wiki

Action

Structure

������…

Template

ß Position on the pageß Content of component

Template>>for: anAction

Lukas Renggli, August 2003 Slide 24

Action���������

Edit��������� History��������� ������InvisibleView���������

Page

Folder����

Remove

Add����

GoTo

Login

������…

Resource

Page

Folder����

Resource

Page

Folder����

Resource

Actions

ß Execute the action-codeAction>>execute

ß Provide an user interfaceAction>>renderContent

Lukas Renggli, August 2003 Slide 25

Serving

folder: Folder����root: Folder����

page: Page

HTTP-GET/folder/page?action=EditPage

1: process 2: process

3: process

4: processAction

:EditPage5: execute

6: render

7.1: template

:Visitor���8. render

7.2: renderer

:Template

9.1*: accept

:Document

9.2*: visit

and

Lukas Renggli, August 2003 Slide 26

Rendering

:Action1: execute :Renderer

8. render

:Template

6.1*: accept

:Document

6.2*: visit

2: render

:Page

3: renderer

4: start

5: template

:Content

7: renderContent

9: start

10.1*: accept 10.2*: visit

8: document