[Yanel-dev] Switching the layout/design of the from scratch realm
Michael Wechner
michael.wechner at wyona.com
Fri Jun 5 16:43:37 CEST 2009
Prabodh Upreti schrieb:
> Hi Michael
>
> Thank you for the input. I was doing just that in my original
> Resource where I was modifying the getNode method to get the
> querystring and set the session object etc. This worked fine. Then I
> say reference to /app/images/... within the global.xsl. I wanted the
> ability to change that to /app{$xslt-version}/images/...
>
you mean within the XSLT itself, right?
> To provide this capibility I need to handle the transformation where I
> can pass that as a parameter.
>
I would suggest just to use relative paths inside the XSLT, for example
images/foo.gif
for the moment, instead
{$yanel.back2realm}/app{$xslt-version}/images/...
which is btw also a relative path, because $yanel.back2realm will be
relative.
This is very important in case one is settting up Yanel behind a reverse
proxy (for example using Apache mod_proxy), where
we don't know how the reverse proxy prefix will be set.
> I believe with the NodeResource the YanelServelet does the
> transformation based the stream from the NodeResource.
>
> Once again, I hope I am not making it more complicated than it really is.
>
no, but I would suggest a simple version is sufficient at the moment and
we can still improve it later on ;-)
Cheers
Michael
> Thank you.
>
> Regards
>
> Prabodh
>
> --- On *Fri, 6/5/09, Michael Wechner /<michael.wechner at wyona.com>/* wrote:
>
>
> From: Michael Wechner <michael.wechner at wyona.com>
> Subject: Re: [Yanel-dev] Switching the layout/design of the from
> scratch realm
> To: yanel-development at wyona.com
> Date: Friday, June 5, 2009, 5:13 AM
>
> Prabodh Upreti schrieb:
> > Hi Michael
> > I think I am close to getting this done.
> > I created a new resource to handle the session setting and also
> changing the path based on the querystring. For my first step I
> to created this Resource similar to the file "NodeResource" to
> make sure that it worked as I had expected. It was working fine.
> >
>
> great :-)
> > I understand this does not handle passing the param to the xsl
> to build the correct path. I then started creating a Resource
> similar to the BasicXMLResource so that I can set the parameter
> xslt-version for the transformer. I will then change the
> global.xsl to reflect the new passed variable to it resolves to
> the correct path.
> >
>
> I don' t think you need to build this on the BasicXMLResource, but
> rather keep extending the NodeResource by overwriting the
> getNode() method.
>
> Inside the getNode() method the method
> getResourceConfigProperty("src") is called which is getting the
> path from
>
> src/realms/from-scratch-realm-template/res-configs/my-global.xsl.yanel-rc
>
> <yanel:property name="src" value="/app/xslt/global.xsl"/>
>
>
> So I would suggest to introduce a new method called
>
> getNode(String layoutVersion) which shall replace the getNode()
> method and also a new resource type property for this new
> resource, for example
>
> <yanel:property name="default-layout-version" value="2"/>
> <yanel:property name="src"
> value="/appTEMPLATE_VERSION/xslt/global.xsl"/>
>
>
> and the template version can be retrieved from the query string
> inside the resource by
>
> String layoutVersion = getRequest().getParameter("layout-version");
> if (layoutVersion != null) {
> getRequest().getSession().setAttribute("layout-version",
> layoutVersion)
> } else {
> if (getRequest().getSession().getAttribute("layout-version")) {
> layoutVersion =
> getRequest().getSession().getAttribute("layout-version");
> } else {
> layoutVersion =
> getResourceConfigProperty("default-layout-version")
> }
> }
>
>
> HTH
>
> Michael
>
>
> > I just want to make sure I am on the right track. Please let
> me know if anything I am doing here is not correct. Thank you in
> advance.
> > Regards
> > Prabodh
> > --- On *Wed, 6/3/09, Michael Wechner
> /<michael.wechner at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>/*
> wrote:
> >
> >
> > From: Michael Wechner <michael.wechner at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>
> > Subject: Re: [Yanel-dev] Switching the layout/design of the from
> > scratch realm
> > To: yanel-development at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
> > Date: Wednesday, June 3, 2009, 3:09 AM
> >
> > Hi Prabodh
> >
> > Prabodh Upreti schrieb:
> > >
> > > > Hi Everyone
> > >
> > > > I was tracing through the code to understand how
> things were
> > working. I see that YanelServlet is calling
> SourceResolver-à ResourceResolver--à ResourceManager which in
> turn is loads
> > map.rc-map file.
> > >
> >
> >
> > each realm can have such a file, whereas it is optional,
> whereas a
> > warning is logged nevertheless if a realm does not have one
> >
> > > > I understand that one based on map.rc-map setting
> all *.html
> > calls are being targeted to generic-xhtml-page_yanel-rc.xml
> setting.
> > >
> >
> > this is what's happening in the "from scratch realm". The
> general
> > chain of responsibility is as follows:
> >
> > URL: http://127.0.0.1:8080/yanel/REALM_ID/foo/bar.html
> >
> > and then Yanel will first check if a 1-to-1 mapping exists
> >
> > SRC: REALM_HOME_DIR/res-configs/foo/bar.html.yanel-rc
> >
> > and if such a 1-to-1 does not exist, then it will check for
> > matching patterns within
> >
> > SRC: REALM_HOME_DIR/res-confgis/map.rc-map
> >
> > and if no pattern exists, then Yanel will use by default the
> > "file" (aka "node") resource type
> >
> > > Based on the previous setting global.xsl was being called to
> > translate the template.
> > > > With the new changes Michael made I understand
> global.xsl needs
> > to be picked up from app or app2. A variable needs to be set on
> > the Session based on the previous settings.
> > >
> > > > Listed below are my questions:
> > >
> > > > 1. I can create a resource to perform the above
> task. Does that
> > > mean I can remove the rti “xml” currently set in
> > > generic-xhtml-page_yanel-rc.xm and add my new resource?
> > >
> >
> > no, you should replace the rti "file" within
> >
> >
> src/realms/from-scratch-realm-template/res-configs/my-global.xsl.yanel-rc
> >
> > by your own resource, because this is where the actual switch of
> > the XSLT is happening
> >
> >
> > > 1. This resource will check the
> yanelresource:/my-global.xsl find
> > > my-global.xsl then the right template. I understand
> most of
> > > this logic is in YanelServlet at present. Should I
> take that
> > > code from there and add it to the new resource and
> everything
> > > should work as usual? Servlet will automatically pickup
> > the new
> > > resource and let me perform the rest of the task.
> > >
> > > 2. Why not pass a value via the querystring so that developer
> > do not need to go and modify my-global.xsl file to find the
> > template. That way they could have 5-6 templates and they can
> > quickly test them without modifying the my-global.xsl file.
> > >
> >
> > that's exactly what your resource should be doing. For
> example the
> > query string could be something like
> >
> > /foo/bar.html?xslt-version=2
> >
> > which your resource would read from the request (if set) and
> then
> > set it within the session, such that you don't always have to
> > attach it to all following URLs. And then your resource
> would for
> > example build the location dynamically
> >
> > /app{$xslt-version}/xslt/globals.xsl
> >
> > instead reading it statically from within
> >
> >
> src/realms/from-scratch-realm-template/res-configs/my-global.xsl.yanel-rc
> >
> > as the "file" resource type does. (or something similar along
> > these lines)
> > >
> > > It may not be as simple as I am thinking so pls free to point
> > out the flaw with this process
> > >
> > > > Could you please let me know if I am in the right track?
> > >
> >
> > I think you are very much on the right track, except which
> > resource type to replace (as described above)
> >
> > Hope my comments help, otherwise please ask again.
> >
> > Cheers
> >
> > Michael
> > >
> > > Thank you in advance.
> > >
> > > > Regards
> > >
> > > Prabodh
> > >
> > > --- On *Fri, 5/29/09, Michael Wechner
> > /<michael.wechner at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
> >
> <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>/*
> > wrote:
> > >
> > >
> > > From: Michael Wechner <michael.wechner at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
> >
> <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>
> > > Subject: [Yanel-dev] Switching the layout/design of
> the from
> > > scratch realm
> > > To: yanel-development at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
> >
> <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
> > > Date: Friday, May 29, 2009, 5:07 AM
> > >
> > > Hi
> > >
> > > We have made some progress re switching the
> layout/design of the
> > > from scratch realm dynamically.
> > >
> > > Please update your local SVN version and take a look
> at the
> > notes at
> > >
> > > svn ci -m "note about switching the layout added"
> data-repo/data/de/index.html data-repo/data/en/index.html
> > > Sende data-repo/data/de/index.html
> > > Sende data-repo/data/en/index.html
> > > Übertrage Daten ..
> > > Revision 43093 übertragen.
> > >
> > > or rather
> > >
> > >
> http://127.0.0.1:8080/yanel/from-scratch-realm/en/index.html
> > >
> http://127.0.0.1:8080/yanel/from-scratch-realm/de/index.html
> > >
> > > The TODOs are actually create another layout within the
> > > data-repo/data/app2 folder and create a resource
> > > which is switching between the various folders app1
> and app2 as
> > > noted within
> > >
> > > res-configs/my-global.xsl.yanel-rc
> > >
> > > (instead of using the static file resource)
> > >
> > > Cheers
> > >
> > > Michael
> > > -- Yanel-development mailing list
> > Yanel-development at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
> >
> <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
> > >
> <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
> > >
> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
> > >
> > >
> >
> > -- Yanel-development mailing list
> Yanel-development at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
> >
> <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
> >
> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
> >
> >
>
> -- Yanel-development mailing list Yanel-development at wyona.com
> <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>
>
More information about the Yanel-development
mailing list