What is CMFContentPanels?

  CMFContentPanels is a plone portlets product to build composite pages. You can create new content which is composed of other contents as configurable 'content panels'.  You can change the layout, the panel skin and the content viewlet through the web.


Features

  * support multi-page and mulit-column

  * full function layout management, easy to use: move panels left/right/up/down

  * predefined viewlets for Document, Image, Folder, Topic, ZWiki Page, PloneChat, mxmDynamicPage.

  * each viewlet is configurable. it is quite easy to add new viewlets. You can add a RSS viewlet or a simplet text viewlet.

  * contentpanels content can be a plone portlet and show on the left/right column.

  * support multi-rows: use 'tile' page layout mode, and each page becomes a new row!

How to Use it?

  1. Install it. See INSTALL.txt for more information.

  2. http://www.zopechina.com/products-en/CMFContentPanels

How to Extend CMFContentPanels? (For Developers)

 How to make more viewlets?

  Viewlet is a view of content which can be selected in contentpanels. Viewlet
can be a zpt or a zpt macro. Viewlets are registered with CMF Action
mechanism.

  1. Write a viewlet for your content.  Viewlet structure is the same to 
    "Plone 2 portlet":http://plone.org/Members/arnia/plone2-css-reference/Portlets/wikipage_view.
You can refer to stuff at \CMFContentPanels\skins\contentpanels\viewlets,
where are default viewlets.

  2. All viewlets are registered in portal_contentpanels. 
     You can also register viewlets using::

      from Products.CMFContentPanels import registerViewlets
      registerViewlets( you_viewlets )

     With this way, if you reinstall CMFContentPanels, your viewlets configuration will not lost.

 how to make viewlet configuable

   1. viewlet configuration form fields can be define in a macro with name::

        (your_viewlet_macroname)_viewletconf

      for example, viewlets_folder_recent.pt has 2 macros: base_portlet and base_portlet_viewletconf

   2. the form fields will be showed and saved automatically

   3. your viewlet can use the form variables in a dict named 'viewletOptions', for example viewletOptions['itemCount']

 How to add new panel skin?

  You can define a new css wrapper to define a new panel skin:

  1. customise contentpanels_skin.css.dtml, write your new css wrapper there
    
  2. go to ZMI 'portal_contentpanels', in the properties view, add your new
wrapper there.
      
Credits
    
  * "ZopeChina.com":http://www.zopechina.com, a leading Zope Service provider
   in China. ZopeChina.com runs the biggest Chinese Zope community in China -
   "CZUG.org":http://czug.org (China Zope User Group). We are trying to make
   Zope/Plone works better for Chinese people.
      
  * ausum's "CMFPortlets":http://www.zope.org/Members/ausum/CMFPortlets , many
   idea comes from CMFPortlets. Thanks!

Bug report and feature request

  CMFContentPanels is in
"Collective":http://sourceforge.net/projects/collective now. you can report
bugs and request new feature there.
