##############################################################################
#
# Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
#
# This software is distributed under the terms of the Kupu
# License. See LICENSE.txt for license text. For a list of Kupu
# Contributors see CREDITS.txt.
#
##############################################################################
"""Zope2 integration module
This is a solution for plain Zope2 integration using the
FileSystemSite product. FileSystemSite can be found at
http://www.zope.org/Members/k_vertigo/Products/FileSystemSite
Note that FileSystemSite 1.3 is required.
$Id: __init__.py,v 1.1.1.1 2005/08/30 17:10:23 dwinter Exp $
"""
import Globals
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.FileSystemSite.DirectoryView import DirectoryView
from Products.FileSystemSite.DirectoryView import DirectoryViewSurrogate
from Products.FileSystemSite.DirectoryView import DirectoryRegistry
from Products.FileSystemSite.DirectoryView import registerFileExtension
from Products.FileSystemSite.DirectoryView import manage_listAvailableDirectories
from Products.FileSystemSite.FSFile import FSFile
def initialize(context):
context.registerClass(
KupuEditorSurrogate,
constructors=(('manage_addKupuEditorForm', manage_addKupuEditorForm),
manage_addKupuEditor
),
icon='kupu_icon.gif'
)
#_dirreg = DirectoryRegistry()
from Products.FileSystemSite.DirectoryView import _dirreg
_dirreg.registerDirectory('../common', globals())
# for library drawers
registerFileExtension('xsl', FSFile)
registerFileExtension('xml', FSFile)
class KupuEditor(DirectoryView):
meta_type = 'kupu editor'
def __of__(self, parent):
info = _dirreg.getDirectoryInfo(self._dirpath)
if info is not None:
info = info.getContents(_dirreg)
if info is None:
data = {}
objects = ()
else:
data, objects = info
s = KupuEditorSurrogate(self, data, objects)
res = s.__of__(parent)
return res
Globals.InitializeClass(KupuEditor)
class KupuEditorSurrogate(DirectoryViewSurrogate):
meta_type = "kupu editor"
Globals.InitializeClass(KupuEditorSurrogate)
manage_addKupuEditorForm = PageTemplateFile('addKupuEditor.pt', globals())
def createKupuEditor(parent, filepath, id=None):
"""Adds either a DirectoryView or a derivative object.
"""
info = _dirreg.getDirectoryInfo(filepath)
if info is None:
raise ValueError('Not a registered directory: %s' % filepath)
if not id:
id = path.split(filepath)[-1]
else:
id = str(id)
ob = KupuEditor(id, filepath)
parent._setObject(id, ob)
def manage_addKupuEditor(self, filepath="Products/kupu/common",
id=None, REQUEST=None):
"""Adds either an kupu editor object
"""
createKupuEditor(self, filepath, id)
if REQUEST is not None:
return self.manage_main(self, REQUEST)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>