Concrete5 8.3.2全局区域表单提交页面来源追踪问题及解决
解决Concrete5 8.3.2全局区域Express Form提交邮件无法识别来源页面的问题
如果你在Concrete5 8.3.2中遇到这样的困扰:在全局区域(Global Area)添加的Express Form Block,用户提交表单后收到的邮件通知里,只能看到表单名称、提交内容和后台查看链接,完全没法区分表单来自哪个具体页面(毕竟全局区域的表单名称都是一致的),而且尝试了旧版本中修改express_form > controller.php并调用$page->getCollectionName()的方案却不生效,那可以试试下面这个可行的解决方法:
具体解决方案
修改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);
实现效果
这段代码会在邮件内容中新增表单提交页面的名称字段,从此你就能一眼明确当前的表单提交来自哪个页面,完美解决来源识别的问题。
内容的提问来源于stack exchange,提问作者Mesign
相关产品推荐
相关产品推荐

