You have several way to tackle this depending on how transparent
you want this to be and what kind of customization features you
need:

- Easiest way:
  Rewrite a PortalTopolkit implementation and overload the 
  getSet(...) method to create your PortletSet dynamically.
  Since you only have access to the PSML Portlets object 
  in these methods you'll want to either extend the PSML
  markup to code your cloning policy or use "system" parameters
  for this purpose, ie parameters that start with "_", they
  won't show up in the customizer.
- A bit more complex:
  In addition to the PortalToolkit implementation that you'll 
  have to override in any case, you can also develop a new
  DynamicPortletSet implementation of the PortletSet which
  would responsible for the actual cloning process or even
  would not hold a vector of Portlets as the default version
  but would query a DB to generate it on the fly.
  The main advantage of doing this is that you'll have access to
  the Rundata context and thus your query may use context information.
- Alternate:
  Instead of your custom PortletSet implementation, you can write 
  a custom PortletController that would use a "static" PortletSet with
  cloning information to dynamically layout multiple cloned portlets.
  The greatest advantage of this approach over the previous one is that
  it's the controller responsability to build the page customization 
  template, and thus you have full control on how you want to customize
  your page.

Finally if you plan to dynamically react to user context, I'd recommend
extending the BaseProfile and Profiler service to store your profiling
information in the BaseProfile object based on User request + possible
db connections.
You'll be able to reuse your profile information when ever you have access
to RunData and it guarantees separation of your profiling logic and the
way you build this profiling information.

De : Eric White [mailto:[EMAIL PROTECTED]]
> 
> I'd like to define a single portlet then, upon startup, dynamically
> populate a pane with several instances of the aforementioned portlet,
> each driven with different configuration data (most likely 
> driven from a
> database).
> 
> Can anybody point me to reference material (or, better yet, example
> code) for how to do this?
> 
> thanks
> 
> eric
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to