金字塔插件(主题、视图等)

2024-10-01 13:39:46 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,问题简单地说。我确实有一个金字塔的设置,开始看起来像一个cms。 我有基本模型:[帐户,页面,错误,菜单,配置]

它很好用,但我确实有点小问题。目前我正在使用git,在一些分支上我有不同的模板,在主分支上,我对核心进行了更改。在

我希望能够安装主题。主题是模板文件/静态文件(css/js)的集合。在

这可以通过入口点实现,我的配置视图可以查找它们并显示已安装主题的列表。到目前为止,这是可以做到的。在

能够在运行中切换不同的主题将是一个非常好的开始,这样我就不必为了新的主题而分拆我的项目。在

第二个问题是这些网站需要不同的内容。例如,一个要求“问题”,另一个要求“产品”

所以我有这个想法

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'''

以及一个不同的模型插件

^{pr2}$

我最大的问题是它如何找到文件。我将要做一些测试,但我担心的是翻译和文件路径。在

它如何通过入口点工作对我来说还是个谜。插件会使用巴别塔翻译。。。我可以在我的模板插件中使用巴别塔翻译吗?加载入口点时..current dir是项目的dir还是入口点的dir?我相信我可以很容易地得到分配的途径,但我不确定什么是正确的方法来做所有这些。。。我觉得我进入了一个充满地雷的新大陆。在


Tags: 文件thepath项目模型self插件模板
1条回答
网友
1楼 · 发布于 2024-10-01 13:39:46

在Pyramid中,您可以在运行时使用render_to_reponse函数选取模板。但是,如果您想要一个更为成熟的解决方案,您可能会受到Kotti的启发,一个金字塔CMS已经支持插件,look and feel customization与“Babel”进行国际化。为了使用另一个“主题”,您必须按照Kotti使用的约定编写另一个带有一些模板和静态资产的包,然后在.ini配置文件中激活该包。在

要理解Kotti是如何实现这一点的,您应该从this line开始遵循代码路径

在任何情况下,Kotti对金字塔应用程序的配置做了一些假设,比如SQLAlchemy用于存储,formencode用于表单生成或遍历以将视图映射到资源,所以YMMV。金字塔本身并不在意你这样做的方式。在

相关问题 更多 >