cms / blog and snowoman
DESCRIPTION
SnoWOMan is a CMS and blog system built on Project Wonder and WebObjects.TRANSCRIPT
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日木曜日
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日木曜日
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日木曜日
Agenda
• Offline CMS
• CMS System
• SnoWOman
• Demo
• Q&A
12年7月5日木曜日
Offline CMS Deploy System12年7月5日木曜日
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日木曜日
NICE• Easy Solution
• We make the Custom Design.
• The Customer can use it. (Maybe)
12年7月5日木曜日
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日木曜日
Drupal : What’s nice about it
• Many Themes
• Lot of Languages
• Very Popular
• Open Source
• Lot of Plugins
12年7月5日木曜日
Custom Themes
• Create Custom Themes
(3 People worked 4 Months on it)
12年7月5日木曜日
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日木曜日
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日木曜日
Security
12年7月5日木曜日
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日木曜日
How can I use it?
• Learn PHP
• Learn MySQL
• Download Drupal and learn it
12年7月5日木曜日
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日木曜日
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日木曜日
WordPress : WAY 1
• own Deploy ?
• Than it will like Drupal, you have to careabout everything, write PHP and dive into it.
12年7月5日木曜日
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日木曜日
SnoWOman12年7月5日木曜日
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日木曜日
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日木曜日
6 Frameworks
• WOKeyValueDataStorage (1 Entity)
• WOEmoji
• ERMailManager (5 Entities)
• SKIN_Sandvox
• ERModernJQuery
• SnoWOman (5 Entities)
12年7月5日木曜日
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日木曜日
ERModernJQuery
• Input Field Validation
• Banner
• FlightBoards
• Picture / Video Viewer
• and more ...
12年7月5日木曜日
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日木曜日
The Funniest WO Code ever
12年7月5日木曜日
ERMailManager
• This Framework is handling Newsletter
• Waiting for “Amedeo” Release
12年7月5日木曜日
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日木曜日
12年7月5日木曜日
SnoWOman
• MAIN Framework
• 4 TEMPLATES for now (will come more)
• A lot of WIDGETS
• CMS Request Handler & CMSContext
12年7月5日木曜日
TEMPLATES
• Simple Template (Sandvox)
• Print Template (for Printing)
• D2W Template (for ModernDirect2Web)
• Custom Template (for Custom Skins)
12年7月5日木曜日
CUSTOM Skins
• Easy to make Custom Skins
• Most Customer need a Custom Skin anyway
12年7月5日木曜日
Widgets : Text & Html
• PlainText
• RichText
• Blockquote
• Raw HTML
12年7月5日木曜日
Widgets : Video
• YouTube
• JW Player
• Estro Player
12年7月5日木曜日
Widgets : Photo
• Banner Slideshow
• Slideshow
• Photos
• PrettyPhoto
12年7月5日木曜日
Widget : Newsletter
• Newsletter
• Newsletter Remove
12年7月5日木曜日
Widgets : Twitter & IM
• AIM
• Skype
• RSS (Viewer Support)
• Tweet
• Twitterlist
12年7月5日木曜日
Widget : Apple
• Web App
• Safari Extensions
• Mac App Store
• iTunes
• iBookStore
• App Store
12年7月5日木曜日
Widget : Facebook
• Like
• Subscribe
• Comment
• Recommendations
• Facepile
• Send
12年7月5日木曜日
Widgets
• Amazon
• Delicius
• Badge
• Bookmarks
12年7月5日木曜日
Widgets
• Googlemaps
• Shareaholic
• Flickr
• Linklist
• Flightboard
12年7月5日木曜日
Widgets
• Testimonials
• Tagline Rotation
• Language Switcher
• Button
• Sample
12年7月5日木曜日
Widgets
• Kickstarter
• Worldcommunitygrid
• Contact sheet
• External Page
12年7月5日木曜日
Widgets
• Menu + Submenus
• WOPagename
• Viewer Area for RSS or Help
12年7月5日木曜日
Widgets
• static (Pinpoint of Widgets)
• Raw HTML,
• Plain Text,
• Rich Text,
• Bookmark,
• Button,
• WOPagename
12年7月5日木曜日
Widget : News
• News : Displaying News Page
• NewsList : Displaying Linksto the latest News
12年7月5日木曜日
Widget : Blog
• Blog : Displaying Blog Page
• BlogList : Displaying Linksto the latest Blogs
12年7月5日木曜日
Widget : Survey
• Result :
• Text
• Textarea
• Single Select (with Options)
• Multi Select (with Options)
12年7月5日木曜日
Widget : Products
• Menu for Cafe or Restaurant
• Add Size + Price + Description
• Picture
• Hot ?
• Ice ?
• New Product?
HTML 5 Canvas
12年7月5日木曜日
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日木曜日
Difficulties
• WOHyperlink
• WOImage
The Link will be stored into the Database
If Link is not correct a Runtime Error happens.
12年7月5日木曜日
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日木曜日
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日木曜日
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日木曜日
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日木曜日
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012
Demo
12年7月5日木曜日
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012
Fall 2012ERJQueryModernERModernD2WExtensionsERJQueryMobileForD2W
12年7月5日木曜日
Q&A
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012
MONTREAL JUNE 30, JULY 1ST AND 2ND 2012
12年7月5日木曜日