Spaces:
No application file
No application file
| namespace Mautic\FormBundle\Helper; | |
| use Mautic\CoreBundle\Security\Permissions\CorePermissions; | |
| use Mautic\FormBundle\Model\FormModel; | |
| class TokenHelper | |
| { | |
| public function __construct( | |
| protected FormModel $formModel, | |
| protected CorePermissions $security | |
| ) { | |
| } | |
| public function findFormTokens($content): array | |
| { | |
| $tokens = []; | |
| preg_match_all('/{form=(.*?)}/', $content, $matches); | |
| if (count($matches[0])) { | |
| foreach ($matches[1] as $k => $id) { | |
| $token = $matches[0][$k]; | |
| if (isset($tokens[$token])) { | |
| continue; | |
| } | |
| $form = $this->formModel->getEntity($id); | |
| if (null !== $form | |
| && ( | |
| $form->isPublished(false) | |
| || $this->security->hasEntityAccess( | |
| 'form:forms:viewown', 'form:forms:viewother', $form->getCreatedBy() | |
| ) | |
| ) | |
| ) { | |
| $formHtml = ($form->isPublished()) ? $this->formModel->getContent($form) : | |
| ''; | |
| // pouplate get parameters | |
| $this->formModel->populateValuesWithGetParameters($form, $formHtml); | |
| $tokens[$token] = $formHtml; | |
| } else { | |
| $tokens[$token] = ''; | |
| } | |
| } | |
| } | |
| return $tokens; | |
| } | |
| } | |