Introduction to Gallery Bharat Mediratta July 25, 2002 What is Gallery • Open Source PHP application • Your photos on your website • Provides similar functionality to commercial ASP products like Yahoo! Photos, Club Photo, PBASE Brief History of Gallery • • • • Started May 2000, small development team Targeted at individual webmasters (me!) Installed on 20-30K+ websites today 200-300 new installs every day Why Do You Need Gallery? • You have a digital camera – and you use it! • You want the photos nicely integrated on your website • You don’t want to subject your visitors to advertising • You don’t trust dot coms with your data. The Gallery 1.x Challenge • Create an application with low barrier to entry to reach the broadest user base: – No database requirement – Don’t require custom PHP configuration (eg, compiled in GD, JPEG, PNG support) – Don’t require shell access to install – Run on Unix and Windows – Provide configuration wizard The Tradeoffs • No database concurrency issues • External graphics library config issues Gallery Configuration Security Problem Config wizard needs to create an output file, but we only want that file to be writeable at configuration time: Solution (borrowed from Horde) Create scripts to switch Gallery between configuration and secure modes Gallery Config Wizard Part 1 • Check out the user’s system Gallery Config Wizard Part 2 • Ask the user lots of questions and provide example answers Gallery Config Wizard Part 3 • Check the user’s answers! – The sooner we find configuration problems, the less time the user wastes Add photos! • • • • • Log in Create a New Album Set Album title, URL, etc. Upload Photos from browser Slurp photos from another website Manage Photos • Rotate images • Automatically create thumbnails • Resize images • Cutomize thumbnails Organize Albums • Nested albums • User permissions • Optional Features: – Print Service – Slideshow – User Comments Gallery Remote • Java companion program • Upload Photos using a rich interface Customizing: HTML Wrappers • Use HTML wrappers to frame your Gallery, Albums, and Photos • Wrappers can also be used to add functionality (like a Shopping Cart interface) Customizing: Style Sheets • Easily change the look by modifying the Gallery style sheet Customizing: Change the code • The Open Source advantage: Add all new functionality to Gallery by modifying the source code Gallery and CMS/Portals • • • • PHP-Nuke and PostNuke Geeklog PhpBB2 XOOPS Gallery E-commerce Plugins • Use the HTML Wrappers to add: – – – – Shopping cart Inventory integration Virtual post cards Print services Strengths • • • • • • Lightweight Easy to install Works in most environments Uncluttered interface Feature rich Good support community Weaknesses • Performance degrades in large Galleries • Reliability issues – greatly improved in newer versions • No Internationalization • No Templates • Concurrency Problems Lessons Learned • • • • Hold the user’s hand (config wizard) Build a community! Release early, release often Accept and integrate user criticism G2: The Future of Gallery • • • • • • • Reliability, Scalability, Flexibility Templates Concurrency Support Relational Database support Better CMS Integration Internationalization Dynamic thumbnail generation Questions