source: products/SimpleBlog/branches/plone-2.1-Blogging-APIs/__init__.py @ 3665

Last change on this file since 3665 was 1, checked in by myroslav, 18 years ago

Building directory structure

File size: 2.7 KB
RevLine 
[1]1from Globals import package_home
2from Products.Archetypes.public import process_types, listTypes
3from Products.CMFCore import utils
4from Products.CMFCore.DirectoryView import registerDirectory
5import os, os.path
6
7from config import SKINS_DIR, GLOBALS, PROJECTNAME
8from config import ADD_BLOGENTRY_PERMISSION,ADD_SIMPLEBLOG_PERMISSION
9
10from Globals import InitializeClass
11
12import xmlrpcMonkeyPatch
13
14registerDirectory(SKINS_DIR, GLOBALS)
15
16def initialize(context):
17
18    ## Allow module utils
19    from AccessControl import ModuleSecurityInfo, allow_module
20    ModuleSecurityInfo('Products.SimpleBlog.util').declarePublic('addTrackBack')
21    ModuleSecurityInfo('Products.SimpleBlog.util').declarePublic('encodeURLData')
22
23    #allow_module('Products.SimpleBlog.Extensions.utils')
24
25
26    ##Import Types here to register them
27    import BlogEntry
28    import Blog
29    import BlogFolder
30    import TrackBack   
31   
32    content_types, constructors, ftis = process_types(
33        listTypes(PROJECTNAME),
34        PROJECTNAME)
35   
36   
37    blogIndex = getTypeIndex(content_types, 'Blog')
38    entryIndex=getTypeIndex(content_types, 'BlogEntry')
39    folderIndex = getTypeIndex(content_types, 'BlogFolder')   
40    trackbackIndex = getTypeIndex(content_types, 'TrackBack')   
41
42    blog_contstructor = []
43    blog_contstructor.append(constructors[blogIndex])
44    entry_contstructor = []
45    entry_contstructor.append(constructors[entryIndex])
46    entry_contstructor.append(constructors[folderIndex])
47    entry_contstructor.append(constructors[trackbackIndex])
48
49    blog_type = []
50    blog_type.append(content_types[blogIndex])
51    entry_type = []
52    entry_type.append(content_types[entryIndex])
53    entry_type.append(content_types[folderIndex])
54    entry_type.append(content_types[trackbackIndex])
55   
56   
57    utils.ContentInit(
58        PROJECTNAME + ' Content',
59        content_types      = tuple(blog_type),
60        permission         = ADD_SIMPLEBLOG_PERMISSION,
61        extra_constructors = tuple(blog_contstructor),
62        fti                = ftis,
63        ).initialize(context)
64   
65    utils.ContentInit(
66        PROJECTNAME + ' Content',
67        content_types      = tuple(entry_type),
68        permission         = ADD_BLOGENTRY_PERMISSION,
69        extra_constructors = tuple(entry_contstructor),
70        fti                = ftis,
71        ).initialize(context)
72   
73       
74    from SimpleBlogTool import SimpleBlogManager
75    utils.ToolInit(
76        'SimpleBlog manager', 
77        tools=(SimpleBlogTool.SimpleBlogManager,), 
78        product_name='SimpleBlog', 
79        icon='tool.gif', ).initialize(context)
80   
81def getTypeIndex(content_types, meta_type):
82    for i in range(len(content_types)):
83        if content_types[i].meta_type==meta_type:
84            return i
85           
86   
87   
88   
89   
90   
Note: See TracBrowser for help on using the repository browser.