Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SilverStripe Introduction
Search
Philipp Krenn
April 08, 2015
Programming
0
1.4k
SilverStripe Introduction
SilverStripe introduction given at the ViennaPHP and Drupal Vienna meetup groups
Philipp Krenn
April 08, 2015
Tweet
Share
More Decks by Philipp Krenn
See All by Philipp Krenn
Full-Text Search Explained
xeraa
11
2k
360° Monitoring of Your Microservices
xeraa
7
3.3k
Scale Your Metrics with Elasticsearch
xeraa
4
130
YAML Considered Harmful
xeraa
0
2k
Scale Your Elasticsearch Cluster
xeraa
1
280
Hands-On ModSecurity and Logging
xeraa
2
140
Centralized Logging Patterns
xeraa
1
980
Dashboards for Your Management with Kibana Canvas
xeraa
1
450
Make Your Data FABulous
xeraa
3
810
Other Decks in Programming
See All in Programming
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
150
AWS AppSyncを用いた GraphQL APIの開発について - NIFTY Tech Talk #22
niftycorp
PRO
0
110
.NET Conf 2024の振り返り
tomokusaba
0
170
macOS なしで iOS アプリを開発する(※ただし xxx に限る)
mitsuharu
1
150
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
160
Cognitoが大型アップデート!Managed Loginとパスワードレスログインを実際に使ってみた@しむそくRadio Special Day1
tmhirai
2
140
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
3k
初めてDefinitelyTypedにPRを出した話
syumai
0
480
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
3
1.4k
最新TCAキャッチアップ
0si43
0
250
Missing parts when designing and implementing Android UI
ericksli
0
370
.NET 9アプリをCGIとして レンタルサーバーで動かす
mayuki
0
730
Featured
See All Featured
Bash Introduction
62gerente
608
210k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Why Our Code Smells
bkeepers
PRO
334
57k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How GitHub (no longer) Works
holman
310
140k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Transcript
Philipp Krenn @xeraa https://xeraa.net
Background Google Summer of Code Student 2007 Multiple Database Support
Background
Background GSoC Mentor 2012: Yuki Awano Content Personalization
Ecosystem BSD licensed — http://www.silverstripe.org SilverStripe Ltd. — http://www.silverstripe.com
Development 2007 2008 2009 2010 2011 2012 2013 2.0 3.1
3.0 2.4 2.3 2.1 2.2 2014 2015 3.2
Installation
Requirements Apache httpd, nginx, lighttpd, IIS PHP 5.3+ MySQL 5.0+
PostgreSQL 8.3+, SQL Server 2008+, SQLite 3.3+ via modules Chrome, Firefox, IE 8+ (Safari) for the CMS Composer recommended
Preparation Empty database silverstripe nginx configuration _silverstripe3: https://gist.github.com/xeraa/9527232 server {
root /Users/philipp/Sites/silverstripe; server_name silverstripe.local; include _silverstripe3; } /etc/hosts: 127.0.0.1 http://silverstripe.local
Installation $ composer create-project silverstripe/installer ~/Sites/silverstripe 3.1.12 http://silverstripe.local $ chmod
-R 777 ~/Sites/silverstripe/assets/ $ chmod 777 ~/Sites/silverstripe/mysite/_config.php
CMS
Overview http://silverstripe.local/admin/ Pages Reports Files Security Settings
First Steps Change the CMS language and date formats Change
the site title and slogan
Pages Content Settings History Viewing modes Split (screen size dependent)
Preview including different devices Edit
CSS themes/simple/css/typography.css .typography h1 { … background: #ee5757; } Force
reload in the CMS
Under the Hood Database tables SiteConfig SiteTree, SiteTree_Live, SiteTree_versions
Framework
Basics MVC Pulling data, not pushing it Object-oriented — extension
via inheritance / mixins Everything is code
Template Structure mysite/templates/, mysite/css/,… themes/<name>/templates/, themes/<name>/ css/,… themes/ Includes/ Layout/Page.ss
(optionally more) Page.ss
Template Elements $Title, $Content, $SiteConfig.Title <% loop $Menu(1).Limit(5) %> $Link
<% end_loop %> <% if not $Children %> … <% end_if %> <% with $CurrentMember %> $FirstName <% end_with %>
Template Changes templates/Includes/Footer.ss Proudly powered by SilverStripe templates/Page.ss <% include
Subfooter %> templates/Includes/Subfooter.ss <p>© Philipp Krenn</p>
http://will-rossi.deviantart.com/art/SilverStripe-WallPaper-01-59254232
Triggering an Error Delete an <% end_… $> mysite/_config/config.yml: dev,
test, live Director: environment_type: 'dev'
A New Page Type mysite/code/MeetupPage.php — Model and Controller themes/simple/templates/Layout/
MeetupPage.ss — View
Model 1/2 class MeetupPage extends Page { private static $db
= array( 'Date' => 'Date', 'Type' => 'Enum("Unknown, PHP, Symfony, Drupal, SilverStripe", "Unknown")', ); private static $has_one = array( 'Logo' => 'File', );
Model 2/2 public function getCMSFields() { $fields = parent::getCMSFields(); $dateField
= new DateField('Date'); $dateField->setConfig('showcalendar', true); $fields->addFieldToTab('Root.Main', $dateField, 'Content'); $fields->addFieldToTab('Root.Main', new DropdownField('Type', 'Type of event', singleton('MeetupPage')->dbObject('Type')-> enumValues()), 'Content'); $fields->addFieldToTab('Root.Main', new UploadField('Logo'), 'Content'); return $fields; }
Controller class MeetupPage_Controller extends Page_Controller { }
Synchronize the Database http://silverstripe.local/dev/build?flush=all Add new page in the CMS
View <% include SideBar %> <div class="content-container unit size3of4 lastUnit">
<article> <h1>$Title</h1> <h2> $Type <% if $Type == "SilverStripe" %>*yeah*<% end_if %> </h2> <h3>$Date</h3> <img src="$Logo.URL" alt="logo"> <div class="content">$Content</div> </article> $Form $PageComments </div>
Much More DataObjects and Scaffolding Powerful forms with GridField Object-Relational
Mapper RESTful API SOAP API Extensible permission system
And a Little Less Smallish community outside of New Zealand
and Australia A manageable number of modules Hint: https://github.com/search?q=silverstripe- &type=Repositories Few (good) themes
More Information http://www.silverstripe.org https://github.com/silverstripe http://www.meetup.com/SilverStripe-Austria http://vimeo.com/silverstripe
Try It https://github.com/xeraa/silverstripe-nginx
Thanks Questions? Now @xeraa
[email protected]