cms / blog and snowoman

59
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012 コンテンツマネージメントシステム、 ブログ 雪女WOWODC 2012 by Ken Ishimoto (K’s Room & A10-Objects) 1275日木曜日

Upload: wo-community

Post on 19-May-2015

893 views

Category:

Technology


2 download

DESCRIPTION

SnoWOMan is a CMS and blog system built on Project Wonder and WebObjects.

TRANSCRIPT

Page 1: CMS / BLOG and SnoWOman

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

コンテンツマネージメントシステム、ブログ と ”雪女”

WOWODC 2012 by Ken Ishimoto (K’s Room & A10-Objects)

12年7月5日木曜日

Page 2: CMS / BLOG and SnoWOman

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

WOWODC 2012 by Ken Ishimoto (K’s Room & A10-Objects)

CMS / BLOG and SnoWOman

12年7月5日木曜日

Page 3: CMS / BLOG and SnoWOman

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

Ken Ishimoto10 years 4th Dimension Developer, 2 years Real Basic and

since 2008 WebObjects Developer

12年7月5日木曜日

Page 4: CMS / BLOG and SnoWOman

Agenda

• Offline CMS

• CMS System

• SnoWOman

• Demo

• Q&A

12年7月5日木曜日

Page 5: CMS / BLOG and SnoWOman

Offline CMS Deploy System12年7月5日木曜日

Page 6: CMS / BLOG and SnoWOman

Offline CMS

• Buy the App

• Create the Content on your Computer

• Deploy everything via FTP to a Server

• Any Changes? You need your Computer to fix the changes and then you have to deploy it, sometimes you have to upload every Page again.

12年7月5日木曜日

Page 7: CMS / BLOG and SnoWOman

NICE• Easy Solution

• We make the Custom Design.

• The Customer can use it. (Maybe)

12年7月5日木曜日

Page 8: CMS / BLOG and SnoWOman

BUT...

• No way to connect it to a DatabaseCMS but static CMS

• Won’t work with Wonder

• We don’t make Money (only for some Design)

12年7月5日木曜日

Page 9: CMS / BLOG and SnoWOman

Drupal : What’s nice about it

• Many Themes

• Lot of Languages

• Very Popular

• Open Source

• Lot of Plugins

12年7月5日木曜日

Page 10: CMS / BLOG and SnoWOman

Custom Themes

• Create Custom Themes

(3 People worked 4 Months on it)

12年7月5日木曜日

Page 11: CMS / BLOG and SnoWOman

Localize

• There are a lot of already Localized Templates(most are only 40-60% done)

• We had a Plugin that wasn’t written for that and it took(3 Person / 2 Days to Localize only a Menu Entry)

12年7月5日木曜日

Page 12: CMS / BLOG and SnoWOman

Plugins

• Upgrade to New Version

• The User will upgrade because a nice new Feature is available

• But, old Plugin’s won’t work anymore and break

12年7月5日木曜日

Page 13: CMS / BLOG and SnoWOman

Security

12年7月5日木曜日

Page 14: CMS / BLOG and SnoWOman

Security

• BUGS, Security flaws

• The Community fix this Problems and the User has update everyfew Months or sometimes every few weeks

• Most User have only a Site without a Contract for Maintenance(This Site’s are now hackable)

• You can find Security issues easily on there Homepage's (Everybody include Hackers know the security issues also)

12年7月5日木曜日

Page 15: CMS / BLOG and SnoWOman

How can I use it?

• Learn PHP

• Learn MySQL

• Download Drupal and learn it

12年7月5日木曜日

Page 16: CMS / BLOG and SnoWOman

Project Wonder

• Won’t work with Wonder

• If you are not using MySQL you need 2 Databases

• No way to use it with EOF, MVC and KVC (everything we love)

12年7月5日木曜日

Page 17: CMS / BLOG and SnoWOman

But Can I use it with WO?

• write PHP code and make Rest Calls to Wonder

• Maintenance two separate Systems now : PHP and Java-WO(if you are a Power User maybe not a big deal)

12年7月5日木曜日

Page 18: CMS / BLOG and SnoWOman

WordPress : WAY 1

• own Deploy ?

• Than it will like Drupal, you have to careabout everything, write PHP and dive into it.

12年7月5日木曜日

Page 19: CMS / BLOG and SnoWOman

WordPress : WAY 2

• use the Service of Wordpress.com

• The take care about Security now^^ yeah

• But Custom Design cost Money and it is not allowedto write PHP code and add features to it. No Connectionto WO anymore.

12年7月5日木曜日

Page 20: CMS / BLOG and SnoWOman

SnoWOman12年7月5日木曜日

Page 21: CMS / BLOG and SnoWOman

Why a CMS?

• Written with Wonder

• Because we love WOF, EOF, MVC, KVC

• No need to learn a new Language

• Use a Database that you like

• Login to your Application and change the Context

12年7月5日木曜日

Page 22: CMS / BLOG and SnoWOman

Easy Installation

• only add the Frameworks

• It will initialize itself and make also the default Pages

• Already in real use at 6 different Customer Locations

• In use now by 2 Developers in Japan (WOdka Project)

12年7月5日木曜日

Page 23: CMS / BLOG and SnoWOman

6 Frameworks

• WOKeyValueDataStorage (1 Entity)

• WOEmoji

• ERMailManager (5 Entities)

• SKIN_Sandvox

• ERModernJQuery

• SnoWOman (5 Entities)

12年7月5日木曜日

Page 24: CMS / BLOG and SnoWOman

WOKeyValueDataStorage

• one Entity KeyValue Storage

• The Data stored into this Entitywith Key & Value

• The Value Property Data is in .plist Format

• Try to Cache in Memory and refresh every Hour

• Can use with other Frameworks in the Future

12年7月5日木曜日

Page 25: CMS / BLOG and SnoWOman

ERModernJQuery

• Input Field Validation

• Banner

• FlightBoards

• Picture / Video Viewer

• and more ...

12年7月5日木曜日

Page 26: CMS / BLOG and SnoWOman

WOEmoji

• Usage of Emoji

• Yes, Japanese People loves that

• For now our User who writes Content are 100% Mac or iPad Users

• But after it is written Windows User will see the Content

12年7月5日木曜日

Page 27: CMS / BLOG and SnoWOman

The Funniest WO Code ever

12年7月5日木曜日

Page 28: CMS / BLOG and SnoWOman

ERMailManager

• This Framework is handling Newsletter

• Waiting for “Amedeo” Release

12年7月5日木曜日

Page 29: CMS / BLOG and SnoWOman

SKIN_SandvoxIt reads the Original Templates from the

Sandvox App.

Only Buy the App and copy the Plugins to the Framework

66 Templates ready to use

12年7月5日木曜日

Page 30: CMS / BLOG and SnoWOman

12年7月5日木曜日

Page 31: CMS / BLOG and SnoWOman

SnoWOman

• MAIN Framework

• 4 TEMPLATES for now (will come more)

• A lot of WIDGETS

• CMS Request Handler & CMSContext

12年7月5日木曜日

Page 32: CMS / BLOG and SnoWOman

TEMPLATES

• Simple Template (Sandvox)

• Print Template (for Printing)

• D2W Template (for ModernDirect2Web)

• Custom Template (for Custom Skins)

12年7月5日木曜日

Page 33: CMS / BLOG and SnoWOman

CUSTOM Skins

• Easy to make Custom Skins

• Most Customer need a Custom Skin anyway

12年7月5日木曜日

Page 34: CMS / BLOG and SnoWOman

Widgets : Text & Html

• PlainText

• RichText

• Blockquote

• Raw HTML

12年7月5日木曜日

Page 35: CMS / BLOG and SnoWOman

Widgets : Video

• YouTube

• JW Player

• Estro Player

12年7月5日木曜日

Page 36: CMS / BLOG and SnoWOman

Widgets : Photo

• Banner Slideshow

• Slideshow

• Photos

• PrettyPhoto

12年7月5日木曜日

Page 37: CMS / BLOG and SnoWOman

Widget : Newsletter

• Newsletter

• Newsletter Remove

12年7月5日木曜日

Page 38: CMS / BLOG and SnoWOman

Widgets : Twitter & IM

• AIM

• Skype

• RSS (Viewer Support)

• Tweet

• Twitterlist

12年7月5日木曜日

Page 39: CMS / BLOG and SnoWOman

Widget : Apple

• Web App

• Safari Extensions

• Mac App Store

• iTunes

• iBookStore

• App Store

12年7月5日木曜日

Page 40: CMS / BLOG and SnoWOman

Widget : Facebook

• Like

• Subscribe

• Comment

• Recommendations

• Facepile

• Send

12年7月5日木曜日

Page 41: CMS / BLOG and SnoWOman

Widgets

• Amazon

• Delicius

• Badge

• Bookmarks

12年7月5日木曜日

Page 42: CMS / BLOG and SnoWOman

Widgets

• Googlemaps

• Shareaholic

• Flickr

• Linklist

• Flightboard

12年7月5日木曜日

Page 43: CMS / BLOG and SnoWOman

Widgets

• Testimonials

• Tagline Rotation

• Language Switcher

• Button

• Sample

12年7月5日木曜日

Page 44: CMS / BLOG and SnoWOman

Widgets

• Kickstarter

• Worldcommunitygrid

• Contact sheet

• External Page

12年7月5日木曜日

Page 45: CMS / BLOG and SnoWOman

Widgets

• Menu + Submenus

• WOPagename

• Viewer Area for RSS or Help

12年7月5日木曜日

Page 46: CMS / BLOG and SnoWOman

Widgets

• static (Pinpoint of Widgets)

• Raw HTML,

• Plain Text,

• Rich Text,

• Bookmark,

• Button,

• WOPagename

12年7月5日木曜日

Page 47: CMS / BLOG and SnoWOman

Widget : News

• News : Displaying News Page

• NewsList : Displaying Linksto the latest News

12年7月5日木曜日

Page 48: CMS / BLOG and SnoWOman

Widget : Blog

• Blog : Displaying Blog Page

• BlogList : Displaying Linksto the latest Blogs

12年7月5日木曜日

Page 49: CMS / BLOG and SnoWOman

Widget : Survey

• Result :

• Text

• Textarea

• Single Select (with Options)

• Multi Select (with Options)

12年7月5日木曜日

Page 50: CMS / BLOG and SnoWOman

Widget : Products

• Menu for Cafe or Restaurant

• Add Size + Price + Description

• Picture

• Hot ?

• Ice ?

• New Product?

HTML 5 Canvas

12年7月5日木曜日

Page 51: CMS / BLOG and SnoWOman

Programming

• The CMSRequestHandler try to find the plist for the URL

• If he can’t find it a 404 Error comes back

• In the plist the Information of the Page with Skin & Widgets Information are creating the Page

12年7月5日木曜日

Page 52: CMS / BLOG and SnoWOman

Difficulties

• WOHyperlink

• WOImage

The Link will be stored into the Database

If Link is not correct a Runtime Error happens.

12年7月5日木曜日

Page 53: CMS / BLOG and SnoWOman

The way of WOHYPERLINK

<wo:hyperlink href="" actionClass="" directActionName="" pageName="" >XXX</wo:hyperlink>

Is the Link a http:// or https:// to a different Site, Is it a PageName or a DirectAction. Maybe a Link to an different CMS Page.

Makes it really difficult to store this Information into the Database and after refresh to build and bind the Information to every Context or Widgets.

IMAGE

Link to an Image in the Application ? In an different Framework or maybe outside to an external location.It is not easy to make a Call like because an Error occurs.

<wo:image framework="" filename="" src="" />

Every time

<wo:if condition=""> <wo:image framework="" filename="" /></wo:if><wo:else> <wo:image src="" /></wo:else>

Makes it very difficult to create the Components.

12年7月5日木曜日

Page 54: CMS / BLOG and SnoWOman

Static Resources

To create No Error in the CMS the HTML <img> Link and ERXStaticResource is used.

HTML :<webobject name="PHOTO" />

WOD :

PHOTO : WOGenericContainer { elementName = "img"; src = src;}

JAVA :

public String src() { String s = “http://www.xxx.com/image.png”; return ERXStaticResource.urlForResourceNamed(context(), s); }

External Images : http://www.xxx.com/image.png

Internal Images : static://<<FrameworkName>>:<<FilePath>> static://app:images/image.png

12年7月5日木曜日

Page 55: CMS / BLOG and SnoWOman

Link Resources

To create No Error in the CMS the HTML <a> Link and ERXHyperlinkResource is used.

HTML : <webobject name="LINK"> xxx </webobject>

WOD : LINK : WOGenericContainer { elementName = "a"; href = href; }

JAVA :

public String href() { String s = “http://www.xxx.com”; return ERXHyperlinkResource.urlForHyperlinkResource(context(), s); }

External Link : http://www.xxx.com or https://www.xxx.com

Internal Link : da://<<actionClass>>:<<directActionName>> da://Main cms://default

12年7月5日木曜日

Page 56: CMS / BLOG and SnoWOman

Real-world Usage

• http://www.chanoma.at : Deployed

• http://www.nippon-ya.at (July 2012)

• http://www.ksroom.com (Fall 2012)

• http://www.sound-of-sirens.net : Deployed

• http://www.a10-objects.jp (Fall 2012)

• YesGrp D2W - internal usage : Deployed

• http:// ??? No Domain decide yet (Fall 2012)

JAPAN

AUSTRIA

USA

12年7月5日木曜日

Page 57: CMS / BLOG and SnoWOman

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

Demo

12年7月5日木曜日

Page 58: CMS / BLOG and SnoWOman

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

Fall 2012ERJQueryModernERModernD2WExtensionsERJQueryMobileForD2W

12年7月5日木曜日

Page 59: CMS / BLOG and SnoWOman

Q&A

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

MONTREAL JUNE 30, JULY 1ST AND 2ND 2012

12年7月5日木曜日