[Zope] Problem With External Method (was: Second Request:: Where Is
This Module???)
beno
zope at 2012.vi
Wed Aug 9 11:46:49 EDT 2006
Patrick Decat wrote:
>> Traceback (innermost last):
>> Module ZPublisher.Publish, line 101, in publish
>> Module ZPublisher.mapply, line 88, in mapply
>> Module ZPublisher.Publish, line 39, in call_object
>> Module App.Management, line 85, in manage_workspace
>> Redirect: http://202.71.106.119:7080/error_log/manage_main
The problem, apparently, raises it's head in the 3rd line of the
traceback. The code there reads:
def call_object(object, args, request):
result=apply(object,args) # Type s<cr> to step into published object.
return result
So, I'm not sending the correct arguments to Zope. This is my first
External Script in years (and I'd only written a couple before). So,
please help me with this. The script is below in its (short) entirety.
It works just fine from the command prompt. The idea is explained in the
comments. Please help me understand how to pass it arguments.
TIA,
beno
"""
This function is to be used as a wrapper before passing to
VirtualHostMonster so that I can convert URLs such as this:
http://footprints.2012.vi/War_Parties.Christianity.Americas.North_America.United_States.War.War_Crimes.index.pt?foo=bar
into
http://footprints.2012.vi/War_Parties/Christianity/Americas/North_America/United_States/War/War_Crimes.index.pt?foo=bar
I choose to use the former for purposes of getting my pages ranked by
Google (since they dislike deep directory structures), but prefer the d
eep dir structure for my use in my Zope instance.
"""
import re
from urlparse import urlparse
def URL_Rewrite(old_url):
item6 = ''
item4 = ''
testPound = re.compile('[a-z_A-Z0-9:\/\.]*[#][a-zA-Z0-9:\/\.]*')
testQuestion = re.compile('[a-z_A-Z0-9:\/\.]*[\?][a-zA-Z0-9:\/\.]*')
testEnding = re.compile('[a-zA-Z_0-9:\/\.#\?]*[p][t]')
if re.match(testPound,old_url):
item6 = '#'
elif re.match(testQuestion,old_url):
item6 = '?'
if re.match(testEnding,old_url):
item4 = '.pt'
parts = urlparse(old_url)
item0 = parts[0]
# The next rule is required because urlparse() deletes the '://'
item0 = item0 + '://'
item1 = parts[1]
item2 = '/x/c/s/j/en-us'
subPartsOf2 = re.split('.pt',parts[2])
item3 = re.sub('\.','/',subPartsOf2[0])
# The other sub-part is an empty string
# The next rule is required because for some reason a ';' gets added by
urlparse()
item3 = re.sub(';','',item3)
item5 = parts[3]
item7 = parts[4]
item8 = parts[5]
new_url = item0 + item1 + item2 + item3 + item4 + item5 + item6 + item7
+ item8
return new_url
More information about the Zope
mailing list