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

26
Lukas Renggli, August 2003 Slide 1 Smalltalk Wiki towards CMS Lukas Renggli

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

Page 1: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 1

Smalltalk Wikitowards CMS

Lukas Renggli

Page 2: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 2

Why another Wiki?

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

ß Open sourceß Dialect independentß Test Suites

Page 3: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 3

Roadmap

ß Userß Editingß Navigation

ß Administratorß Templates

ß Developerß Testingß Implementationß Coding Session

ß Summary

Page 4: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 4

User

EditingNavigation

Page 5: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 5

[Page Example 1]

ß Paragraphß Unordered Listß Links

SmallWikiDemo

SmallWikiDemo

Page 6: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 6

[Page Example 2]

ß Rendererß Actionsß Sessionß Referencesß Path

SmallWikiDemo

SmallWikiDemo

Page 7: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 7

Administrator

Templates

Page 8: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 8

Wiki Title

Path

Actions

Refs

Structure Title

Content

Template Example I

Page 9: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 9

Actions

Structure Title

Content

Actions

Template Example II

Page 10: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 10

[Template Example]SmallWiki

DemoSmallWiki

Demo

Page 11: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 11

Developer

TestingImplementationCoding Session

Page 12: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 12

[Testing]SmallWiki

DemoSmallWiki

Demo

Page 13: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 13

StructureDocument

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

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

Action���������

Basic Design

Page 14: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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

Page 15: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 15

Wiki Documents!Heading TextParagraph containing a *Link*

:Page

:Page

:Document

:Header :Paragraph

:Text :InternalLink

SmaCC Parser

Page 16: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 16

Available Extensions

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

Page 17: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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

Page 18: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 18

Presentedß Structureß Folderß Pagesß Resources

ß Documentsß Parsing

ß Templatesß Extensions

SummaryNot Seenß Pluggableß Serverß Storage

ß Versioningß Securityß Actionsß Callbacks

Page 19: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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]

Page 20: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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

Page 21: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 21

General Setup

SwazooServer

Structure���Server���

Server

Request

Response

Client

Web Browser���

Page 22: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

Lukas Renggli, August 2003 Slide 22

DocumentDocument

Component���������

HorizontalRule

Document���Composite�����

1

*

List����

Text

Preformatted

Paragraph

Mail

Internal

Link

ExternalOrderedList

UnorderedList

Header

Table����

Document����

Page 23: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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

Page 24: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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

Page 25: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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

Page 26: Smalltalk Wiki towards CMS · Lukas Renggli, August 2003 Slide 23 * Template Container Structures String Root 1 Column Row References Path Timestamp Content Title Wiki Action Structure

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