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; | |
} | |
} | |