You are not logged in Log in Join
You are here: Home » Members » Ausum. Zope development in Peru » CMFPortlets 0.5.2: Portlets for the CMF get interactive » Docs » readme_052 » View Document

Log in
Name

Password

 

readme_052

Go the main CMFPortlets page

Congratulations!

You've installed CMFPortlets 0.5.2 and its sample portlets successfully. Before to continue you should read about the known issues:

Know Issues:

  • Interactive Layout works in Internet Explorer 5.5+, Netscape 4.79+ and Mozilla 1.0+. Opera is not supported.
  • Loading of Dynapi library could take a while, the first time you use it.
  • Interactive Layout's "Change" button sometimes needs to be clicked twice, in Internet Explorer. If you're using a slow computer expect a delay before you can see any response. Also, a cursor hand will be displayed only in IE. The others will display a text cursor when mouseover a portlet rectangle.
  • RSS portlet "Content Management" sometimes may appear empty, although you have updated the feed successfully. Reloading the page should fix the problem.
  • Portlet titles changed using the ZMI aren't reflected at the "Add a section box" pull-down menus. You need to update the catalog or change those titles from the portal interface.
  • Issues may come up to Interactive Layout after you've deleted or renamed portlets. To avoid any problem, remove all erroneus ones from your current workspace before launching it.
  • Adding property types other than 'string', 'int' and 'boolean' to the user-defined properties set (within the 'Public' tab of any portlet management interface), could cause problems, as they weren't considered for these sample portlets. Sample portlets will be better explained in a future how-to.

How to create portlets:

End User:

1. Go to your home folder and create a 'Portlet' object. Inside that folder you're allowed to create two other portal types: 'Portlet Document' and 'Portlet Topic'. Create a portlet document or a portlet topic as you would create regular types and then save it.

2. Click on the MyPage link at the user actions box. The default page appears to have two empty columns. Click at the pull-down menu "Add a section box", and you'll find your recently created object as an option. Select it, then a box skin if you want it, and then on "Add". Your document will appear rendered within a box, and is also a candidate to become public, via the portal workflow.

Managers:

1. The same as 1 and 2. In adition, managers can create and place methods within portlets via the ZMI, as they are made out of standard skinned folders. This is the way to serve incoming and any other inbound content that you may want to display with a special look and feel. In fact this is the way how these samples were created.

FAQ:

It looks like the sample portlets aren't available for me, although they were imported sucessfully during the installation.

If you're not logged as a manager, the portlets won't be available for you if they were imported as 'private', due to your security settings. Check their workflow states and change them to 'published'.

Can I use other Zope products as portlets?

As long as those products are callable and you can handle its output, yes. You need to handle the output to do things like removing <html> or <body> tags that you won't use inside a portlet. This drive us to prefer DTML and PythonScripts over ZPTs, when writing custom portlets.

Why do you use DTML and PythonScripts, and not ZPT?

DTML is a powerful language with a downside. That downside is that you can't work easily with it in a WYSIWYG environment, and that it mixes logic with content, thus sometimes making the code writing process a real mess. Anyway those problems get sustantially reduced the moment you split the layout into smaller page areas or fragments, which is what happens when you write portlets. Look at the sample portlets' code. It's easy to review and also you may feel tempted to add more features and behaviours to them. On the other hand, although ZPTs do make it easier to write a template and incorporate logic using scripts, the slots reusability is hard to manage, as long you must have a previous understanding of all the macros and slots infrastructure of your site. You can't see these latter in Dreamweaver, the same as you do can see portlets in a workspace using just your browser. Moreover, for most complex layouts with lots of logic in-between, chances are that page templates look as awful as DTML ones look when they are both opened in DW. For these same reasons CMFPagelets will use this portlets paradigm, to help to create fast CMF skins (fast in performance and deployment.)

Why is the tabs bar so rudimentary? Can it be customized?

Not only the tabs bar is simple, but also no special design has been used for the bundled box skins, not even a CSS class was provided. The intention is that you create your own. Anyway, you may find that that's a somehow hard work to do, so I'll try to include a tabs customizer in the next release.

Why don't some sample portlets provide user-level settings? How can I update the feed in ContentManagement, for instance?

User-level settings are easy to create, when you have access to the portlet's management interface. Look for the tab 'Public', add the properties that you want your users to personalize, and provide a default value for them. (Currently only the types 'string', 'int', and 'boolean' are supported.). Try this with the portlets that don't provide any user-level settings. Please take into account that these features are experimental, and subject to change according to future industry standards, your client's specific needs, and/or better portlet management practices.

The ContentManagement portlet is just an example of what you can do regarding the external feeds subject. Managers do can perform efective changes like modify the number of items displayed, to bind all of the existing RDFSummary objects to a Xron automatic updater, or simply use another product to handle the whole task. Now, if you look for a special RSS portlet type that you can add as many times as you want, and that allow your users to freely change the RSS url , you'll find that a minor hack to CMFPortlets will do the job.

How do the columns widths work? Isn't CMFPortlets overly focused on tables?

Actually, no. There's a proven practice regarding the use of tables for the handling of columns-in-page and CMFPortlets just uses it, allowing you to focus on the content inside them instead of worrying about the sometimes stuborn columns widths behaviour across different platforms. In example, if you want to customize the widths of the classical 3 columns page (at 100% the width of the window), all you need is to give the right and left columns a width in pixels, and leave the width of the middle one at 0 or assign to it a 99% value. (Transparent gif spacers will ensure that the right and left columns widths will be respected.)

Although the provided box skins are also based on tables, you are encouraged to try your own, where you could choose stylesheets to provide the portlets' graphical containers.

How can I create box skins? Can I just use CSS?

Look for the the skin portlets_Boxbuilder. You must perform the changes there until there's a dedicated UI and storage for the task..

Of course you can use stylesheets. If you're a CSS fan, go for it. My recommendation is that you need to make sure that your stylesheet affects only the piece of content you are creating, because if not your portlet will disturb the whole page appearance. This drives us to the plugable stylesheets concept that was already mentioned in the main CMFPortlets web page, but it currently isn't a priority. For the time being, you, as a site developer, must ensure that all available portlets' styles live together in peace, by creating them yourself and/or by restrincting your users to create portlets with elements styles. If you are an experienced CSS user and you have the time, please contact me and we'll try to work this issue out.

Will CMFPortlets support Plone?

In short, yes. After its release 1.0.
Although in my opinion, regarding corporate-level content management, the framework is way more important than any finished out-of-the-box product, I do feel like I must provide an installer for Plone in order to expect that its community keep releasing products for both CMFDefault (the CMF minimal sample) and Plone.

What is the roadmap for CMFPortlets?

In the short term, to keep adding more features, focusing on web services this time, and also to turn the skins into a portal tool. CMFPortlets is currently built without any hard wire, to demonstrate the CMF framework's nice and powerful already existing capabilities, which is in my opinion the key for its deserved success. Releases up to version 0.9.0 won't be backwards compatible.

If you've tried the samples, you might have noted that there are a lot of things that could still be customizable. A portlet could have different levels of properties based on roles, and that set of properties can act either on the portlet itself as a function of the session context, or of the way it gets graphically displayed when embeded in a particular workspace. A portlet also should be easily shareable to outside (outbound syndication, already manageable by means of exisitng portal syndication tool); a workspace should be able to retrieve external portlets transparently. A session should be kept even when a user navigates through portlets at different sites... the list is endless; and I guess that's why the guys dealing with the JSR 168 Portlet API will release the first publicly available portlets standard draft yet on March - according to one of its committee members- after more than a year of silent work (mandatory silence, I must add).

The CMFPagelets project is still in brainstorm stage, but if you look closely at CMFportlets, you'll see that a great part of the job is already there. I like to think of the latter as CMFPagelets for portlets. :)

I thought I'd find the folder-contents-display portlet seen at the tour.

It wasn't meant to be released, as it's an in-house custom development . Generally speaking, I encourage you to write your own portlets according to your client's portal requirements. It appears at the tour to show that you can turn CMFPortlets into a productivity catalizer too, and that it's up to you to make it more than a gadget for playing around with boxes. This is a part of what industry specialists use to call as "workplace productivity tools" and nowadays it all has to see with personalization features. A summary of a last year research:

Workplace Performance and Innovation: Revisiting User-Centric Productivity.
To promote higher levels of workplace performance and innovation, business and IT decision makers should re-evaluate employee productivity strategies, and focus on the intersection of knowledge management, workforce management, facilities, and IT infrastructure services, exploiting synergies that enable higher levels of workplace performance and innovation.
[Link]

Personalization is regaining its moment alongside this great hype about web services, and the target moment is somewhere in 2005 or 2006, in researchers words.

If you find a new issue that should be added to this FAQ, or if you feel like you want to join the CMFPagelets project, please let me know. :)

Have fun!

 

© Ausum Studio
February 5th, 2003
Lima - Peru