CMS: concrete5
Версия: 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);
Бетон5 использует /concrete/mail/block_form_submission.php
шаблон электронной почты для отправки уведомлений о подаче экспресс-формы.
Вы можете настроить этот шаблон, скопировав этот файл в /application/mail
папка и редактирование.
Например, чтобы добавить имя страницы, вы можете добавить эти строки:
$c = Page::getCurrentPage();
$body .= "\n" . t('Page name: %s', $c->getCollectionName());
Других решений пока нет …