Отправка формы с определенной страницы (Concrete5 8.3.2) - PullRequest
0 голосов
/ 18 мая 2018

CMS: Бетон5 Версия: 8.3.2

Я добавил блок экспресс-формы в глобальную область.Если кто-то заполняет форму, я получаю ответ по электронной почте.В ответе по электронной почте не ясно, с какой конкретной страницы отправляется форма.Он показывает только имя формы (одинаковое на всех страницах из-за глобальной области), результаты формы и ссылку на результат в CMS.

Поэтому мне нужно вставить что-то вроде $page->getCollectionName() в express_form > controller.php

Я нашел ссылку (https://www.concrete5.org/community/forums/customizing_c5/form-submission-from-specific-page/#905411), но это для более старой версии и не работает в последней версии.

Любые идеи?

РЕДАКТИРОВАТЬ РЕШЕНИЕ:

Отредактировано: block_express_form_submission.php

<?php

defined('C5_EXECUTE') or die("Access Denied.");

$formDisplayUrl = URL::to('/dashboard/reports/forms', 'view', $entity->getEntityResultsNodeId());
$c = Page::getCurrentPage();

$submittedData = '';
foreach($attributes as $value) {
    $submittedData .= $value->getAttributeKey()->getAttributeKeyDisplayName('text') . ":\r\n";
    $submittedData .= $value->getPlainTextValue() . "\r\n\r\n";
}

$body = t("
Form pagename: %s
Form name: %s 

%s

View all form results %s 

", $c->getCollectionName(), $formName, $submittedData, $formDisplayUrl);

1 Ответ

0 голосов
/ 22 мая 2018

concrete5 использует шаблон электронной почты /concrete/mail/block_form_submission.php для отправки уведомлений о отправке экспресс-форм.

Вы можете настроить этот шаблон, скопировав этот файл в папку /application/mail и отредактировав его.

Например, чтобы добавить имя страницы, вы можете добавить следующие строки:

$c = Page::getCurrentPage();
$body .= "\n" . t('Page name: %s', $c->getCollectionName());
...