Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SilverStripe Introduction
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
2.4k
360° Monitoring of Your Microservices
xeraa
7
3.5k
Scale Your Metrics with Elasticsearch
xeraa
4
160
YAML Considered Harmful
xeraa
0
2.1k
Scale Your Elasticsearch Cluster
xeraa
1
340
Hands-On ModSecurity and Logging
xeraa
2
210
Centralized Logging Patterns
xeraa
1
1.2k
Dashboards for Your Management with Kibana Canvas
xeraa
1
500
Make Your Data FABulous
xeraa
3
1k
Other Decks in Programming
See All in Programming
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
390
ロボットのための工場に灯りは要らない
watany
10
2.6k
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
CSC307 Lecture 13
javiergs
PRO
0
320
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
540
Ruby x Terminal
a_matsuda
7
590
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
15
3k
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
130
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
150
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.1k
Test your architecture with Archunit
thirion
1
2.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
140
Un-Boring Meetings
codingconduct
0
220
Amusing Abliteration
ianozsvald
0
130
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
470
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
GitHub's CSS Performance
jonrohan
1032
470k
Chasing Engaging Ingredients in Design
codingconduct
0
140
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]