This response is probably much more info than you need, sorry for
blabbering on, but thought some background might help...

In version 2.2.1, we introduced Spaces, the Space and PageNavigators, and
the new JetUI framework. One of the differences between the old layout
approach, and the new spaces/navigator approach, is navigations. With the
old layout approach, menus, and navigations are all provided via the
SiteManager, which in turn filters your view of the site navigations using
the Jetspeed Profile. So in layouts, you will often see macros like
#PageMenu (shown below) using the $site context variable. All the
navigational menus are preprocessed by the SiteManager, and Profiler,
before returning their result. With 2.2.1, and the introduction of Space
navigation, spaces bypassed the Site Manager and went directly to  the
PageManager API, retrieving folders underneath spaces. The idea was to
simplify the entire view of the portal. So... if you want to use spaces,
you usually configure your portal, during the initial custom build of your
portal, to use the Jetui pipeline

mvn jetspeed:mvn -Dtarget=ui

or

mvn jetspeed:mvn -Dtarget=min-ui


where as, if you were to create a project based on the original layouts,
you would do:

mvn jetspeed:mvn -Dtarget=demo

or

mvn jetspeed:mvn -Dtarget=min


What Im getting at here is the old layouts don't make the spaces model
available to you. In fact, they use completely different folder roots as
you can see here
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there
are actually 4 folder trees, 2 for jetui, 2 for original site manager

So if you want to use Spaces without the Jetui build, and with old layouts,
Its  definitely possible, but would take some extension work. You would
need to make the Space manager available to your decorators as a velocity
context variable ...

Note that the Jetui pipeline, which supports spaces, only makes use of the
decorator CSS, not the actual vm code for decorators. One of the
motivations behind Jetui was to simplify Jetspeed - and use simple portlets
for layout and decorator code without introducing extra technologies like
learning about Jetpseed layouts and decorators


#macro(PagesMenu)
#set($_pages = $site.getMenu("pages").elements)
<div id="pages-menu" class="menu">#foreach($_page in $_pages)
#if($_page.isSelected($site))
    #set($_cssClass = "link page-link selected")
#else
    #set($_cssClass = "link page-link")
#end
<a href="portal${_page.url}" class="$!{_cssClass}"
title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span
class="separator"></span>#end
</div>
#end



On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <jir...@gmail.com> wrote:

> Hi David,
>
>
> I had found the Jetspeed API docs and (think I) understand how to use
> them. The examples are quite useful. Thanks for those!
>
> The challenge I have is that I'm trying to put my own responsive ui in
> front of Jetspeed. Because of that I would actually prefer a velocity-based
> approach to work them into my header container. I have not yet discovered
> how to access and use spaces and page manager from velocity though. If you
> could share such an example, that would be really helpful!
>
>
> Kind regards,
>
>
> Jiri
>
> On 10 Jul 2013, at 17:51, David Taylor <davidseantay...@gmail.com> wrote:
>
> > There are Javadocs online for all the Jetspeed API:
> >
> > Spaces:
> >
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
> > Page Manager (folders):
> >
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
> >
> > There are examples of using these APIs in the J2-Admin application. For
> > example, the Spaces Manager is actually a portlet, not a layout:
> >
> >
> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
> >
> > Portlet Applications can make use of Jetspeed API services by declaring
> the
> > services they want to use in the jetspeed-portlet.xml deployment
> descriptor
> >
> > <js:services>
> >    <js:service name='PageManager' />
> >    <js:service name='SpacesService' />
> >
> > Then, in your portlet's init method, the portlet context provides access
> to
> > all of your declared services:
> > (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in j2-admin
> > app):
> >
> >    public void init(PortletConfig config) throws PortletException
> >    {
> >        super.init(config);
> >        PortletContext context = getPortletContext();
> >        spacesService = (Spaces)
> > context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
> >
> > This is how the Space Manager was implemented in  Jetspeed 2.2.1. If you
> > are more interested in developing your header with velocity templates and
> > layouts, let me know, I can give examples of that approach too
> >
> >
> >
> >
> >
> >
> >
> >
> > On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <jir...@gmail.com>
> wrote:
> >
> >> Hi,
> >>
> >>
> >> I'm developing my own header and footer for a Jetspeed-based
> application.
> >> I've found the API calls to list the pages for a particular view, but I
> >> can't find how to list the available folders and links (spaces).
> >>
> >> Could someone please point me in the right direction?
> >>
> >>
> >> Thanks!
> >>
> >>
> >> Jiri
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: jetspeed-user-unsubscr...@portals.apache.org
> >> For additional commands, e-mail: jetspeed-user-h...@portals.apache.org
> >>
> >>
> >
> >
> > --
> > David
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-user-unsubscr...@portals.apache.org
> For additional commands, e-mail: jetspeed-user-h...@portals.apache.org
>
>


-- 
David

Reply via email to