lotus framework
DESCRIPTION
MVC framework over WordPressTRANSCRIPT
![Page 1: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/1.jpg)
MVC Framework over WordPress
Todi Adiyatmo Wijoyo for WordCamp Indonesia 2013
![Page 2: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/2.jpg)
Introduction Name
Todi Adiyatmo Wijoyo Role
Developer Company
Tonjoo.com Twitter
@todiadiyatmo
![Page 3: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/3.jpg)
Disclaimer
This is a very technical presentation
![Page 4: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/4.jpg)
WordPress Very popular CMS
Used by TONS of Website Easy to learn
Newcomers can learn how to use WordPress quickly
Deploying WordPress is fast Many theme to choose from Various plugin to extend functionality Can be developed pararel by using plugin Reducing development cost significantly
Strong community support
![Page 5: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/5.jpg)
Deploy Strategy – “The WordPress way”
Select Theme
Plugin
Modify
![Page 6: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/6.jpg)
Classic WordPress Question..
How to add complex functionality ?? Ex : Add complex front end
![Page 7: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/7.jpg)
Theme Hacking - Diggity
![Page 8: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/8.jpg)
Theme Hacking – Diggity ( User Follow)
![Page 9: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/9.jpg)
Development Strategy – “The WordPress way”
Limitation : “Inject” new functionality to themes or plugin
is painful, we must dig into the source code Not so “Time Efficient” ~ Against WP Philosophy
This lead to difficulty in developing complex application
![Page 10: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/10.jpg)
Other Limitation Loss of parallel development
Front end Dev and Back End Dev cannot work on the same theme on the same time
Non standard-code Lost of custom page template Different routing scheme Different file placement scheme
![Page 11: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/11.jpg)
MVC Framework Model – View – Controller Pattern Generally accepted style to build complex
(web) application Used by most framework
Most developer learn how to code in MVC during their collage time
![Page 12: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/12.jpg)
MVC Framework - disadvantages Not easy to learn
Take a lot of time to master one framework Plugin does not extend functionality as WordPress
(not click and go) Developing web with minimum developer is
not so fast Getting skilful developer is hard !
![Page 13: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/13.jpg)
MVC
![Page 14: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/14.jpg)
Comparison – WordPress and MVCFeatures WordPress MVC Framework
Easy to learn Yes Relative
Plugin and theme (1) Yes Mostly no
Fast deployment (2) Yes No
Develop complex application
Hard The General accepted way
1. Some Framework do have plugin2. Fast development with MVC framework means Senior
developer which equal extra cost
![Page 15: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/15.jpg)
Open Source MVC Framework for WordPress
Solution : Running MVC Framework over WordPress
![Page 16: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/16.jpg)
Lotus Framework Philosophy Easy to learn
Adopting Codeigniter Syntax Integration
Easy to deploy – Come with plugin Seamless integration into theme Using “native” WordPress code
Some serious documentation Current solution is not so well documented We want to make clear documentation
Well tested Already run on 3 project
![Page 17: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/17.jpg)
Lotus Framework - Architecture
Index Archive Single Page Hooked Page
Your chosen theme, any theme
WordPress
![Page 18: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/18.jpg)
Benefit of Using Lotus Framework Parallel development
Front end dev on theme, Backend developer on the LF
MVC Convention Every action done in correct part of apps
Database action done on model UI done on View Routing done on Controller
Easier development Develop complex web application with lower
senior programmer
![Page 19: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/19.jpg)
Simple case study
Develop a custom front end for a multi-site WordPress network
![Page 20: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/20.jpg)
Case Study Scenario
Indonesia Kreatif
5 Websites , Single User Dashboard Custom Business process
User role Fast Development
NEWSDIREKTO
RI EVENT
SHOWCASE
PORTAL
![Page 21: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/21.jpg)
Development Strategy WordPress
(+) Theme and Plugin ( - ) Way… tooo… dificult.. The user role, the
dashboard, the integration Framework
( + ) Easy to develop custom web apps with custom user role
( - ) Just not enough time ( - ) High cost, how many senior programmer you
would hire ? :p
![Page 22: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/22.jpg)
Other bizarre strategy Build Front end with WordPress Use framework to “inject data directly to the
database”
WordPress Database
![Page 23: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/23.jpg)
With the help of Lotus Framework Front end dev working on theme
5 Site -> 5 Theme Use any theme and plugin you want Do as usual, it just other ordinary day developing
WordPress theme
Back end developer Working on custom front end user dashboard Use native WordPress code to :
Login Register Post new article
![Page 24: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/24.jpg)
Native Code - Login
wp_signon( $credentials, $secure_cookie ) http://codex.WordPress.org/Function_Reference/wp_signon
![Page 25: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/25.jpg)
Post List
![Page 26: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/26.jpg)
Native Code – Edit / Post new Article
wp_insert_post()
![Page 27: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/27.jpg)
Quick Demo
![Page 28: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/28.jpg)
Other Case Study - RSVP
![Page 29: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/29.jpg)
Lotus Framework Contributor
Code Tester Documentation Guy
Follow us at @tonjoo Public Release : End of 2013
![Page 30: Lotus Framework](https://reader036.vdocuments.mx/reader036/viewer/2022081721/54b5023d4a7959cc7c8b4726/html5/thumbnails/30.jpg)
Question Session