好的,这是简单的问题。我确实有一个金字塔设置,它确实开始看起来像一个 cms。我有作为基本模型:[帐户、页面、错误、菜单、配置]
它工作得很好,但我确实有一些问题。目前我正在使用 git,在某些分支上我确实有不同的模板,在主分支上我对核心进行了更改。
我希望能够安装主题。主题将是模板文件/静态文件(css/js)的集合。
这可以通过 entry_points 来实现,我的配置视图可以查找它们并显示已安装主题的列表。到目前为止是可以做到的。
能够即时切换不同的主题将是一个非常好的开始,因此我不必只为新主题分叉我的项目。
第二个问题是这些网站需要不同的内容。例如,一个需要“问题”,另一个需要“产品”
所以我有这个想法
class TemplatePlugin(PyramidPlugin):
template_path = ''
static_path = ''
def register(self, config, app):
'''Inject the plugin in the application... how I'm not sure yet'''
def unregister(self):
'''unregister the plugin if something is needed'''
def (before/after)_(request/newapp...)(self,...):
'''do some stuff for some events most are optional'''
还有一个不同的模型插件
class PyramidPlugin(pyramid_plugin):
def register(self, config, app):
'''add routes,
add view handlers (view_config)
add models acl to the acl list
'''
# other functions similar to the above class to handle events
我最大的问题是它如何找到文件。我将不得不做一些测试,但我担心翻译和文件路径。
它如何通过入口点工作对我来说仍然是一个谜。插件会使用 babel 翻译...我可以在模板插件中使用我的 babel 翻译吗?加载入口点时..当前目录是项目的目录还是入口点的目录?我相信我可以很容易地通过分发获得路径,但我不确定做这一切的正确方法是什么......我觉得我正在进入一个充满地雷的全新土地。