th3mouk / contact-bundle
此包已废弃,不再维护。未建议替代包。
Symfony Th3MoukContactBundle 用于通过网站简化联系表单的生成。
1.2.0
2016-01-28 10:52 UTC
Requires
- symfony/symfony: ^2.3
- th3mouk/mailer: ^1.0
Requires (Dev)
- fabpot/php-cs-fixer: ^0.5|^1.0
This package is auto-updated.
Last update: 2021-10-04 21:12:25 UTC
README
此 Symfony 包提供了管理联系表单的基础。
目标是简化网站联系表单。
安装
php composer.phar require th3mouk/contact-bundle ^1.2
添加到 appKernel.php
new Th3Mouk\ContactBundle\Th3MoukContactBundle(),
更新你的 routing.yml
应用程序文件。
th3mouk_contact: resource: "@Th3MoukContactBundle/Resources/config/routing.yml" prefix: /contact
在 config.yml
中配置实体和模板
th3mouk_contact: datas: from: noreply@domain.com to: - test.mail@domain.com subject: Contact request from your website class: entity: AppBundle\Entity\Contact formType: AppBundle\Form\ContactType templates: application: AppBundle:Contact:contact.html.twig mailer: AppBundle:Contact:mail.html.twig flash_messages: success: contact.mail.success error: contact.mail.error
使用
使用 app/console d:g:entity
创建实现 Th3Mouk\ContactBundle\Entity\ContactInterface
的 Contact
实体。
生成相关的 FormType: app/console d:g:f AppBundle:Contact
。
为前端和邮件创建两个模板,你可以访问 form
对象来绘制你的表单,以及在邮件模板中的 contact
对象。
查看以下示例
联系类型示例
namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; class ContactType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name') ->add('adress') ->add('zipCode') ->add('city') ->add('phone') ->add('email', 'email') ->add('message') ; } /** * @param OptionsResolver $resolver */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'AppBundle\Entity\Contact', )); } /** * @return string */ public function getName() { return 'app_contact_type'; } }
表单模板示例
<h1>Contact Request</h1> {{ form_start(form) }} {{ form_row(form.name) }} {{ form_row(form.adress) }} {{ form_row(form.zipCode) }} {{ form_row(form.city) }} {{ form_row(form.phone) }} {{ form_row(form.email) }} {{ form_row(form.message) }} <div class="form-group"><button type="submit" class="btn-default btn">Submit</button></div> {{ form_rest(form) }} {{ form_end(form) }}
邮件模板示例
{{ contact.name }}<br> {{ contact.adress }}<br> {{ contact.zipCode }}<br> {{ contact.city }}<br> {{ contact.phone }}<br> {{ contact.email }}<br> {{ contact.message }}
Sonata 集成示例
首先使用 app/console sonata:admin:generate
命令。
然后添加服务配置
app.admin.contact: class: AppBundle\Admin\ContactAdmin arguments: [~, AppBundle\Entity\Contact, SonataAdminBundle:CRUD] tags: - {name: sonata.admin, manager_type: orm, label: Contacts}
在仪表板上添加管理组
sonata.admin.group.contact: label: Contact label_catalogue: SonataPageBundle icon: '<i class="fa fa-envelope"></i>' items: - app.admin.contact roles: [ ROLE_ADMIN ]
别忘了在块上添加此组
sonata_admin: dashboard: blocks: - { position: left, type: sonata.admin.block.admin_list, settings: { groups: [...sonata.admin.group.contact...] }}
完成!👍
事件
在邮件发送前后,你可以访问两个事件
请
请随意改进此包。