Neil Schemenauer wrote:
>
> On Tue, Nov 13, 2001 at 03:50:11AM -0600, Jeff Rush wrote:
> > * Quixote doesn't seem to put in BASE_URL directives in generated
> > html output, making it a bit clumsy to construct relative URLs.
>
> How does having BASE_URL in the _output_ help you? Sorry, I don't know
> beans about Zope so you have to explain this one.
With Quixote targeting near Zope, I'm surprised you're not well-versed
in Zope and therein the frustration that led to the creation of Quixote.
Know that which you're trying to improve on and all... ;-)
Anyway, I mispoke. The 'magic' item that Zope inserts automatically is:
to tell the browser the base URL to which relative URLs apply.
You can read more about it here:
http://www.w3.org/TR/html4/struct/links.html#idx-base_URI
Fitting into the no-magic principle of Quixote, I guess each designer
will need to add it to their standard_html_header.ptl. I'm just
surprised no one has missed it so far.
> > * I'm looking for the equivalent of url_quote and html_quote to
> > wrap strings in python-generated output.
>
> Look in the quixote.html module.
Found, thanks!
> > * not sure of correct way to handle URLs with '.' in them,
> > as in programmatically generated .gif responses. Looks like
> > it requires _q_name() ?
>
> We never ran into this problem. I guess _q_name would be the solution.
> Do you need to have a dot? Couldn't you just set the content-type
> appropriately?
Yeah, I guess _q_name is it. The need is that weblog analyzers, such
as webalizer (and a few search engines) rely upon the extension to
classify the datatype and keep stats on graphics vs html requests.
In the case of the weblog, the content-type is not present.
> > * I miss a whole set of URL path manipulation functions, although
> > I think I can get by with os.path.XXX in most cases. Mostly
> > I just need a 'parent' or 'container' request attribute.
>
> We use request.get_path() and request.get_path(n) frequently to build
> URLs. For example, to make a URL to the parent container:
>
> request.get_path(1) + "/"
I think there is a bug here someplace. The http_request.get_path()
constructs the path from:
path = "%(SCRIPT_NAME)s%(PATH_INFO)s" % self.environ
but, via request.dump(), I see a SCRIPT_NAME of "/q/" and a PATH_INFO
of "", making a path of "/q/". The URL I invoked was:
http://vault.timecastle.net/cgi-bin/windmill/
where windmill is the CGI that invokes Quixote. I have no idea where
the "/q/" came from. Is that Quixote's shortname for "_q_index"?
I expected get_path() to return basically REQUEST_URI:
/cgi-bin/windmill/
so that I could build relative URLs from it to my other pages:
request.get_path(1) + "/menu" --> /cgi-bin/windmill/menu
but I get --> /q/menu
Environment:
DOCUMENT_ROOT /var/www/html
GATEWAY_INTERFACE CGI/1.1
HTTP_ACCEPT image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
HTTP_ACCEPT_CHARSET iso-8859-1,*,utf-8
HTTP_ACCEPT_ENCODING gzip
HTTP_ACCEPT_LANGUAGE en
HTTP_CGI_AUTHORIZATION
HTTP_CONNECTION Keep-Alive
HTTP_COOKIE dtpref_rows="20"; dtpref_cols="90"
HTTP_HOST vault.timecastle.net
HTTP_PRAGMA no-cache
HTTP_USER_AGENT Mozilla/4.76 [en] (X11; U; Linux 2.4.3-12tau i686)
PATH /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
PATH_INFO
PATH_TRANSLATED /var/www/cgi-bin/Zope/
QUERY_STRING
REMOTE_ADDR 192.168.200.250
REMOTE_PORT 56141
REQUEST_METHOD GET
REQUEST_URI /cgi-bin/windmill/
SCRIPT_FILENAME /var/www/cgi-bin/windmill
SCRIPT_NAME /q/
SCRIPT_URI http://vault.timecastle.net/cgi-bin/windmill/
SCRIPT_URL /cgi-bin/windmill/
SERVER_ADDR 192.168.200.250
SERVER_ADMIN sysadmin@taupro.com
SERVER_NAME vault.timecastle.net
SERVER_PORT 80
SERVER_PROTOCOL HTTP/1.0
SERVER_SIGNATURE Apache/1.3.19 Server at vault.timecastle.net
Port 80
-Jeff Rush