Top Banner
Lukas Renggli, August 2003 Slide 1 Smalltalk Wiki towards CMS Lukas Renggli
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

Jun 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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