I have a ZCatalog object in Zope's root folder.
Its ContentView uses absolute URL's to reference its objects: e.g.
"//acl_users" rather than "/acl_users". Such URL's cause a browser
to interprete the first URL part as host. In the above case,
it looks for host "acl_users" which, of cause, does
I just found a minor bug in Zope 2.1.6's ZCatalog (distribution).
"ZCatalog.py" does not import "find".
If the "containing" field contains a value, a NameError exception
is raised.
Patch appended.
Dieter
ZCatalog.pat
The Zope 2.1.6 DateTime module does not recognize daylight saving time.
Patch attached.
Dieter
--- lib/python/DateTime/:DateTime.py Tue Mar 14 18:04:59 2000
+++ lib/python/DateTime/DateTime.py Sun May 28 18:43:28 2000
@@ -94,6 +94,8 @@
from types import
Dear Zopistas,
I think, cataloging "LocalFS" content would be nice.
I have the following problems with it:
1. "LocalFS" defines various meta types:
"Local File System", "Local Directory" and "Local File".
Only "Local File System" is a "true" meta type which
should appear in the
Kyler B. Laird writes:
I'd like to build a Z SQL method for *many*
people to use to list courses that we offer.
I don't want to require that all queries
using it understand all of the columns, but
I do want to be able to modify the query in
many ways.
This works only if I provide
Problem:
Description:
If a DTML method is accessed with "ZPublisher/Test.py",
an "Unauthorized" exception is raised in "verify_watermark".
Environment:
Zope 2.1.6, Linux 2, Intel
Analysis:
The module "BaseRequest" is imported twice: once as "BaseRequest"
and once as
ZCatalog's "manage_catalogReindex" rebuilds the indexes for currently
cataloged objects. Object which do no longer exist are removed.
However, new objects in the catalog's "search space" are not added.
This has the advantages, that
1. the catalog can be filled with several finds
2. cataloged
Kevin Dangoor writes:
I know, of cause, that a DMTL method could do this job.
However, a general method "manage_catalogRefind" might be
generally useful. It would remember the parameters for
the last find operation and reapply the find.
I like the other solutions that exist/are
Martijn Pieters writes:
On Mon, Jun 12, 2000 at 01:12:33PM -0700, Michel Pelletier wrote:
... CatalogAware successor ...
Very interesting indeed.
Is the CatalogAware mixin in the future going to move towards Tres' Observable
pattern?
After initial notification of the set of
R. David Murray writes:
I am very confused.
I'm looking at the SearchIndex source under 2.1.4 (2.1.6 seems to be
the same). In Lexicon.py the 'query' method defines the default_operator
to be 'or'. I can't see that TextIndex overrides this when it calls
it.
But the response to
Just installed zope from source on a fresh Linux-box. Defined a zope-user
and a zope-group to run Zope and everything works just fine if a run it with
the default z2.py. I want to run it on a different ip, an alias to eth0,
and on port 80. But when I change z2.py to reflect this I get an
Toby Dickenson writes:
I'm about to start looking at running Zope on python 1.6 (Im feeling
the need for better Unicode support).
Almost surely, it will work.
But it probably will not use the Unicode support automatically.
Dieter
___
Zope-Dev
Robert Roberts writes:
How do I call one external method from another external method?
You simply call it.
Here is what I mean:
The user has entered the id of valid external method in a form field.
(This is during setup of a Product and is not accessible anonymously)
At a later
Dr. Ross Lazarus writes:
Trying the new 2.2.0b3 zope.
One zclass using ty's calendar tag now breaks with an error message I
just cannot figure out -
Error Type: TypeError
Error Value: unexpected keyword argument: linkDate
File
Chris Withers writes:
Hi,
Zope currently has two ways of distributing products:
1. Tarballs containing python products
2. .zexps containing methods, ZClass products and the like.
Things are now getting bad as products are emerging (PTK, Tracker, etc)
which require both of these
Chris Withers writes:
I seem to remember Michel being a little less than happy when he saw
that code.
Quite frankly, I still don't have much confidence in (Z)Catalog (still
no docs for all the cool stuff, dodgy bugs and few responses when
they're raised...) which is a shame since
Chris Withers writes:
I'm trying to do a tree walk and copy with:
dtml-in objectValues
dtml-call "REQUEST['where'][-1].manage_addFolder(id)"
Created dtml-var id in dtml-var "REQUEST['where'][-1].id"BR
dtml-if "meta_type=='Folder'"
dtml-call "REQUEST['where'].append(this())"
RC Compaan writes:
I have a list:
mylist=[('R',31),('I',80),('A',80),('S',23),('E',35),('C',21)]
I want to rebuild the list sorted from high to low on the sequence-item.
When i call dtml-in mylist sort=sequence-item reverse the list gets
sorted on the sequence-key not the
Chris Withers writes:
I'm still debugging and writing the navtree code I've mentioned before
and I've noticed that not infrequently, when rendering a page that
causes and error, I get a half rendered page rather than a nice Zope
error page.
This is a bit waffly to put into the
Recently, several posters have reported strange "AttributeError __call__"
exceptions.
The most precise was a report by Oleg Broytmann:
/index_html DTML Document
dtml-var standard_html_header
/standard_html_headerDTML Method
dtml-with
[EMAIL PROTECTED] writes:
How hard would it be to add more of the called URL to the traceback?
... traceback ...
Great, I know that I have not put product_number in as a cookie or a hidden
value, and it could not be found by acquisition. It failed in rendering
index_html. But
Erik Enge wrote:
call, it won't redirect. So you should be able to achieve the same
results just by invoking manage_addImage without including the REQUEST
object.
But I have to pass something with the REQUEST, or else it won't add the
image, right?
I do not think so.
"manage_addImage"
Satheesh Babu writes:
I have a URL, say, /sub1/sub2. How do I check in DTML
whether
1. folder sub1 exists or not
2. If not, create it.
3. folder sub2 exists under sub1
4. If not, create it.
It is easy, if you are a bit sloppy.
* Access to "/": "PARENTS[-1]"
* Existence
Dieter Maurer writes:
Jerome Alet writes:
Thanks to you, the syntax you gave me is accepted by the dtml parser, but
both
dtml-in "ZopeFind(this(), obj_metatypes=['Folder'],
obj_expr='''not objectValues(['Folder'])''',
search_
I would find an abstract ZClass (or Meta ZClass) concept
very nice (and useful).
I would like to use it, e.g., for a general hieararchical view on relational
databases. The view allows browsing (via the tree tag) and selection
of one or more items.
Most can be implemented independantly of the
Tom Deprez writes:
The Acq_perm column doesn't exists. Assume that acquisition of a permission
is always Active. The checkboxes of the role show their actual value
(according to the acquisition). Thus if permissionA is checked in the
parent-object, permissionA is also checked. If you
Martijn Pieters writes:
Ai, NFS! There is a known no-no about using NFS for Data.fs storage, it leads
to data corruptions. Zope and NFS do not mix.
Huch, why that?
I use Data.fs (occasionally) over NFS and did not yet have had
problems.
And appending to a file should work over NFS.
Locking
Andre Schubert writes:
I'am using Zope 2.1.6 and my Data.fs is going corrupted
My Questions are: is there a way to delete the last transaction from
Data.fs,
There is a product "tranalyze" (or "tranalyzer", "tranalyse", "tranalyser")
that allows you to analyse and fix your Data.fs.
The Zope 2.1.6 ZCatalog was not bad but had a set of glitches.
The Zope 2.2.1b1 ZCatalog (CVS from 2000-8-19) is much
better but still has a set of glitches:
* UnTextIndex(349) breaks, if the lexicon lookup returns the
empty tuple -- "index out of range".
* UnTextIndex(349) only looks at
Since this afternoon, I am fighting with ZServer.
Currently, it seems Zserver is winning
I do not understand, what I see...
At work: Zope 2.1.6, Sparc Solaris 2.7, Linux Netscape 4.51
Sometimes, images are not shown by Netscape (broken image).
No "simple" reload is able to change this,
Dieter Maurer writes:
Since this afternoon, I am fighting with ZServer.
At home: Zope 2.1.6, Intel Linux 2, Linux Netscape 4.5
All images are always shown correctly.
However, there is no log entry in "var/Z2.log" for
about 50 % of the requests that ar
Troy Coburn writes:
I need page content to be generated be users that have little or no
knowledge of HTML
Any suggestions and/or comments would be very
helpful.
You may want to look at Wiki's, especially the ZWiki product.
You find it (and information about Wiki) at zope.org.
Brad Clements writes:
One thing that has been bothering me is that I can't easily test my
ZSQL Methods if they accept a date type unless I completely fill all the
date arg types.
For example, if the sqlmethod has argument type
startdate:date=''
and in the body I have
Steve Alexander writes:
When I look at the DTML Document through the web, the "self" object
passed to the breadcrumbs external method is the folder that contains
the DTML Document.
(I thought that should only be the case for DTML Methods!)
I expect, it is the folder containing the
Steve Alexander writes:
I'm hacking around with some external methods called aq_containment and
aq_context.
I just found out that I can't call them from DTML. I can call them from
the URL line of a browser just fine.
If I rename them to a_containment and a_context, they work from
Steve Alexander writes:
There's a RequestContainer instance at the top of the acquisition list,
as accessed through aq_parent or through aq_inner.aq_parent.
Previously, with recursive acquisition hacks, you could tell that you
were at the end of the trail because aq_parent returned
Shane Hathaway writes:
[EMAIL PROTECTED] wrote:
The only thing I _don't_ feel good about this kind of template
is that, in practice, we will probably lose the benefits of
things like dtml-var standard_html_header - meaning, when you
want to change the header of your site, you'll
Chris Withers writes:
A **page** is the result of applying presentation to data in the
object system. A page is a particular result of a URL when viewed
under certain conditions.
I'd like to add to this:
components used to make up 'page's should not be URL-visible. Why
Martin =?ISO-8859-1?Q?Gr=F6nemeyer?= writes:
if've had little namespace problems with this code-snipped (dtml-method):
dtml-with REQUEST
dtml-in "[1,2,3,4,5,6,7,8]"
dtml-call "REQUEST.set('row_index',_['sequence-index'])"
dtml-var "REQUEST.get('row_index')"
dtml-var
I just read the CoreSessionTracking proposal.
I am very concerned about the "long living browser id".
* Why should a browser id live longer than the
session data maintained for the browser?
This means, if the session lifetime is in the
order of an hour, the cookie need not live
Chris McDonough writes:
The random element of the token is currently five characters. I may
need to "up" this. The secure cookie requirement is already reflected
in the use cases and in the current implementation. Anybody have any
other bright ideas about how to make session tokens
Chris McDonough writes:
Dieter Maurer wrote:
... serious privacy concers about long living browser ids ...
.
This means, if the session lifetime is in the
order of an hour, the cookie need not live
longer than, say, a day.
Not if you want to associate
Hi Chris,
in an earlier message, you defended the existence of a
separate permission "Access Session Data" (in the
CoreSessionTracking proposal) by the following
case:
There may be (authenticated) users with
(TTF?) scripting rights that should be prevented
to screen
Nigel Head writes:
I'll swear that a couple of weeks back, just after I got the Flash 5 upgrade I
had this running with whatever version of Zope was extant then! Unfortunately
I've been following along with the CVS checkouts without archiving them so I
can't prove it.
CVS supports
[EMAIL PROTECTED] writes:
using LocalFS 0.95 war fine until trying to upgrade to Zope 2.2.2. Both
freshly installed, the following snippet raises the error: "Unauthorized",
"You are not authorized to access read.":
dtml-var standard_html_header
dtml-var "frei['analog.html'].read()"
Hi Skip,
Skip Montanaro writes:
I occasionally get tracebacks like
No input for required field
File /home/dolphin/skip/src/Zope/lib/python/ZPublisher/HTTPRequest.py, line
445, in processInputs
File
Robin Becker writes:
I would like to add properties in a property sheet, but cannot find a
neat way to see the properties on the base object and on the
propertySheet.
So I would like my properties to show
id
title
and the properties on my basic properties sheet.
I can
I have just thouroughly looked through the API reference
which is built in Zope 2.2.2.
I found many strange permission statements, e.g.:
* all methods of "PropertySheets" can only be used from Python
* while "PropertySheet.propertyItems" can be used with
permission "Access Contents
Jason Spisak writes:
Does anyonw know why this code won't create a folder within a folder.
It's tells me the id is already in use, so that means it's not
descending into the newly created folder to make another folder.
def create(self):
for digit in range(0, 10):
Morten W. Petersen writes:
How do I construct a method of an object, so that whenever that method
is called, the current namespace is passed with it?
This was discussed recently in the Zope-dev/Zope lists.
Chris has opened the question, Jim answered (among others).
Search the archive.
Veiko Schnabel writes:
i created a new Product calles book
with propertys writer(string), pages(int)
and a standart method called index_html to output all these
probertys
instance "my_book"
dtml-var my_book
all i get is the id of the instance my_book
Simon Michael writes:
Here are some draft howto-like things some might find helpful
(improvements welcome) :
http://zwiki.org/ZopeDebuggingRoadmap
http://zwiki.org/HowToDebugZopeInEmacs
and a burning question:
how can I invoke zserver such that I will get the interactive
The Doctor What writes:
...
Now here is my next problem.
Using context.REQUEST.PARENTS doesn't give me the DTML Document that
called me (so to speak).
I have:
/test/new/foo_html
My PARENTS shows Zope, Test, and New, but doesn't show foo_html.
"PARENTS" contain the objects
The Doctor What writes:
Using context.this().id, self.this().id, m_self.this().id all get me
the same things:
Folder, Zope, and my method. None give me the DTML Document
foo_html.
If it is indeed a DTML Document, then "this()" should reference
this document. If it is a DTML Method, then
Evan Simpson writes:
From: The Doctor What [EMAIL PROTECTED]
Using context.this().id, self.this().id, m_self.this().id
all get me
the same things:
Folder, Zope, and my method. None give me the DTML
Document
foo_html.
This would seem to be an important thing.
The only
Martin =?iso-8859-1?Q?Gr=F6nemeyer?= writes:
I've started to implement a small Product in Python.
You mean a true Product implemented in Python (subpackage in
"lib/python/Products")?
One method should be
able to access an object in a folder which isn't accessible by anonymous
but only by
Michel Pelletier writes:
Also, defining the interface seperately keep the two things apart,
impementation and interface, and doesn't allow you to sneak in a new
method unless you also sneak it into the interface, thus making a
stronger "contract" with the user.
I am a bit astonished by
Robin Becker writes:
How can I find out exactly what is causing my security permissioning to
fail.
I have put extra stuff into ZPublisher\BaseRequest.py at line 463 so I
know that I'm failing on
UnauthorizedYou are not authorized to access this resource.
Michel Pelletier writes:
Dieter Maurer wrote:
Michel Pelletier writes:
Also, defining the interface seperately keep the two things apart,
impementation and interface, and doesn't allow you to sneak in a new
method unless you also sneak it into the interface, thus making
Ken Manheimer writes:
Dieter Maurer wrote:
It is a very good thing to have the specification very near
to the implementation -- as a permanent guide to the
implementor. It is even better, when big parts of the
specification becomes part of the executable code
Jim Fulton writes:
Dieter Maurer wrote:
I cannot see, why the separation of interface and implementation
should make the contract stronger.
The interface *is* the contract. If someone builds a house
for me, I don't want the house to *be* the contract. I want the
house to adhere
Sean McGrath writes:
... "dtml-in" treats sequences of two element tuples specially ...
You are right.
This is to support the frequent case of iterating over item sequences.
There should be a "dtml-in" argument to switch off this special
treatment.
If I had your problem, I would go for such a
Appended is a patch for the cDocumentTemplate/Acquisition bug.
Usually, this bug manifests itself by an "AttributeError: __call__"
for a folder object. The usual context is:
DTML Document:
.
dtml-with folder !-- here is the Attribute Error --
Ken Manheimer writes:
The separation need not mean that the specification is hard to access from
the implementations, either for documentation or for runtime enforcement.
Good!
But, objection will come later.
However, it *does* run contrary to the literate programming notion of
[EMAIL PROTECTED] writes:
I want to change some ZClass properties by getting return results
from a DTML Method. Something like this: dtml-call
"myzclass.propertysheets.get('Basic').manage_changeProperties(dtmlM
eth(this(),_))". How do I get the dtmlMeth to return a Mapping?
(or
Andy McKay writes:
what does anyone else think
I would not like it.
Dieter
___
Zope-Dev maillist - [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists -
Marc Conley writes:
Should boolean queries work using Catalog
or is it
necessary to use ZCatalog instead to get that functionality?
ZCatalog is nothing more than a thin wrapper around
Catalog (to make a Catalog a persistent object in ZODB).
All search facilities of ZCatalog
Josh Zeidner writes:
dtml-in "Catalog.searchResults( MediaKeywords = ['ouch'] )"
This should work.
Alternatively: "MediaKeywords = 'ouch'".
dtml-in "Catalog.searchResults( MediaKeywords in ['ouch'] )"
This calls the catalog without any keyword arguments
and with a single positional
Josh Zeidner writes:
This seems like the obvious result: BUT: it depends if you want a AND/OR
type search.
ZCatalog combines several search terms for a single index with
"OR" and search expressions for different indexes with
an "AND".
Dieter
Itai Tavor writes:
In Python Methods I could do urllib.quote(...). This doesn't work in
Python Scripts. Is quote considered a security risk?
"quote" not, but maybe "urllib".
Dieter
___
Zope-Dev maillist - [EMAIL PROTECTED]
seb bacon writes:
the Content-length is consistently reported as 14 bytes too
short. This is regardless of the actual length of the document.
Why this should have a knockon effect on a small subset of MS
browsers, I don't know. Especially confusingly random is the
Josh Zeidner writes:
OK. Is it possible to query keyword indexes for several keywords at once?
Not that I know of.
You either have to extend ZCatalog or wait some time.
There are different people working on ZCatalog enhancements.
Again, I am reporting a bug
You already know the
Jimmie Houchin writes:
I just updated my current CVS build of Zope2.
ImportError: cannont import name end_of_header_search
This may be the effect of a fix for a problem discussed
recently in "zope-dev":
Zope looked for "/head" and added it, if not present.
Unfortunately, it
seb bacon writes:
IE does not get last 11 bytes
- it's always the last 11 bytes that are missing, however large the
page is
- I've sent exact copies of the HTTP headers to the server, using
telnet, and there's no problem there
I made the experience that IE is very
Martin Winkler writes:
I cannot use SiteAccess (because I need multiple ZCatalogs), and my Zope
server (port 8080) is behind squid (in http-accelerated mode - port 80).
What I would need is changing the hostname and port in the html-responses
like this:
Today was again a hard Zope day.
Did you ever hear, that usually (i.e. if you do not do special
things) Zope renders a complete page before it starts
sending the result back to the client.
This implies that you should never see only half of a page.
I heard it and I saw the code that does it.
Toby Dickenson writes:
... protocol specific access rights ...
Please No.
Zope security is complex enough without having to worry about
different security settings depending on how a method is accessed.
(And we should have a lower tolerance for complexity when it applies
to
I looked at ZopeCVS's PythonScripts.
I mostly like it -- with the following exceptions:
* Namespace binding
It does not yet work, apparently:
In DTML, I have:
dtml-call "REQUEST.set('a','a')"
dtml-var pyscript
in PythonScript "pyscript":
return _['a']
The Doctor What writes:
What are the differences between DTML Documents and Methods
internally?
There are too small differences:
1. DTML documents implement the "PropertyManager" interface,
i.e. they can have properties other than "id" and "title".
2. DTML documents place themselves
While trying to understand, what the "bself= self.aq_explicit"
in "OFS.DTMLMethod.__call__" should do, I detected an unexpected
behaviour:
usually, this "bself" acquires implicitly from
its container (though not from its context)
More precisely:
if "bself.aq_self" is itself an
Dieter Maurer writes:
I looked at ZopeCVS's PythonScripts.
I mostly like it -- with the following exceptions:
* Namespace binding
It does not yet work, apparently:
Sorry!
This was my fault:
I had update my Zope CVS version but not yet recompiled
the shared objects
I recently read RFC 2396 which defines the generic URI syntax
and especially the URL syntax.
I recognized, that
* Zope forbids many characters in ids (with the error message
"not allowed in URLs"), that are legal characters
in URL path segments:
generally allowed in URL's:
Chris Withers writes:
However, if anyone does know what constitutes a 'seperate object' in
ZODB terms, it be really useful to know.
I'm guessing a class which inherits from Persistent? Dictionaries don't,
'cos they're python builtins, which I'm pretty certain was the problem
in my
Heinz-Josef Claes writes:
dynamic permissions
It is not Zope's normal behaviour.
Of cause, you could plug in a new UserFolder that
implements the features you require (someone else
recommended "LoginManager").
On the other hand, Zope is flexible enough to let you
approximate the
[EMAIL PROTECTED] writes:
My Zserver has started at 8080 but the manage.dtml is not
accessible from the browser either as localhost or with the host name.
Please suggest me an answer the problem ASAP.
You are using:
http://localhost:8080/manage
do you?
You must not use
Chris Withers writes:
Andrew
bart
David
sophie
Wayne
Why in hell do you switch caseness for similar objects?
If you apply some naming conventions, such as
"objects start with a Capital letter, verb with a lowercase letter",
you may find Python's sorting order usefull.
Dieter
Chris Withers writes:
Dieter Maurer wrote:
Chris Withers writes:
Andrew
bart
David
sophie
Wayne
Why in hell do you switch caseness for similar objects?
Who said anything about objects?
Maybe, I should have said subjects.
Your example strings seem to name
Tim McLaughlin writes:
I'm building a Product in Python and seem to be having some issues with the
new registerClass method of Product registering. If I build it all fine as
noted in Shane's recent HowTo, the product does not show up in the control
panel. Then after much other chasing,
Steve Alexander writes:
I like your idea.
It is one way to implement my recent "lobbying" request
with minimal effort.
Dieter
___
Zope-Dev maillist - [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
** No cross posts or
Chris Withers writes:
And I suppose the other part of my wishlist:
class MyClass(Acquisition.Implicit):
# your_attribute will be acquied
# index_html won't
index_html = None
No, that is not enough!
As a side effect to turn off acquisition, you defined
the
Martijn Pieters writes:
On Mon, Jan 08, 2001 at 10:10:34AM +, Chris Withers wrote:
You wouldn't need to have index_html = None if it is inherited, since
the inherited idnex_html would be used before one is acquired, surely?
Yup. If you don't want to have any index_html *at all*,
Chris Withers writes:
Dieter Maurer wrote:
Chris Withers writes:
And I suppose the other part of my wishlist:
class MyClass(Acquisition.Implicit):
# your_attribute will be acquied
# index_html won't
index_html = None
Olaf Zanger writes:
Dies ist eine mehrteilige Nachricht im MIME-Format.
--865D189079029FB9A426EFA9
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Please do not post MIME messages!
expr="fac_browse_method.sql(id=10)" zope gernerates an error.
Morten W. Petersen writes:
Is there anyone who could try to give an estimate of how long it would
take to add fuzzy logic (regexp-like) searching capability to the
ZCatalog?
I do not think that "fuzzy logic" is strongly related to "regexp-like".
Anyway.
Fuzzy searching often means "finding
Chris Withers writes:
Martijn Pieters wrote:
Now I think I know the answer to this one, but I'll ask just to be sure:
class MyClass(Persistent Acquisition.Explicit):
def _set_your_attribute (self,value):
self._v_your_attribute = value
def _get_your_attribute
Morten W. Petersen writes:
It seems I misunderstood the term fuzzy logic myself. Fuzzy logic means
if I search for a word, for example 'programmer', it will return matches
to the words 'program', 'programming','programmable' etc.
This, usually, is called "stemming".
Though, your examples
Brian Lloyd writes:
...
But is it really so bad
to
make a 32 pixel-high concession to a small pittance of
branding?
I can spare 32 pixels in height, but the current 32 pixels are worthless
for me as I cannot read what is there.
I do not know at what design schools one learns that
John D. Heintz writes:
I am using ZODB along with CORBA to expose peristent objects. Some of
my objects have per-connection/session state.
...
My initial idea is to have a _v_position attribute ...
Using "_v_" attributes for session state is a very bad idea.
They are thread(!) local and
Steve Alexander writes:
Michael Bernstein wrote:
Also, is there a way to disable wildcards in full text
searches?
Do not allow direct queries to search the catalog. Instead, make
searches go through an external method (or a PythonScript with Proxy
permissions) that uses
[EMAIL PROTECTED] writes:
That (or rather Image.File) was where I started. I decided to go with
HTMLFile as a basis so we could have some DTML in the CSS file - but
overrode it so we weren't forced to have the .dtml extension (much happier
web designers that way :)
Thus, the only thing,
1 - 100 of 1105 matches
Mail list logo