Features

Puma has an assorted array of useful features your end-users will love:

  • Version-controlled pages. Any edits you make to a puma page are versioned, so you don’t have to worry about making mistakes.
  • Integrated WYSIWYG editor. No more learning wiki-style markup or HTML to get things done!
    • The Puma team has extended FCKEditor with special puma features that make it super easy to link between pages on your website—you don’t have to know its name
    • FCKEditor comes with a built-in world keyboard, so it’s easy to enter multilingual documents.
  • Upload non-text resources. Puma can attach any kind of resource to any given page. Using resources, it’s easy to add pictures, music, or PDF documents to your pages.
  • SiteTree. Your Puma website is built like a tree, so you can organize your pages into categories so your viewers can navigate more easily. The child pages are automatically displayed, so you do less work to keep your website in sync.
  • Useful plugins. Puma comes pre-packaged with a reservations plugin which you can use to keep track of RSVPs for events or conferences. There’s also a drop-in forum plugin so you can interact with your viewers without requiring them to go through the full Puma sign-up process.
  • Control who can edit and see what. Puma has a comprehensive rights and restrictions policy. You can control whether the Internet community can sign themselves up as members of your website. You can control which pages are visible to anonymous internet users, and which pages are only visible to signed-in users. Additionally, you can control which pages are editable by whom, so if you want a Wiki-like atmosphere, you can do that; and if you want a CMS-like atmosphere, you can do that too. Puma doesn’t presume to know how you want to run your site; that’s up to you to decide.
  • High-performance searching. Puma can use Sphinx Search if you have it installed to search 2 Gigabytes of text in under a second! Ideal if you’re publishing an online textbook, or you want your users to benefit from Sphinx’s intelligent stemming (which returns documents containing “ran” when the user searched for “run”, for example).

Of course, there are a ton of features you developers will love, so if you’re using Puma to build a website for a client, or you want a starting point for your own product, consider the following:

  • Follows the MVC pattern. Rather than cooking up an ad-hoc collection of PHP scripts that will bewilder even the most hardy PHP developers, the Puma team built our product on the familiar model-view-controller design pattern. You can count on being able to find just the behavior you want to tweak with a minimum amount of searching.
  • Built on REST principles. You’ll note there’s a clean HTTP interface to Puma. While most controllers produce HTML output for browsers by default, some controllers produce XML output or even JSON when requested. The output format is controlled by the format GET variable, and simply creating the appropriate template will allow you to build easily-customized output your third-party programs will find easy to parse, all without sacrificing the HTML interface or mucking about with any of the controllers!
  • AJAX Ready. The Puma HTTP interface is just waiting for your ingenious AJAX hacks. Any interaction you want to have with the Puma core, you can do over XMLHttpRequest with no fuss at all.
  • Built with few dependencies. Puma requires PEAR::DB::DataObject for its domain objects and Smarty for producing views from templates. FCKEditor and a specially-compiled edition of the dojo toolkit are also required. All the requirements come pre-packaged with the Puma source code, so you can drop it on a server and have it running in no time!
  • Template-driven interface. The default Puma templates are intentionally ugly to help remind you which templates you haven’t retrofitted with your client’s look and feel.
  • Sane plugin development. Developing new plugins is easy. Puma was designed to provide a bare core of functionality that’s easy to extend for your specific needs.
  • Modular design. Much of the Puma logic is not particular to the Puma platform. For example, the industrial strength HTML Sanitizer can be moved straight out of the Puma sources and into your own application. It has no external dependencies. The simple dispatcher has been refined over several project iterations and is perfect when you just need a dispatcher that works—without tens of PEAR dependencies.
  • Liberally licensed. PumaCMS is licensed under the LGPL, so you’re free to base your commercial products off it and to use whatever portions you see fit for whatever purpose you like. It won’t convert your proprietary application into an Open Source application.
  • Well documented. This blog itself will cover all aspects of Puma—from installation to maintenance, upgrades, internals, adding plugins, and making the most of the templating system. If it’s not documented and you need the docs ASAP, just let us know and we’ll write an article just for you. After all, we wrote Puma because we just wanted a CMS that works! and we want you to benefit from that.

Bad Behavior has blocked 22 access attempts in the last 7 days.