Re: handling URLs for multiple sites in single bluebream instance

Joshua Immanuel <[email protected]>
Newsgroups gmane.comp.web.zope.bluebream,gmane.comp.web.zope.devel
Organization HiPro IT Solutions Private Limited
Message-ID <1308418856.2439.50.camel@jimman>
Hello all,

On Fri, 2011-06-17 at 21:59 +0530, Joshua Immanuel wrote:
> Ok, let me give an use-case. Say, I have a base page layout template
> for the inner sites like "http://localhost:xxxx/site1" which has many
> application related menu links on the top and left hand side of the
> page with center space for contents. All these links are of the format
> "/container1/...". When I use virtual hosting to '/site1' I have no
> problem, all the links will be a valid one, as it will be prefixed by
> "http://localhost:xxxx/site1"
> 
> But, If I don't use virtual hosting and I expose
> "http://localhost:xxxx/" URL to the user to create new sites. The
> links in base page layout template for the inner sites will be an
> invalid one as it will be pointing to
> "http://localhost:xxxx/container1/.." instead
> of "http://localhost:xxxx/site1/container1/.."
> 
> I am trying to figure out how to prefix the links in the base page
> layout template with site names based on which site they belong. So
> that the links in the base page layout template of 'site1' would be of
> the format '/site1/container1/.." and the links in base page layout
> template of 'site2' would be of the format '/site2/container1/.." etc.
> 
> I guess the solution to this (without virtual hosting) would be: when
> I render the base page layout template for
> "http://localhost:xxxx/site1" get the 'site1' part from the request
> URL and prefix all the related menu links with them. Is there any
> other better solution?
> 
> But, If I use this base page layout template as a macro (just to fill
> its center content with an add form say) still the menu links has to
> be a valid one. How to handle this? 

I used the following code in the base page layout template to get the
site name from the URL 

<body tal:define="
	rootURL request/getApplicationURL;
	fullURL request/getURL;
	effURL python: fullURL[len(rootURL)+1:].split('/');">

  <span tal:condition="python: len(effURL) > 1">
    <span tal:define="global urlPrefix python: effURL[0]"
  	  tal:replace="nothing"/>
  </span>

  <span tal:condition="python: len(effURL) <= 1">
    <span tal:define="global urlPrefix python: ''"
  	  tal:replace="nothing"/>
  </span>
  ...
</body>

I prefix all my menu links with the 'urlPrefix' variable. I guess this
is not the best solution but it solves my problem.

Thanks

-- 
Joshua Immanuel
HiPro IT Solutions Private Limited
http://hipro.co.in
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEABECAAYFAk384yIACgkQWw85XwuSFMIJxACfZlhp62HHPiLfdFzC8HzUw3fx
EWIAn2ePUbMYx86ToC3s3eLjnSgFbRn1
=XrSy
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.