Skip to content
Grav 2.0 is officially stable. Read the announcement →

Community guidelines

Please keep discussions civil and on-topic. Repeated violations may lead to a temporary ban.

Forms & Blueprints

Getting modular form to work with Typhoon template

form

Solved by pamtbaau View solution

Started by Ton Haarmans 5 years ago · 13 replies · 1135 views
5 years ago

Hello, I've been trying for hours to get the form working in the modular page of the Typhoon theme. The documentation does not seem up to date. I need any help I can get. I have filled in the to and from email addresses in the email plugin. I am developing on localhost (webserver Laragon)

This is the frontmatter I am using:

YAML
---
title: 'Neem contact op'
subtitle: 'Meer informatie nodig?'
section_classes: 'bg-primary-darker text-primary-lighter py-8 md:py-24'
title_text: light
form:
    name: contact
    action: /#neem-contact-op
    inline_errors: true
    fields:
        name:
            label: Name
            display_label: false
            placeholder: '* Je naam'
            autocomplete: 'on'
            type: text
            validate:
                required: true
        email:
            label: Email
            display_label: false
            placeholder: '* Je emailadres'
            type: email
            validate:
                required: true
        phone:
            label: Phone
            display_label: false
            placeholder: 'Je telefoonnummer (optioneel)'
            type: text
        message:
            label: Message
            display_label: false
            placeholder: '* Je bericht'
            type: textarea
            rows: 4
            validate:
                required: true
    buttons:
        submit:
            type: submit
            classes: 'bg-gray-600 hover:bg-gray-900'
            value: 'Versturen'
    process:
        message: '<b>Merci!</b> Wij hebben je bericht gekregen en zullen asap contact opnemen.'
last edited 02/03/21 by Ton Haarmans
5 years ago

@TonHaarmans, I have no Typhoon license, so I cannot help you with that specific theme.

However... is seems to be more of a form issue then a theme issue.

  • For clarity's sake: What is not working? The sending of the email?
  • If so, at first sight, I'm missing something like:
    TWIG
    process:
    email:
      from: "{{ config.plugins.email.from }}"
      to: "{{ config.plugins.email.to }}"
      subject: "[Site Contact Form] {{ form.value.name|e }}"
      body: "{% include 'forms/data.html.twig' %}"  
    
  • If that didn't solve it, does the form work when using Quark?
  • Have you been able to send emails using Laragon before?
last edited 02/03/21 by pamtbaau
5 years ago

As @pamtbaau said, you first need a process.email config part. But still, I wasn't able to make Swiftmailer work on Laragon (TBH didn't try much), had to set up SMTP and it worked perfectly fine

5 years ago

Hi, Thanks for your reply
If I add the lines you suggested to process, then when submitting I get the following error:

Server Error
Sorry, something went terribly wrong!

0 - Process could not be started [The system cannot find the path specified. ]

BTW, I never managed to send a form with Quark. I used formmail.php instead...
And I am very new to Laragon. Have to look into that...

Thanks

5 years ago

@TonHaarmans, Not knowing much about your infra, I can only ask questions...

  • What is the error output of '/logs/grav.log'
  • What's is the content of '/user/config/plugins/email.yaml'
    Don't forget to remove any sensitive data...
  • Have you had a chance to consult the README of plugin Email?
5 years ago

Thanks again for your patience and replying!
This is email.yaml:

YAML
enabled: true
from: <my email address>
from_name: <my name>
to: <my email address>
to_name: <my name>
queue:
  enabled: false
  flush_frequency: '* * * * *'
  flush_msg_limit: 10
  flush_time_limit: 100
mailer:
  engine: sendmail
  smtp:
    server: smtp.gmail.com
    port: 465
    encryption: none
    user: <my gmail email-address>
    password: <my gmail password>
    auth_mode: OAuth2
  sendmail:
    bin: '/usr/sbin/sendmail -bs'
content_type: text/html
debug: false
charset: null
cc: null
cc_name: null
bcc: null
reply_to: null
reply_to_name: null
body: null
last edited 02/04/21 by pamtbaau
5 years ago

And here is grav.log
[2021-02-04 07:07:19] grav.CRITICAL: Process could not be started [Het systeem kan het opgegeven pad niet vinden. ] - Trace: #0 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php(54): Swift_Transport_StreamBuffer->establishProcessConnection() #1 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(143): Swift_Transport_StreamBuffer->initialize(Array) #2 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\SendmailTransport.php(50): Swift_Transport_AbstractSmtpTransport->start() #3 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mailer.php(65): Swift_Transport_SendmailTransport->start() #4 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\classes\Email.php(110): Swift_Mailer->send(Object(Swift_Message)) #5 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\email.php(163): Grav\Plugin\Email\Email->send(Object(Swift_Message)) #6 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\email.php(105): Grav\Plugin\EmailPlugin->sendFormEmail(Object(Grav\Plugin\Form\Form), Array, Array) #7 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(264): Grav\Plugin\EmailPlugin->onFormProcessed(Object(RocketTheme\Toolbox\Event\Event), 'onFormProcessed', Object(Symfony\Component\EventDispatcher\EventDispatcher)) #8 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onFormProcessed', Object(RocketTheme\Toolbox\Event\Event)) #9 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'onFormProcessed', Object(RocketTheme\Toolbox\Event\Event)) #10 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Grav.php(537): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(RocketTheme\Toolbox\Event\Event), 'onFormProcessed') #11 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\form\classes\Form.php(919): Grav\Common\Grav->fireEvent('onFormProcessed', Object(RocketTheme\Toolbox\Event\Event)) #12 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\form\form.php(275): Grav\Plugin\Form\Form->post() #13 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(264): Grav\Plugin\FormPlugin->onPageInitialized(Object(RocketTheme\Toolbox\Event\Event), 'onPageInitializ...', Object(Symfony\Component\EventDispatcher\EventDispatcher)) #14 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) #15 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) #16 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Grav.php(537): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(RocketTheme\Toolbox\Event\Event), 'onPageInitializ...') #17 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\PagesProcessor.php(44): Grav\Common\Grav->fireEvent('onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) #18 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\PagesProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #19 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #20 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\TwigProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #21 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\TwigProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #22 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #23 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\AssetsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #24 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\AssetsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #25 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #26 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\SchedulerProcessor.php(40): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #27 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\SchedulerProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #28 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #29 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\BackupsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #30 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\BackupsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #31 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #32 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\TasksProcessor.php(69): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #33 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\TasksProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #34 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #35 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\RequestProcessor.php(63): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #36 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\RequestProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #37 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #38 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\ThemesProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #39 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\ThemesProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #40 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #41 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\PluginsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #42 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\PluginsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #43 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #44 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\InitializeProcessor.php(128): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #45 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Debugger.php(546): Grav\Common\Processors\InitializeProcessor::Grav\Common\Processors\{closure}() #46 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\InitializeProcessor.php(129): Grav\Common\Debugger->profile(Object(Closure)) #47 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\InitializeProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #48 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #49 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Grav.php(282): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #50 C:\Users\haarm\Documents\Sites\Curiosity\index.php(58): Grav\Common\Grav->process() #51 {main} [] []

5 years ago

I did read just now the readme of the email plugin. It suggests to use the service of for instance SendGrid. I did not try that yet. I use gmail for my regular emails I send with Thunderbird...

5 years ago Solution

@TonHaarmans,

Took the liberty to use your config and adapted it according the Gmail section in the README of the email plugin.

YAML
mailer:
  engine: smtp  # <-- Tell Email plugin to use the smpt definition.
  smtp:
    server: smtp.gmail.com
    port: 587            # <-- different port
    encryption: tls      # <-- different encryption
    user: <your name>
    password: <your password>;

I now get a authentication error from Google Gmail. Which means, there is communication with Gmail, but login fails.

Maybe you need a look at the 3 setup steps noted in the readme:

  1. Enable IMAP in your Gmail Settings -> Forwarding and POP/IMAP -> IMAP Access
  2. Enable Less secure apps in your user account settings
  3. If you have 2-factor authentication, you will need to create a unique application password to use rather than your personal password
last edited 02/04/21 by pamtbaau
5 years ago

Got it and made the changes. Now I get a new error: 0 - Auth mode oauth2 is invalid. I tried the value none and I also left the value empty., but got the same error.

Perhaps the login with Gmail failed because I changed the password...

5 years ago

@TonHaarmans, Maybe my snippet wasn't clear enough about the auth_mode: OAuth2 setting.

Values of OAuth2, none and ' ' do indeed throw errors. No value, or `` do not throw errors (in my test setup) , but you can also remove it as shown in my snippet.

You might then get the error from Gmail that authentication failed. See the 3 setup steps mentioned.

last edited 02/04/21 by pamtbaau
5 years ago

I got it working!!!!! Thanks a lot for bearing with me. I apparently had to Enable Less secure apps. My god! This stuff is not simple.

5 years ago

Maybe carefully reading the setup docs in the README of the plugin might have made it a bit easier? ;-)

last edited 02/04/21 by pamtbaau
4 months ago

Столкнулся с такой же проблеммой. Тайфун конфликтует с модулем формы. Чтобы решить отправку писем через модуль емаил нужно в файле:

user/pages/..../..../contact.md
вписать строку email после process

process:

  • email: # ← ДОБАВЛЕНО: отправка письма

I encountered the same problem. Typhoon conflicts with the form module.
To enable email sending through the email module, you need to add the email line after process in the file:

user/pages/…/…/contact.md

process:

TWIG
        - email:                    # ← ДОБАВЛЕНО: отправка письма
            subject: "Сообщение с сайта meizer.kz"
            body: "{% include 'forms/data.html.twig' %}"
            from: "{{ config.plugins.email.from }}"
            to: "{{ config.plugins.email.to }}"
last edited 02/14/26 by Stanislav

Suggested topics

Topic Participants Replies Views Activity
Forms & Blueprints · by Hugo Oliveira, 5 months ago
0 61 5 months ago
Forms & Blueprints · by Flachy Joe, 6 months ago
9 134 6 months ago
Forms & Blueprints · by Augustus, 7 months ago
7 108 7 months ago
Forms & Blueprints · by Julien, 7 months ago
10 128 7 months ago
Forms & Blueprints · by Rayburn Davis, 7 months ago
4 92 7 months ago