From: <no...@so...> - 2002-11-11 17:39:04
|
Bugs item #636699, was opened at 2002-11-11 09:39 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104866&aid=636699&group_id=4866 Category: WebKit Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: includeURL and paths Initial Comment: I've found the following bug (or maybe its a feature) using includeURL: Suppose we have a directory structure as follows: /bla/mycontext /pageTemplates /application1 /application2 and inside pageTemplates we have a BasePage subclassed from Page. This is the page from which pages are subclassed in application1 and application2 at 'root level' in mycontext we have components that are used from BasePage like footer.psp, header.html, as well as a stylesheet file. All of this components are included using includeURL at the proper methods. Everything works fine when using a page (subclassed from BasePage) at mycontext level. the problem here is that the call includeURL('header.html') when we are in a page from the directory application1 will actually look for 'header.html' inside application1, and if we use includeURL('/header.html') will not have the disired effect of including the file from mycontext. If its a feature, we do not know how to get that effect, since we do not want to duplicate our files in every directory of application# We have temporarly fixed the problem with the following change to includeURL inside Application.py: def includeURL(self, trans, URL): req = trans.request() #Save the things we're gonna change. currentPath=req.urlPath() currentServlet=trans._servlet urlPath = req.urlPath() # ***************************** IMPORTANT ******************************** # the following condition was changed to 'accept' an absolute path # defined within the URL, that is: '/servlet' will NOT be looked # in the relative parent directory # # LCJ --- Oct 17th 2002 # # original code: get rid of the first if condition and leave the else code # unconditioned if (URL.startswith('/')): urlPath = URL else: if urlPath=='': urlPath = '/' + URL elif urlPath[-1]=='/': urlPath = urlPath + URL else: lastSlash = string.rfind(urlPath, '/') urlPath = urlPath[:lastSlash+1] + URL # ******************************************************* ***************** req.setURLPath(urlPath) req.addParent(currentServlet) #Get the new servlet self.createServletInTransaction(trans) #call the servlet, but not session, it's already alive trans.servlet().awake(trans) trans.servlet().respond(trans) trans.servlet().sleep(trans) self.returnInstance(trans,trans.request ().serverSidePath()) #replace things like they were #trans.request()._serverSidePath=currentPath req.setURLPath(currentPath) req.popParent() trans._servlet=currentServlet ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104866&aid=636699&group_id=4866 |