genj / faq-bundle
Symfony FAQ 包
Requires
- doctrine/doctrine-bundle: ~1.6
- doctrine/orm: >=2.5
- gedmo/doctrine-extensions: >=2.4.10
- sensio/framework-extra-bundle: ~3.0
- symfony/symfony: >=3.0
Requires (Dev)
- sensio/generator-bundle: ^3.0
- symfony/phpunit-bridge: ^2.7
README
GenjFaqBundle 允许你在网站上展示 FAQ,问题按类别分组。功能
- 问题按类别分组
- 可以停用类别
- 问题可以草稿并安排发布
- 可以一次性显示所有信息,或折叠问题/类别以适应大型 FAQ。这基本上取决于你在模板中的处理方式
- 折叠模式生成对 SEO 友好的 URL
- 包含非常简单的 mysql 搜索 - 如果需要更高级的搜索,请使用 elasticsearch
要求
查看 composer.json
安装
将以下内容添加到你的 composer.json 中
...
"require": {
...
"gedmo/doctrine-extensions": "~2.3,<3.0",
"genj/faq-bundle": "dev-master"
...
然后运行 composer update
。完成后,在 AppKernel.php 中启用该包
# app/AppKernel.php
class AppKernel extends Kernel
{
public function registerBundles() {
$bundles = array(
...
new Genj\FaqBundle\GenjFaqBundle()
...
将路由规则添加到你的 routing.yml
# app/config/routing.yml
genj_faq:
resource: "@GenjFaqBundle/Resources/config/routing.yml"
最后,更新你的数据库模式
php bin/console doctrine:schema:update --dump-sql
使用 --force
选项来执行实际的数据库更新。
完成。现在你应该能够通过 http://yourproject.com/faq URL 访问该包,前提是在你的数据库中至少添加了一个类别。
可选:加载 fixtures
如果你使用 doctrine-fixtures 包,你可以这样加载 fixtures
php bin/console doctrine:fixtures:load --fixtures=vendor/genj/faq-bundle/src/Genj/FaqBundle/DataFixtures/
配置
你可以选择将以下配置添加到你的 config.yml
genj_faq:
select_first_category_by_default: false
select_first_question_by_default: false
这两个配置都会默认打开第一个类别和/或问题,如果用户尚未选择类别和/或问题。默认值都是 'false',所以如果你想这种行为,请将其设置为 'true'。
请注意,还需要为 gedmo/doctrine-extensions 配置 Sluggable 和 Timestampable 行为(参见 https://github.com/Atlantic18/DoctrineExtensions)。
高级
如果你想获取默认类别列表以及所有问题和答案之外的内容,你不应该导入包路由,只需复制你实际使用的部分。
例如,如果你想为每个问题创建单独的页面,请使用 genj_faq_question_show
路由。
有关更多示例,请参阅 https://github.com/genj/faq-demo
FAQ
- 如何将其添加到 SonataAdmin?
你可以使用 GenjFaqAdminBundle:https://github.com/genj/GenjFaqAdminBundle,或者只需创建自己的管理类。