Hello everyone, The thought of having a CMS on top of Pylons/Pyramid didn't leave me alone, and I caught myself thinking about how I would implement it, so I'm going to throw some ideas and thoughts in the room, and hope a productive discussion spawns from it.
First of all, I have a heave CMS background, though mostly in the TYPO3 world. Recently, we implemented a big site using Drupal, utilizing a Pylons management service (to edit all the data and stuff like that), so I have some decent knowledge in those two CMS. I have never worked with Plone, except from taking a look at it once or twice to see if it would be suitable for us, so I can't say anything about it on an architectural level, or how to really use it. In addition, I'm up to my ears in a huge TYPO3 project, so if I start talking or suggesting to many TYPO3ish things, just start hitting me over the head with a blunt object ;) On the other hand, TYPO3 is one of the very few CMS I know where you can implement a page and give the editors the possibilities to layout a page exactly how they want it, without any HTML coding, with teasers how they need it, just point and click. So it isn't all bad, but without doubt, TYPO3 is a behemoth, and something a lot simpler would probably be better. In my opinion, what would be needed for a simple CMS: - Templating (borrowing from Drupal):In Drupal, you define a page template with regions, like left column, right column, main content, footer, whatever, and configure in the backend which modules or menus are rendered in which order in a certain region. That would probably be sufficient in the beginning, although I really would like the possibility to override which modules are rendered on a given page/path in a way more intuitive than in Drupal. From an extension/module, you just return the inner html from the content area, and the templating system inserts that in the given region. This would be a nice thing to have anyway, imo, instead of inheriting templates the standard Mako way. I'm not sure if there is an easy way to accomplish this, but that would be a neat thing. - Menu system (borrowing from Drupal): In Drupal, you can define an arbitrary number of menus, with entries as many as you like, and render them in certain regions of the page. The menus are simply a mapping of a URL to a name in a tree. My vision would be to allow the menu system to create links to routes as you like, so you can simply use any controller in a menu, making the thing really extensible and powerful. And in the end of the normal routing, a catch all route would be, which would try to resolve the URL to any dynamic content, e.g. from the page module (see below) - Page module (not really sure where this comes from, probably from Drupal, too): The first step would be to have a simple page module, where you can enter a title, a body text with a rich text editor, and a couple of meta information, maybe like author and creation timestamp, and if it is public or not. The content repository (for a lack of a better name) should store on which URL this content is entered, which extension is responsible for rendering the content, and delegate the rendering to that module To upgrade that along the path shouldn't be too hard, maybe some other content entry extensions or so.... I'm realizing by now that I would be borrowing really a lot from Drupal, as it is a really good CMS, the only thing which isn't that great is the easy formatting of pages with teaser like content, and that there is no distinction between the front end and the backend. And that it is PHP, of course :-P The lacking distinction between frontend and backend really bit us in the butt at our last project, as we wanted to upgrade the used jquery libraries, which just wasn't possible, as the Drupal content modules depend on a specific version of jquery and jquery-ui, and that isn't the best way, imo. And for the content formatting could be implemented in a different frontend rendering module, which shouldn't be that hard. (I'm seeing something like TemplaVoila here, which is one of the most useful pieces for TYPO3 out there). But a lot of other stuff is great, like the hook system Drupal provides, or the frontend user management, and the form rendering isn't too shabby, too. But I personally thing, that those components would give a good start into a CMS project on top of Pylons/Pyramid. I'm just thinking out aloud here, if other people have different ideas, I would be glad to hear them, maybe I'm on a completely wrong track here. But I think something simple for static pages, and have the other, dynamic stuff being rendered by normal controllers, would be definitely enough for a start. Cheers, Jens -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
