Cover image for Professional Plone 4 Development.
Professional Plone 4 Development.
Title:
Professional Plone 4 Development.
Author:
Aspeli, Martin.
ISBN:
9781849514439
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (605 pages)
Contents:
Professional Plone 4 Development -- Table of Contents -- Professional Plone 4 Development -- Credits -- Foreword -- About the Author -- About the Reviewers -- www.PacktPub.com -- Support files, eBooks, discount offers, and more -- Why Subscribe? -- Free Access for Packt account holders -- Preface -- What this book covers -- What you need for this book -- Who this book is for -- Conventions -- Reader feedback -- Customer support -- Downloading the example code -- Errata -- Piracy -- Questions -- I. Getting Ready -- 1. Plone in Context -- A brief history of Plone -- What is new in Plone 4? -- Plone-the-application and Plone-the-framework -- Additional considerations when deciding on Plone -- Licensing -- The Plone Community, and why you belong there -- Summary -- 2. Introduction to the Case Study -- Background and high-level requirements -- Modeling and mockups -- Information architecture -- Running the project -- Summary -- 3. The Development Environment -- Installers -- Glossary of terms -- Prerequisites -- Creating an isolated Python environment -- A minimal buildout -- Buildout basics -- The buildout directory -- Buildout defaults -- Packages and distributions -- The development buildout -- Development tools -- Buildout extensions -- mr.developer -- buildout.dumppickedversions -- Development Zope instance -- plone.reload -- Products.PdbDebugMode -- Products.PrintingMailHost -- Products.DocFinderTab -- Test runner -- Coverage reporting -- Continuous integration -- Omelette -- The zopepy interpreter -- ZopeSkel -- z3c.checkversions -- jarn.mkrelease -- Tools in the browser -- Learning to help yourself -- Find the documentation -- Use the Source, Luke! -- Become familiar with the debugger -- Look at the logs -- Summary -- II. Customizing Plone -- 4. Basics of Customization -- Persistent settings and the ZODB.

Where are persistent settings stored? -- Using GenericSetup for configuration -- GenericSetup and Plone's Add-ons Control Panel -- Acquisition and skin layers -- Overriding Component Architecture components -- Customization best practices -- Using source control -- Writing tests -- Considering migration requirements -- Summary -- 5. Developing a Site Strategy -- Creating a policy package -- Distribution details -- Changes to setup.py -- Changes to configure.zcml -- Updating the buildout -- Working sets and component configuration -- Creating an extension profile -- Writing tests for customizations -- Making a change with the extension profile -- Activating the package -- Rebuildout, restart, reapply? -- Summary -- 6. Security and Workflow -- Security primitives -- Users and groups -- Permissions -- Roles -- Manipulating permissions and roles programmatically -- Keeping control with workflow -- Interacting with workflow in code -- Installing a custom workflow -- Designing a workflow for Optilux Cinemas -- Building the workflow -- Exporting -- Amending the policy package -- Role and permission settings -- Workflow definition -- Mapping workflows to types -- Adding the Staff group -- Writing the tests -- Protected and trusted code -- Restricted Python -- Summary -- 7. Using Add-ons -- Finding and evaluating add-ons -- Playing it safe -- Installing an add-on -- Amending the buildout and policy package -- Adding tests -- Summary -- 8. Creating a Custom Theme -- Background -- Diazo primer -- Creating a Diazo theme -- Creating a theme distribution -- Adding the theme distribution to the buildout -- Installing lxml in Mac OS X -- Adding the theme and rules -- Managing CSS and JavaScript resources -- Adding the rest of the rules -- Enabling the theme automatically -- Adding tests -- Variations on the theming approach -- Separate public and editing interfaces.

Reading the theme from a separate server -- Sharing a theme across multiple systems -- Overriding visual elements -- Registering a browser layer -- The layout policy view -- Overriding templates -- Summary -- III. Developing New Functionality -- 9. Nine Core Concepts of Zope Programming -- About the examples -- Object publishing and traversal -- Containment and URLs -- Acquisition chains -- Path traversal -- Persistence in the ZODB -- Transactions -- Object persistence -- ZODB BLOBs -- Searching for objects using the catalog -- Describing functionality with interfaces -- Using interfaces in catalog searches -- Component configuration with ZCML or Grokkers -- Python directives and grokkers -- Component registries using utilities -- Global utilities -- Named utilities -- Local utilities -- Tools -- Modelling component aspects with adapters -- Multi-adapters -- Named adapters -- Adapter factories -- Views and other presentation components -- Content providers and viewlets -- Synchronous events -- Object events -- Summary -- 10. Custom Content Types -- Content-centric design -- Choosing a content type framework -- Creating a distribution -- Contents of the distribution -- Using the Dexterity framework -- What is in a content type? -- Basic configuration -- Schemata and fields -- Form hints in the schema -- Validation -- Vocabularies -- Rich text fields -- Files, images, and BLOBs -- Content reference fields -- Unique content identifiers -- Indexers -- Content security -- Add permissions -- Schema permissions -- Views and browser resources -- Icons and stylesheets -- Main content views -- Installing and registering types -- Add permissions -- Adding catalog indexes and metadata columns -- Adding the stylesheet -- Integration tests -- Installation and configuration in the policy package -- Adjusting the security policy.

Adjusting navigation tree properties -- Enabling content object versioning -- Site policy tests -- Using the schema extender -- Adding the schema extender and registry -- Defining the registry settings -- Creating the schema extender, vocabulary, and indexer -- Adding tests -- Using portlets -- Creating a new portlet -- Configuring and registering new portlet types -- Assigning portlets automatically -- Summary -- 11. Standalone Views and Forms -- Pages without a specific context -- Templates in skin layers -- Views available on all objects -- Views on the navigation root -- Invoking standalone pages -- Writing custom forms -- Processing form actions -- Checking form submit buttons -- Performing redirects -- Form input converters -- Generating forms automatically -- Creating a control panel view -- The form controller tool -- Writing new viewlets -- Global template variables and helper views -- Functional testing of views -- Summary -- 12. Relational Databases -- Relational databases versus the ZODB -- Modeling screenings and reservations -- Screening query and reservation services -- Setting up the database -- Database connectivity in Zope -- SQLAlchemy basics -- Managing database connections -- Working with the database -- Mapping the database tables -- Querying the database -- Updating and inserting records -- Testing the database -- Adding the user interface -- Updating the Film and Cinema views -- Custom traversal -- Implementing the screening view -- Implementing the reservations form -- Tests -- Summary -- 13. Users and their Permissions -- Defining a membership policy -- Updating the site policy product -- Managing user metadata -- Collaborative workspaces -- The Pluggable Authentication Service -- Anatomy of a PAS plugin -- A Facebook authentication plugin -- Package configuration -- Facebook OAuth authentication -- Testing the plugin.

Installation -- Summary -- 14. Dynamic User Interfaces with jQuery -- KSS and jQuery in Plone 4 -- Managing JavaScript resources -- Overlays -- Background requests and DOM manipulation -- Summary -- 15. Summary and Potential Enhancements -- What we have achieved -- Additional functionality -- Additional reporting and analytics -- More advanced ticketing -- Internationalization -- Translating content -- Translating user interface strings -- Summary -- IV. Real-world Deployments -- 16. Zope on the Server -- Deployment checklist -- Scaling Zope -- Zope Enterprise Objects (ZEO) -- RelStorage -- A deployment buildout using RelStorage -- Moving code, configuration, and data to a server -- Releasing distributions -- Source distributions from tags -- Tagging the build -- Deploying the build -- Managing data -- Managing Zope processes -- Supervisor -- Unix init scripts -- Windows services -- Backups and maintenance -- Backups -- ZODB packing -- Log monitoring and rotation -- Summary -- 17. Setting up a Production Server -- Server components -- Virtual hosting -- Web server -- Caching reverse proxy -- Load balancer -- Other services -- Common configurations -- Deploying on UNIX with minimal configuration -- Deploying on UNIX with SSL -- Deploying on UNIX with maximum flexibility -- Deploying on Windows -- Hardware and operating system concerns -- Hardware -- Buildout or system packages -- Operating system configuration -- Caching and optimization -- Application-level problems -- Optimizing resources -- Resource Registries resource merging -- A crash course in caching -- Caching configuration and rulesets -- Testing and benchmarking -- Summary -- 18. Authenticating with LDAP or Active Directory -- LDAP and Active Directory -- Setting up a test environment -- Connecting Plone to an LDAP repository -- Configuring PAS plugins manually -- Summary.

19. Looking to the Future.
Abstract:
Build robust, content-centric web applications with Plone 4.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: