fbeen/contactformbundle

此Bundle在您的Symfony项目中添加了contactform集成。它允许您渲染和处理contactform并将其添加到数据库中。包含用于在管理面板中查看联系请求的Sonata管理类。

安装: 11

依赖者: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

V1.0.4 2018-07-13 20:13 UTC

This package is not auto-updated.

Last update: 2024-09-22 03:08:48 UTC


README

此Bundle在您的Symfony项目中添加了contactform集成。它允许您渲染和处理contactform并将其添加到数据库中。包含用于在管理面板中查看联系请求的Sonata管理类。

特性包括

  • Doctrine ORM数据库存储您的联系请求
  • Bootstrap就绪页面和表单
  • Sonata管理集成
  • 仅通过他们的电子邮件地址和密码登录
  • 向管理员和/或用户发送确认邮件
  • 使用您自己的ContactRequest实体
  • 使用您自己的ContactRequest表单类型

安装

使用composer

  1. "fbeen/contactformbundle": "dev-master"添加到您的composer.json项目文件的require部分。
    "require": {
        ...
        "fbeen/contactformbundle": "dev-master"
    },
  1. 运行composer update

    $ composer update

  2. 将Bundle添加到app/AppKernel.php

        $bundles = array(
            ...
            new Fbeen\MailerBundle\FbeenMailerBundle(),
            new Fbeen\ContactformBundle\FbeenContactformBundle(),
        );
  1. 将路由添加到app/config/routing.yml
fbeen_user:
    resource: "@FbeenContactformBundle/Resources/config/routing.yml"
    prefix:   /contact
  1. app/config/config.yml中启用翻译
parameters:
    locale: en

framework:
    translator:      { fallbacks: ["%locale%"] }
  1. 更新您的数据库模式
$ bin/console doctrine:schema:update --force
  1. [可选] 在app/config/config.yml中添加FbeenContactformBundle的最小配置。这是所有配置参数及其默认值
fbeen_contactform:
    base_template: "FbeenContactformBundle::base.html.twig"
    redirect_after_submit: fbeen_contactform_confirmation
    contact_request_entity: Fbeen\ContactformBundle\Entity\ContactRequest
    contact_form_type: Fbeen\ContactformBundle\Form\ContactRequestType
    email_users: true
    email_users: false
  1. [可选] 使用您自己的ContactRequest实体。这就像创建任何实体一样简单。只有两件事
  • 您的实体必须实现Fbeen\ContactformBundle\Model\ContactRequestInterface
<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Fbeen\ContactformBundle\Model\ContactRequestInterface;

/**
 * ContactRequest
 *
 * @ORM\Table(name="fbeen_contact_request")
 * @ORM\Entity
 */
class ContactRequest implements ContactRequestInterface
{
    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=255, nullable=true)
     */
    private $email;
    
    // add more properties
    
    
    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set email
     *
     * @param string $email
     *
     * @return ContactRequest
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }
    
    // add more methods
}

  • 您必须将FQDN添加到配置中
fbeen_contactform:
    contact_request_entity: AppBundle\Entity\ContactRequest
  1. [可选] 使用您自己的formType。这就像创建任何formType并添加配置一样简单
<?php

namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ContactRequestType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('email', 'email', array(
                'label' => 'form.email',
                'required' => true
            ))
        ;
    }
    
    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Fbeen\ContactformBundle\Entity\ContactRequest',
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'fbeen_contactformbundle_contactrequest';
    }
}
  • 您必须将FQDN添加到配置中
fbeen_contactform:
    contact_form_type: AppBundle\Form\ContactRequestType