On Thu, 2011-11-24 at 20:05 +0100, Gour wrote: > On Thu, 24 Nov 2011 19:34:52 +0100 > ~redShadow~ <redsha...@hackzine.org> wrote: > > > * Different kind of contents (page, article, ...), referred as "node", > > managed by the same code, but with different fields/views/behavior. > > This is very similar to drupal content management, for who is > > familiar with it. > > * User-defined fields associated to content types. Unlike drupal, > > configuration should be placed (also?) in configuration files, to keep > > "structure" and "content" well separated > > * The main layout is composed of different regions, in which some > > "blocks", containing either static or dynamic content may be placed. > > I'm not familiar with Drupal, but very much like Concrete5 > (concrete5.org) where it is extremely easy to convert HTML/CSS/JS theme > into Concrete5 one. Moreover, different page types just define areas on > the page where user can then freely put different type of content via > blocks.
For "page types", you mean "the equivalent of layout.html"? That's exactly what drupal does and I'm doing here; plus I think that "columns population" is more view-specific than controller-specific; for example the same controller would return the same bare list of posts either for the "last posts" html view and the "rss feed" view, but the html one will also populate sidebars with blocks, footer with copyright message, etc. > > * Comments and stuff, as components (with ajax loading, etc.) > > * Categories/tags/.. managed by assigning "tags" to stuff (not only to > > content, possibly to users or other entities). Tags are categorized in > > vocabularies that define the tag behavior / limitations, and can be > > organized in trees. > > Blog, comments, categories and tags are e.g. in Concrete5 realized via > add-ons or different 'Blog plugins' and does not belong to the core. The idea is to have the core (but possibly also 'extension modules') define several "entities" that can be used to design the whole structure. So many stuff will probably go into "core modules", just to let them be eventually "unplugged" and/or replaced by contributed ones. But since this is the most relevant part, I'm working on this :) > > * Everything is translatable. I see how in other software, such as > > Drupal, translation of content can become a pain if it's not directly > > supported by the core, so I created a way to handle translations of > > pretty much everything with "parallel" ``t9n_*`` tables. > > Concrete5 uses gettext, *.po/mo files and every translatable function is > prefixed with t(). Yep. I think that one big error here is to mix up t()-ranslatable strings with multi-language content. The scope of the ``t()`` function (that exists in Drupal too, using *.po files, imported into database for performance; also called ``T()`` in web2py) is to translate *short* strings, mostly hard-coded, and used in the interface. For the actual *contents* (pages, etc.) it's important that translations are kept separated (as possibly the translation source can be updated after translation, etc.), but, for example, the Drupal core doesn't handle this directly, so contributed modules implementing this have to hack it into core logic, but this won't always work smoothly as expected. > Finally, Concrete5 is CMS written on top of MVS framework which enables > developers to easily develop different add-on like blogs, news, > ecommerce modules etc., so I believe that web2py CMS should take > advantage of its framework and provide API for developers so that it can > be easily enhanced. Drupal is not *based on* a framework, it *is* a framework + some core modules defining the basic cms behavior + contributed modules extending functionality. I'm working on the "add-ons"/"modules" management thing too; maybe I recently figured out the best way to handle this, but I'm not already sure it is the right way to do that, so, more info about it is coming soon. > Please, take a look at Concrete5. I'll have a look at it for knowledge, although for what I understood, it isn't very distant from Drupal and what is my idea of CMS. -- Samuele ~redShadow~ Santi ---------------------------------------------------------------- redshadow[at]hackzine.org - redshadowhack[at]gmail.com Blog: http://hackzine.org GPG Key signature: 050D 3E9F 6E0B 44CE C008 D1FC 166C 3C7E EB26 4933 ---------------------------------------------------------------- /me recommends: Squadra Informatica - http://www.squadrainformatica.com ---------------------------------------------------------------- - Proud ThinkPad T-Series owner - Registered Linux-User: #440008 * GENTOO User since 1199142000 (2008-01-01) * former DEBIAN SID user ---------------------------------------------------------------- "Software is like sex: it's better when it's free!" -- Linus Torvalds
signature.asc
Description: This is a digitally signed message part