Ok, I better clarify that a bit. Sorry for the rather abrupt reply, I didn't read that you were new to Zope... I also missed the fact that you wanted to capitalise it... First things first, don't use the old old format <!--#var something--> any more! <dtml-var something> does the same thing and is the accepted form now. You can call my script like this: <dtml-var expr="niceid(id)" capitalize> (the expr="" is so that it knows you're talking Python. You don't actually *need* the expr=, just the quotes but it helps clarify when you are using python or just dtml if you stick the expr= on. Was that confusing? Let me explain with an example:) <dtml-var a-variable> will return the value in a variable called "a-variable" <dtml-var expr="a-variable"> uses python to figuire out what you meant - will return the value in "a" minus the value in "variable" Next, you could actually just use the "title" field and manually put in a more appropriate title for each page rather than use my poor script ;). Call it with a nifty method <dtml-var title_or_id> which will revert back to the id if there is no title. There is no attribute in dtml-var that can do _title_ capitalization unfortunately. Here's a newer and better script (no where near the best it could be but should suffice for you) that I just wrote up. It does the extention stripping, spacifying and title capitalizing now: ## Script (Python) "niceid" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=id ##title= ## # strip the extention dot = id.rfind('.') if dot != -1: id = id[:dot] # turn underscores into spaces id = id.replace('_', ' ') # title capitalization alphabet = list('abcdefghijklmnopqrstuvwxyz') caps = 1 oldid = id id = '' for i in range(len(oldid)): char = oldid[i].lower() if caps: id += char.upper() else: id += char caps = char not in alphabet return id Chris Beaven wrote:
Try a python script, something like this:
## Script (Python) "niceid" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=id ##title= ## dot = id.rfind('.') if dot != -1: id = id[:dot] id = id.replace('_', ' ') return id
Michael Paul Robertson wrote:
Hi, I have a quick question to someone out there. It seems that there's no easy way to do this (although I'm rather new to zope (~a week), so I could be wrong). What I need to do is take the ID variable of a page in a
dtml
method call and remove the .html suffix in order to use it as the title of a page.
Here's the content:
<title><!--#var id spacify capitalize--></title>
what it returns for a page call "mission_statement.html" that includes the method as a header is
<title>Mission statement.html</title>
It would be ideal if I could capitalize and strip the .html suffix to give
<title>Mission Statement</title>
Sorry for the primitive question, but how can I do this?
Thanks for your help.
Mike
+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:- Mike Robertson PO Box 11224 mikerobe@stanford.edu Stanford CA 94309 650.269.4896 +:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-+:-
``He's done so for 12 years,'' he added. ``So the idea of destroying a rocket, or two rockets, or however many he's going to destroy, says to me he's got a lot more weapons to destroy, and why isn't he destroying
them
yet?'' -- The unbeatable logic of Bush number 42
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )