Steve Alexander wrote:
>   def __getitem__/__getattr__ from
>         """Get a variable value
>         Return a value for the required variable name.
>         The value will be looked up from one of the request data
>         categories. The search order is environment variables,
>         other variables, form data, and then cookies.

Doesn't mention URL parameters on there, does it ;-)
I wonder where they figure in?

> The code certainly doesn't stick exactly to its docstring. The "other"
> dictionary is seached first, then URLx where x is a number.
> Then "environ" is searched, but *only* if the key begins with 'HTTP_' or
> is in the following list:

This looks really messy. I bet it tallies up with what's in the Zope
DTML Reference near the REQUEST description in more ways than with the

Shane wrote:
> I think the issue is that environ may include the Zope process
> environment variables, such as PATH, LD_LIBRARY_PATH, CVSROOT, USER,
> etc.  Publish.publish_module() appears to pass in os.environ .  That's
> just a quick analysis, though.

Hurm, there's still the order issue. And that fact that they're visible
if you do <dtml-var REQUEST>.

Wow, should this go in or the Collector (phrased for
collector, but that can change):

The handling of variable in REQUEST is a bit messy. The following should
all behave the same, in terms of the order variables are searched and
what variables are included:

- <dtml-var REQUEST>

- __getitem__ in

- variables that appear in the DTML/other type of method namespace

Should the patch to below be included into Zope?

         """ #"
 +       environ=self.environ
 +       if environ.has_key(key) and (not hide_key(key)):
 +           return environ[key]
         if other.has_key(key):
             if key=='REQUEST': return self
             return other[key]

        if key[:1]=='U' and URLmatch(key) >= 0:
            path = self._script + self._steps
            n = len(path) - atoi(key[3:])
            if n < 0:
                raise KeyError, key
            URL=join([other['SERVER_URL']] + path[:n], '/')
            self._urls = self._urls + (key,)
            return URL

-       if isCGI_NAME(key) or key[:5] == 'HTTP_':
-           environ=self.environ
-           if environ.has_key(key) and (not hide_key(key)):
-               return environ[key]
-           return ''

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to