17 |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA |
18 |
__version__='$Revision$'[11:-2] |
__version__='$Revision$'[11:-2] |
19 |
|
|
20 |
from Products.CMFCore import FSPageTemplate as cmfFSPT |
from Products.CMFCore.FSObject import FSObject |
21 |
from Products.CMFCore.FSPageTemplate import * |
from Products.CMFCore.DirectoryView import registerFileExtension, registerMetaType, expandpath |
22 |
from OpenPTBase import OpenPageTemplate, compiler_registry |
from Products.CMFCore.CMFCorePermissions import View, ViewManagementScreens |
23 |
|
from OpenPTBase import OpenPageTemplate, compiler_registry, my_home |
24 |
|
from OpenPTFile import OpenPTFile |
25 |
from ZOPT import ZopePageTemplate # for zodb clones |
from ZOPT import ZopePageTemplate # for zodb clones |
26 |
from Products.CMFCore import utils |
from Products.CMFCore import utils |
27 |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
29 |
from ZODB.PersistentMapping import PersistentMapping |
from ZODB.PersistentMapping import PersistentMapping |
30 |
from Acquisition import Explicit |
from Acquisition import Explicit |
31 |
|
|
32 |
FSPT = FSPageTemplate |
#FSPT = FSPageTemplate |
33 |
|
|
34 |
class MacroCollection(PersistentMapping, Explicit): |
class MacroCollection(PersistentMapping, Explicit): |
35 |
def __getitem__(self, name): |
def __getitem__(self, name): |
46 |
_icon = 'misc_/OpenPT/fsopt.png' |
_icon = 'misc_/OpenPT/fsopt.png' |
47 |
icon = _icon |
icon = _icon |
48 |
_compiled = None |
_compiled = None |
|
# FIXME: get metadata from file, or .props |
|
|
encoding = 'latin1' |
|
49 |
|
|
50 |
manage_options=( |
manage_options=( |
51 |
( |
( |
54 |
) |
) |
55 |
) |
) |
56 |
|
|
57 |
security = ClassSecurityInfo() |
security = AccessControl.ClassSecurityInfo() |
58 |
security.declareObjectProtected(View) |
security.declareObjectProtected(View) |
59 |
|
|
60 |
security.declareProtected(ViewManagementScreens, 'manage_main') |
security.declareProtected(ViewManagementScreens, 'manage_main') |
61 |
manage_main = FSPT.manage_main |
manage_main = OpenPTFile('manage_main', my_home, 'www', 'fsptCustomize.pt') |
62 |
|
|
63 |
# Declare security for unprotected PageTemplate methods. |
# Declare security for unprotected PageTemplate methods. |
64 |
security.declarePrivate('pt_edit', 'write', 'pt_editForm', |
security.declarePrivate('pt_edit', 'write', 'pt_editForm', |
79 |
|
|
80 |
def _createZODBClone(self): |
def _createZODBClone(self): |
81 |
"""Create a ZODB (editable) equivalent of this object.""" |
"""Create a ZODB (editable) equivalent of this object.""" |
82 |
t = ZopePageTemplate(self.getId(), self.read()) |
self._updateFromFS() |
83 |
|
t = ZopePageTemplate(self.getId(), None) |
84 |
t.handlers = self.handlers |
t.handlers = self.handlers |
85 |
|
t.encoding = self.encoding |
86 |
|
t.write(self.uread()) |
87 |
return t |
return t |
88 |
|
|
89 |
# unneeded, since this doesn't inherit from Cacheable, but won't hurt |
# unneeded, since this doesn't inherit from Cacheable, but won't hurt |
128 |
Globals.InitializeClass(FSPageTemplate) |
Globals.InitializeClass(FSPageTemplate) |
129 |
#cmfFSPT.FSPageTemplate = FSPageTemplate |
#cmfFSPT.FSPageTemplate = FSPageTemplate |
130 |
|
|
131 |
|
# nasty trick: import this so that it isn't imported again later |
132 |
|
from Products.CMFCore.FSPageTemplate import d |
133 |
|
|
134 |
registerFileExtension('pt', FSPageTemplate) |
registerFileExtension('pt', FSPageTemplate) |
135 |
registerFileExtension('html', FSPageTemplate) |
registerFileExtension('html', FSPageTemplate) |
136 |
registerFileExtension('htm', FSPageTemplate) |
registerFileExtension('htm', FSPageTemplate) |