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 pylons-disc...@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-discuss+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to