I extended it a bit more. If you have multiple CMF sites, run the script below from your root directory.
import string
#get possible skins
newDirs=container.manage_addProduct['CMFCore'].manage_listAvailableDirectories()
#we can not use os.sep so we must look ourselfs what
# the path separator is
if newDirs[0].find('/') > -1:
newSep = '/'
else:
newSep = '\\'
portals= context.objectItems('CMF Site')
for portal,p in portals:
print '--- ' + p.id + ' ---'
objs = p.portal_skins.objectItems('Filesystem Directory View')
for n,o in objs:
found = 0
path = o.getDirPath()
if path.find('/') > -1:
sep = '/'
else:
sep = '\\'
#look for new path by comparing the last 2 elements
dArr = string.split(path,sep)
for i in range(len(newDirs)):
# if we found the directory skip the rest
if found:
continue
ndArr = string.split(newDirs[i],newSep)
if string.lower(ndArr[-1]) != string.lower(dArr[-1]):
continue
if string.lower(ndArr[-2]) != string.lower(dArr[-2]):
continue
# if we land here, we found the real one
found = 1
o.manage_properties(dirpath = newDirs[i])
if(found == 0):
print path, ' not found'
else:
print o.id
print''
print 'finished'
return printed
|