This is the Official Guide on the award-winning Silver Stripe
programming framework, authored by the creators of the open source
CMS.
Silver Stripe is a robust and flexible website content
management system (CMS) tightly integrated with an application
framework. It is open source and embraces modern system
architecture and agile development methodologies. Intermediate
developers can implement powerful websites and web-applications
quickly and customize them to their individual needs. The
award-winning PHP5/My SQL-based system saves not only time and
nerves for techies, but also features a straightforward interface
which is a joy to use for non-technical content-authors.
This Guide helps you to:
* Get started with Silver Stripe: Learn the architecture
and usability principles that underpin Silver Stripe’s modern
approach. Then go through the technical requirements, the
installation process, and useful tools for your daily
work.
* Learn the CMS: Practical examples show you how to use
the CMS as a content author, and how to manage content, images,
documents, and forms without technical knowledge. Administrators
learn how to set up permissions and security groups.
* Develop a custom application: Use MVC and other modern
design patterns to create well-structured, object-oriented PHP code
and concise template markup. Let the authors walk you through
creating an interactive recruitment website as practical example
project.
* Extend through clean code and modules: Understand how
Silver Stripe is built on modularity and how this empowers you to
build plugins and core extensions in an elegant, maintainable
fashion.
* Use Silver Stripe professionally: In-depth topics on
internationalization, security, unit testing, caching, multi-page
forms, and web services APIs ensure that you can build world-class
websites.
Spis treści
About the Authors.
About the Translator.
Foreword by Sigurd Magnusson.
Preface by Steven Broschart.
1 Introduction.
1.1 Why Silver Stripe?
1.2 History.
1.3 Future.
1.4 Conclusion.
2 Installation.
2.1 System Requirements.
2.2 Preparation.
2.3 Installation.
2.4 Useful Software.
2.5 Database Management.
2.6 Support.
2.7 Conclusion.
3 Architecture.
3.1 Introduction.
3.2 MVC – Model View Controller.
3.3 ORM – Object Relational Mapping.
3.4 Directory Structure.
3.5 Modules and Widgets.
3.6 Themes.
3.7 Configuration.
3.8 Conclusion.
4 First Steps.
4.1 Our Project: Job Portal and User Group.
4.2 Creating the Page Structure.
4.3 Inserting Page Content.
4.4 Managing Files and Images.
4.5 Versioning.
4.6 Comments.
4.7 Simple Contact Form.
4.8 Creating New Users.
4.9 Themes.
4.10 Conclusion.
5 Development: Job Postings.
5.1 Job Categories as a Page Type.
5.2 Job as a Data Object.
5.3 Relations Between Data Objects.
5.4 Creating the Interface.
5.5 Creating Templates.
5.6 Custom Forms.
5.7 Email Notification.
5.8 Integrating the Blog Module.
5.9 Search Engine Optimization.
5.10 Conclusion.
6 CRM.
6.1 Where are we Headed?.
6.2 Datamodel.
6.3 Using Model Admin for Data Management.
6.4 Multi-page Registration Form.
6.5 Skills as Tags.
6.6 File Uploads for References.
6.7 Searching Data Objects.
6.8 Generic Views Using Collection Controller.
6.9 Defining Access Permissions.
6.10 Web Services Using RESTful Server.
6.11 RSS Feeds for Jobs.
6.12 Conclusion.
7 Security.
7.1 Cross-site Scripting (XSS).
7.2 Cross-site Request Forgery (CSRF).
7.3 SQL Injection.
7.4 Directory Traversal.
7.5 Sessions.
7.6 Conclusion.
8 Maintenance.
8.1 Environment Types.
8.2 Configuration of Multiple Environments.
8.3 Version Control using Subversion.
8.4 Backup.
8.5 Upgrade.
8.6 Error Handling.
8.7 Performance.
8.8 Conclusion.
9 Testing.
9.1 Test-driven Development.
9.2 Installing PHPUnit.
9.3 Running Tests.
9.4 Unit Tests for the Model.
9.5 Functional Tests for the Controllers.
9.6 Conclusion.
10 Localization.
10.1 Character Sets and Unicode.
10.2 Translating Templates and Code.
10.3 Translatable: Translating Database Content.
10.4 Conclusion.
11 Recipes.
11.1 Prerequisites.
11.2 Customizable Page Banner.
11.3 Branding the CMS Interfaces.
11.4 Full-text Search for Websites.
11.5 Redirecting from Legacy URLs.
11.6 Simple Statistics using Table List Field.
11.7 Showing Related Pages.
11.8 CSV Import using CSVBulk Loader.
11.9 A Fully Flash-based Website Driven by Silver Stripe.
11.10 Conclusion.
12 Extending.
12.1 Different Ways to Extend Silver Stripe.
12.2 Extending Core Functions.
12.3 Creating Custom Modules.
12.4 Creating Custom Widgets.
12.5 Conclusion.
13 Useful Modules.
13.1 E-commerce.
13.2 Forum.
13.3 Gallery.
13.4 Flickr Service.
13.5 Youtube Gallery.
13.6 Spam Protection: Mollom and Recaptcha.
13.7 Auth_External.
13.8 Auth_Open ID.
13.9 Subsites.
13.10 CMS Workflow.
13.11 Site-tree Importer.
13.12 Geospatial Modules.
13.13 Conclusion.
Index.
O autorze
Steven Broschart has been working for many years as a Senior SEO Consultant at one of Germany’s leading online marketing agencies, cyberpromote Gmb H (cyberpromote.com). Aside from developing PHP- and Ruby on Rails-based business applications and coordinating key accounts for SEO, he is consulting his clients in choosing open source systems. Steven is a regular author at the German PHP Magazine.
Ingo Schommer is a core member of the Silver Stripe platform, as well as a Senior Developer at Silver Stripe Ltd. in Wellington, New Zealand. He analyses and builds modern web applications, making sure they work well in a browser, not just on paper. He is a frequent contributor to the open source platform, facilitates community involvement, and helps to architect and implement core functionality. Ingo authored the first book about Silver Stripe. Besides freelancing as a PHP- and Flash-developer for several years, he graduated as Bachelor of Arts (Hons) in Media Production. He is particularly interested in bringing rich applications to the browser through the fascinating possibilities of Java Script.