Spaces:
No application file
No application file
File size: 1,505 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php
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;
}
}
|