您的位置:首页 > 编程语言 > Go语言

【译】3.配置【django CMS】

2013-04-10 21:19 99 查看
django CMS有许多你可以用来定制你的安装的设置,这样正是像你希望的一样。

3.1 需要的设置

3.1.1 CMS_TEMPLATES

默认:()(不是一个有效的设置!)

你可以为一个页面选择的一列模板。

例子:

CMS_TEMPLATES = (
('base.html', gettext('default')),
('2col.html', gettext('2 Column')),
('3col.html', gettext('3 Column')),
('extra.html', gettext('Some extra fancy template')),
)
(注意:CMS_TEMPLATES中定义的所有模板必须至少包含js和css 的sekizai命名空间,更多信息请参照用sekizai处理静态文件。)
(提醒:django CMS内部依赖许多模板来让它正常工作。他们存在在模板目录的cms下。同样的,非常建议你避免给你自己的项目模板用相同的目录名字。)

3.3 基本定制

3.2.1 CMS_TEMPLATE_INHERITANCE

默认:True

可选的,能从父页面继承模板。

如果能继承,页面有额外的模板选项从最近的祖先继承他们的模板。如果新的页面不是一个根页面,显得页面默认成这个设置。

3.2.2 CMS_PLACEHOLDER_CONF

默认:{}optional(可选的)

用来配置占位符。如果没有给出,占位符处所有的插件都可用。

例子:

CMS_PLACEHOLDER_CONF = {
'content': {
'plugins': ['TextPlugin', 'PicturePlugin'],
'text_only_plugins': ['LinkPlugin']
'extra_context': {"width":640},
'name':gettext("Content"),
},
'right-column': {
"plugins": ['TeaserPlugin', 'LinkPlugin'],
"extra_context": {"width":280},
'name':gettext("Right Column"),
'limits': {
'global': 2,
'TeaserPlugin': 1,
'LinkPlugin': 1,
},
},
'base.html content': {
"plugins": ['TextPlugin', 'PicturePlugin', 'TeaserPlugin']
},
}
你可以合并模板的名字和占位符的名字成精细的定义插件,就像上面显示的“base.html content"一样。
plugins

许多插件可以加到占位符处。如果没有提供,所有的插件都可选。

text_only_plugins

TextPlugin里许多可选的插件,这些插件不能直接被加到占位符处。

extra_context

占位符接收的额外的内容。

name

Django管理显示的名字。使用gettext的存根,名字可以国际化。

limits

限制占位符内插件的数量。字典的keys是插件的名称,它的值是他们分别的限制。特例:”global“--不管什么类型(优先的类型指定的限制),限制占位符出绝对数量的插件。

3.2.3 CMS_PLUGIN_CONTEXT_PROCESSORS

默认:【】

一系列插件内容处理器。在提供前,插件内容处理器可调用用来修正所有的插件的内容。详情请见定制插件部分。

3.2.4 CMS_PLUGIN_PROCESSORS

默认:【】

一系列插件处理器。在提供后插件处理器可调用用来修正所有插件的舒服。详情请见定制插件部分。

3.2.5 CMS_APPHOOKS

默认:()

cms.app_base.CMSApp子类的一些列导入路径。

默认是空的列表,这意味着CMS应用程序是通过在INSTALLED_APPS里尝试导入cms_app模块被自动发现的。如果设置了该内容,自动查找就取消了。

例子:

CMS_APPHOOKS = (
'myapp.cms_app.MyApp',
'otherapp.cms_app.MyFancyApp',
'sampleapp.cms_app.SampleApp',
)
3.2.6 PLACEHOLDER_FRONTEND_EDITING
默认:True

如果设置成False,模块在用cms.models.fields.PlaceholderField时前端编辑不可用。

3.3 编辑配置

cms.plugins.text里的Wymeditor插件可以vanilla Wymeditor采用一样的配置,因此你需要学习怎样去配置那个。为了理解Wymeditor是如何工作最好的方法是读Wymeditor例子页面。

cms.plugins.text插件也提出了几个以WYM_*开头用来和wym配置通信的变量。开始这个最简单的方法就是去cms/plugins/text/settings.py里把WYM_*变量拷贝出来,然后你就会发现他们和Wymeditor的一一对应。

目前下面的变量是可用的:

WYM_TOOLS

WYM_CONTAINERS

WYM_CLASSES

WYM_STYLES

WYM_STYLESHEET

3.4 I18N和L10N
3.4.1 CMS_HIDE_UNTRANSLATED

默认:True

默认情况下django CMS隐藏那些还没有翻译到目前语言来的菜单。设置为False的话他们都会显示出来。

3.4.2 CMS_LANGUAGES

默认:LANGUAGES的值

默认在django CMS中语言是可用的。

例子:

CMS_LANGUAGES = (
('fr', gettext('French')),
('de', gettext('German')),
('en', gettext('English')),
)
(注意:确保你只在LANGUAGES中定义了语言。)
3.4.3 CMS_LANGUAGE_FALLBACK

默认:True

这会重定向你的浏览器到其他的语言页面如果页面在目前于语言下不可用。

3.4.4 CMS_LANGUAGE_CONF

默认:{}

按照每种语言进行语言回调。

例子:

CMS_LANGUAGE_CONF = {
'de': ['en', 'fr'],
'en': ['de'],
}
3.4.5 CMS_SITE_LANGUAGES
默认:{}

如果你有超过一个站点,并且不同站点间CMS_LANGUAGES不一样。当你在站点的管理切换时你获得可用对特别站点可用的语言,你可能想解决这个。

例子:

CMS_SITE_LANGUAGES = {
1:['en','de'],
2:['en','fr'],
3:['en'],
}


3.4.6 CMS_FRONTEND_LANGUAGES
默认:CMS_LANGUAGES的值

django CMS在前端用的一些列的语言。比如说,如果你决定向你的页面增加一个新的语言但不想向别人展示。

例子:

CMS_FRONTEND_LANGUAGES = ("de", "en", "pt-BR")
3.5 Media设置
3.5.1 CMS_MEDIA_PATH

默认:cms/

从MEDIA_ROOT到media文件的路径位于cms/media/。

3.5.2 CMS_MEDIA_ROOT

默认:MEDIA_ROOT+CMS_MEDIA_PATH

cms media文件的media根文件的路径。

3.5.3 CMS_MEDIA_URL

默认:MEDIA_URL+CMS_MEDIA_PATH

位于cms/media/cms/下的media文件的位置。

3.5.4 CMS_PAGE_MEDIA_PATH

默认:‘cms_page_media/’

默认情况下,django CMS在你的static文件目录(所有上传的media文件存放的地方)下创建一个叫cms_page_media的目录。media文件存放在带有页面id的子目录下。

你应该注意你正在运行django用户的人能对指向的目录进行写操作。

3.6 URLs

3.6.1 CMS_URL_OVERWRITE

默认:True

这会在你的页面的“高级设置”tab下增加一个新的领域“url overwrite”。有这个东西你就可以重写整个页面的相关url。

3.6.2 CMS_MENU_TITLE_OVERWRITE

默认:False

这会在标题地方增加一个新的“menu title”地方。你可以用这个东西重写显示在菜单上的标题。为了使用末班中的菜单标题,用:

{{ page.get_menu_title }}
3.6.3 CMS_REDIRECTS

默认:False

这会在页面的“高级设置”tab下会增加一个新的“redirect”地方。当访问者接触某个页面的时候你可以让他重定向到设定的url。

3.6.4 CMS_FLAT_URLS

从2.4版本后弃用。

默认:False

如你启用了这个,鼻涕虫(slug)就不嵌入在urls里面。因此一个带有“world”鼻涕虫的页面会有一个“/world”url,即使他是一个“hello”页面的子页面。如果这个没被使能,这个页面将会有一个url“/hello/world/”。

3.6.5 CMS_SOFTROOT

默认:False

这会在页面“高级设置”的tab下增加一个新的“softroot”地方。如果一个页面被标记为softroot,直到它找到softroot否则菜单只显示物体。如果你有一个大的网址,你可以用这个很容易的分离菜单。

3.7 高级设置

3.7.1 CMS_PERMISSION

默认:False

如果这个启用了,你可以在Admin中获得三个新的模型:

Pages global permissions

User groups - page

Users - page

在页面的编辑-显示部分,你可以给用户分配页面并且给他们授权。全局的权限你可以设给全局用户。

如果一个用户有权利创建一个用户那么现在他也能在“User-page”页面做这个。但是他只能看到他创建的用户,这个用户只能继承他有的权利。因此如果他只有被授权编辑某个页面,他创建的所有用户也能编辑这个页面。一般来说,它可以限制和创建的用户的权利,甚至允许他们只看他们允许看到的一系列页面。

3.7.2 CMS_PUBLIC_FOR

默认:all

决定是否没有任何限制的页面时默认公开的还是只有会员能看。可能的值是all和staff。

3.7.3 CMS_MODERATOR

默认:False

如果设为True,在树视图下给你一个新的“moderation”列。

你可以选择来修正页面或者整个树。如果一个页面是适中的,你可以接收一个邮件如果默认改变了一个页面并且你会被问到是否允许这个改变。只有当你同意这个改变之后,改变会东西会被更新到“真实的”网站上。如果你自己对一个页面做出了改变,你无论如何都要同意它。比如说,这会允许你为一个新的版本改变许多页面,并且可以和所有的版本同时一起上线。

(注意:当在一个存在的站点上切换这个值为True时,你必须运行cms moderator on命令来使相应的数据库改变。)

3.7.4 CMS_SHOW_START & CMS_SHOW_END_DATE

默认:两个都是False

这会在页面的“高级设置”页面增加两个DateTimeField地方。有这个选项,你可以限制一个页面发布的时间。

3.7.5 CMS_SEO_FIELDS

默认:False

这会在页面管理中增加一个“SEO Fields”的fieldset。你可以在这里设置Page Title,Meta Keywords和Meta Description。在模板中用下列语句访问这些地方:

{% load cms_tags %}
<head>
<title>{% page_attribute page_title %}</title>
<meta name="description" content="{% page_attribute meta_description %}"/>
<meta name="keywords" content="{% page_attribute meta_keywords %}"/>
...
...
</head>
3.7.6 CMS_CACHE_DURATIONS

这个目录含有许多缓存存在时间的限制。

3.7.6.1 ‘content’

默认:60

show_placeholder和page_url模板标识的缓存过期时间(单位秒)。

3.7.6.2 ‘menus’

默认:3600

菜单树的缓存过期时间(单位秒)。

(注意:这个设置之前被称为MENU_CACHE_DURATION。)

3.7.6.3 ‘permissions’

默认:3600

视图和其他允许的缓存过期时间(单位秒)。

3.7.7 CMS_CACHE_PREFIX

默认:cms-

CMS预先考虑与之每一个缓存访问的值作为一个关键(这句话实际不会翻译)。当你有几个django CMS安装的时候会很有用,并且你不想他们分享缓存物体。

例子:

CMS_CACHE_PREFIX = 'mysite-live'
(注意:Django 1.3介绍了一个全站缓存关键前缀,详细请见Django自己的cache key prefixing。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: