1: ###Extensions for VLMA-Triples
2: from OFS.Folder import Folder
3: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
4: from OFS.SimpleItem import SimpleItem
5: from Globals import package_home
6: import Globals
7: from AccessControl import ClassSecurityInfo
8:
9: import os.path
10:
11: security=ClassSecurityInfo()
12: security.declarePublic('VLMAObject')
13:
14: class VLMAObject(SimpleItem):
15: """VLMAObject"""
16:
17:
18: def __init__(self,subject,subjectField,object,objectField,predicate=None):
19: self.subject=subject
20: self.subjectField=subjectField
21: self.object=object
22: self.objectField=objectField
23: self.predicate=predicate
24:
25: def change(self,subject,subjectField,object,objectField,predicate=None):
26: self.subject=subject[0:]
27: self.subjectField=subjectField[0:]
28: self.object=object[0:]
29: self.objectField=objectField[0:]
30: if predicate:
31: self.predicate=predicate[0:]
32: else:
33: self.predicate=None
34:
35:
36:
37:
38:
39: Globals.InitializeClass(VLMAObject)
40:
41: class VLMATriples(Folder):
42: """Klasse zur Erzeugung der Triplefiles fuer VLMA, muss subobject eine ZSQLExtendFolders sein"""
43:
44: meta_type="VLMATriples"
45:
46: manage_options=Folder.manage_options+(
47: {'label':'Main Config','action':'changeVLMATriplesForm'},
48: )
49:
50: def __init__(self,id,searchStatement,collectionObject,imageObject=None,thumbObject=None,title=""):
51: """init
52: @param collectionObject: VLMAObject
53: @param imageObject: VLMAObject
54: @param thumbObject: VLMAObject"""
55:
56: self.id=id
57: self.title=title
58: self._setObject('collectionObject',collectionObject)
59: self._setObject('imageObject',imageObject)
60: self._setObject('thumbObject',thumbObject)
61: self.searchStatement=searchStatement
62:
63: def getCollectionObject(self,field):
64: """get the obejct"""
65: return getattr(self.collectionObject,field)
66:
67: def getImageObject(self,field):
68: """get the obejct"""
69: return getattr(self.imageObject,field)
70:
71: def getThumbObject(self,field):
72: """get the obejct"""
73: return getattr(self.thumbObject,field)
74:
75: def createVLMATriples(self):
76: """standardview"""
77:
78: ret=""
79:
80: #collectionobject triple
81: for found in self.ZSQLSimpleSearch(self.searchStatement):
82: subject=self.collectionObject.subject%getattr(found,self.collectionObject.subjectField)
83: object=self.collectionObject.object%getattr(found,self.collectionObject.objectField)
84: predicate="metadata"
85: ret+="%s\t%s\t%s\n"%(subject,object,predicate)
86: if self.imageObject:
87: subject=self.imageObject.subject%getattr(found,self.imageObject.subjectField)
88: object=self.imageObject.object%getattr(found,self.imageObject.objectField)
89: predicate="image"
90: ret+="%s\t%s\t%s\n"%(subject,object,predicate)
91:
92: if self.thumbObject:
93: subject=self.thumbObject.subject%getattr(found,self.thumbObject.subjectField)
94: object=self.thumbObject.object%getattr(found,self.thumbObject.objectField)
95: predicate="thumb"
96: ret+="%s\t%s\t%s\n"%(subject,object,predicate)
97:
98: return ret
99:
100: index_html=createVLMATriples
101:
102: def changeVLMATriplesForm(self):
103: """Form for adding a VLMATriplesObject"""
104: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeVLMATriples.zpt')).__of__(self)
105: return pt()
106:
107: def changeVLMATriples(self,searchStatement,cS,cSF,cO,cOF,iS,iSF,iO,iOF,tS,tSF,tO,tOF,title="",REQUEST=None):
108: """changing triples"""
109: self.title=title[0:]
110: self.searchStatement=searchStatement[0:]
111: self.collectionObject.change(cS,cSF,cO,cOF)
112: if iS=="":
113: self.imageObject=None
114: else:
115: self.imageObject.change(iS,iSF,iO,iOF)
116: if tS=="":
117: self.thumbObject=None
118: else:
119: self.thumbObject.change(tS,tSF,tO,tOF)
120:
121: if REQUEST is not None:
122: return self.manage_main(self, REQUEST)
123:
124: def manage_addVLMATriplesForm(self):
125: """Form for adding a VLMATriplesObject"""
126: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addVLMATriples.zpt')).__of__(self)
127: return pt()
128:
129: def manage_addVLMATriples(self,id,searchStatement,cS,cSF,cO,cOF,iS,iSF,iO,iOF,tS,tSF,tO,tOF,title="",REQUEST=None):
130: """Add a VLMATriples Object"""
131: cOb=VLMAObject(cS,cSF,cO,cOF)
132: if iS=="":
133: iOb=None
134: else:
135: iOb=VLMAObject(iS,iSF,iO,iOF)
136: if tS=="":
137: tOb=None
138: else:
139: tOb=VLMAObject(tS,tSF,tO,tOF)
140:
141: ob=VLMATriples(id,searchStatement,cOb,iOb,tOb,title=title)
142:
143: self._setObject(id,ob)
144:
145: if REQUEST is not None:
146: return self.manage_main(self, REQUEST, update_menu=1)
147:
148:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>