django fluent cms的faq引擎
django-fluent-faq的Python项目详细描述
django fluent常见问题解答
这个Django应用程序为使用django-fluentCMS构建的站点添加了一个FAQ引擎
功能:
- 多语言
- 多站点
- 类别和问题
- 搜索引擎优化字段(元关键字,描述)
使用的应用程序:
- 基于django-parler的多语言支持
- Optional与django-taggit和django-taggit-autocomplete-modified集成以支持标记
- 可选与django-fluent-pages集成
- 可选与django.contrib.sitemaps集成
安装
首先,最好在虚拟环境中安装模块:
git clone https://github.com/edoburu/django-fluent-faq.git cd django-fluent-faq pip install . # Install the plugins of fluent-contents that you use: pip install django-fluent-contents[text]# Optional: to add tagging support + autocomplete use: pip install django-taggit django-taggit-autocomplete-modified
配置
将应用程序添加到settings.py:
INSTALLED_APPS+=(# FAQ engine'fluent_faq',# The content plugins'fluent_contents','fluent_contents.plugins.text',# Support libs'categories','categories.editor','django_wysiwyg',# Optional tagging'taggit','taggit_autocomplete_modified',)DJANGO_WYSIWYG_FLAVOR="yui_advanced"
注意并非所有申请都是必需的; 标记是可选的,各种fluent_contents.plugin.*包也是可选的。
将应用程序包含在urls.py:
urlpatterns+=patterns('',url(r'^admin/util/taggit_autocomplete_modified/',include('taggit_autocomplete_modified.urls')),url(r'^faq/',include('fluent_faq.urls')),)
之后可以创建数据库:
./manage.py syncdb
如果使用了django-fluent-contents的其他插件,请遵循 installation instructions还有。 通常包括:
- 正在将包名称添加到INSTALLED_APPS。
- 正在运行pip install django-fluent-contents[pluginname]
- 正在运行./manage.py syncdb
配置允许的插件
要限制在常见问题解答中可以使用的django-fluent-contents插件,请使用:
FLUENT_CONTENTS_PLACEHOLDER_CONFIG={'faq_answer':{'plugins':('TextPlugin','PicturePlugin','OEmbedPlugin','SharedContentPlugin','RawHtmlPlugin',),},}
配置模板
要显示博客内容,需要创建一个fluent_faq/base.html文件。 这将用于将模块的输出映射到站点模板。
基本模板需要具有块:
- content-显示主要内容
- sidebar_content-显示边栏内容
- title-要插入到<title>标记的标题片段
- meta-title-标记<title>的全部内容。
- meta-description-元描述标记的value。
- meta-keywords-元关键字标记的value
- og-type-Facebook的OpenGraph类型(可选)
- og-descriptionFacebook的OpenGraph描述(可选)
fluent_faq/base.html模板可以简单地将块名重新映射到站点的base.html模板。 例如:
{%extends"base.html"%}{%blockheadtitle%}{%blocktitle%}{%endblock%}{%endblock%}{%blockmain%}{# This area is filled with the question details: {% block content %}{% endblock %} {# Add any common layout, e.g. a sidebar here #}{%blocksidebar_content%}{%endblock%}{%endblock%}
当站点的base.html模板中已存在所有其他块名时, 这个例子应该足够了。
向站点地图添加页面
或者,博客页面可以包含在站点地图中。 在urls.py中添加以下内容:
fromfluent_faq.sitemapsimportFaqQuestionSitemap,FaqCategorySitemapsitemaps={'faq_questions':FaqQuestionSitemap,'faq_categories':FaqCategorySitemap,}urlpatterns+=patterns('',url(r'^sitemap.xml$','django.contrib.sitemaps.views.sitemap',{'sitemaps':sitemaps}),)
与django fluent页面集成:
要与django-fluent-pages的页面类型集成,请不要在urlconf中包含fluent_blogs.urls:
urlpatterns+=patterns('',url(r'^admin/util/taggit_autocomplete_modified/',include('taggit_autocomplete_modified.urls')),)
请改为添加页面类型:
INSTALLED_APPS+=('fluent_pages','fluent_faq.pagetypes.faqpage',)
现在可以在django-fluent-pages的页面树中创建“FAQ模块”页面 在所需的URL路径
贡献
这个模块被设计成通用的,并且很容易插入您的站点。 万一你有什么不喜欢的,或者认为不是 够灵活的,请告诉我们。我们很乐意改进它!
如果你有其他有价值的贡献、建议或想法, 请也让我们知道,因为我们会调查的。 也欢迎拉取请求。:-)