Hello,
My site has many Zope pages templates, Zope folders and also Plone pages, Plone folders.
This create problems for the navigation menu and also for translation but I can't rewrite all the site now.
The query_string is used to pass parameters to Zope pages :
http://myssite/teams?id=14&tab=membersMy problem is that Plone Language Tool and LinguaPlone "loose" the query_string parameters when switching language.
I found the following workarounds though it could get me into troubles but I am really bothered by the query_string parameters lost.
1. Plone Language Tool
I customized switchLanguage.py in the ZMI
replaced :
qst="?"
for k, v in query.items():
by :
qst="?"
reqreferer = REQUEST['HTTP_REFERER'].split('?')
if len(reqreferer) > 1:
for p in reqreferer[-1].split("&"):
if (p.find('set_language') == -1) and (p.find('cl=') == -1):
qst += p + "&"
for k, v in query.items():
2. LinguaPlone
I modified LinguaPlone/browser/selector.py
replaced :
try:
data['url'] = state.view_url() + '?set_language=' + data['code']
except AttributeError:
by :
try:
# Rebuild query_string
qst = ""
if self.request is not None and self.request.form is not None:
form = self.request.form
for k,v in form.items():
if k != "-C" and k != "set_language": # Empty forms
qst += "&%s=%s" % (k,v)
elif self.request is not None and self.request['HTTP_REFERER'] is not None:
reqreferer = self.request['HTTP_REFERER'].split('?')
if len(reqreferer) > 1:
for p in reqreferer[-1].split("&"):
if (p.find('set_language') == -1) and (p.find('cl=') == -1):
qst += "&" + p
data['url'] = state.view_url() + '?set_language=' + data['code'] + qst
except AttributeError:
Regards