Spaces:
No application file
No application file
namespace Mautic\ConfigBundle\Event; | |
use Mautic\CoreBundle\Helper\BundleHelper; | |
use Symfony\Contracts\EventDispatcher\Event; | |
class ConfigBuilderEvent extends Event | |
{ | |
/** | |
* @var mixed[] | |
*/ | |
private array $forms = []; | |
/** | |
* @var string[] | |
*/ | |
private array $formThemes = [ | |
'@MauticConfig/FormTheme/_config_file_row.html.twig', | |
'@MauticConfig/FormTheme/dsn_row.html.twig', | |
]; | |
/** | |
* @var string[] | |
*/ | |
protected array $encodedFields = []; | |
public function __construct( | |
private BundleHelper $bundleHelper | |
) { | |
} | |
/** | |
* Set new form to the forms array. | |
* | |
* @return $this | |
*/ | |
public function addForm(array $form) | |
{ | |
if (isset($form['formTheme'])) { | |
$this->formThemes[] = $form['formTheme']; | |
} | |
$this->forms[$form['formAlias']] = $form; | |
return $this; | |
} | |
/** | |
* Remove a form to the forms array. | |
* | |
* @param string $formAlias | |
*/ | |
public function removeForm($formAlias): bool | |
{ | |
if (isset($this->forms[$formAlias])) { | |
unset($this->forms[$formAlias]); | |
return true; | |
} | |
return false; | |
} | |
/** | |
* Returns the forms array. | |
* | |
* @return array | |
*/ | |
public function getForms() | |
{ | |
return $this->forms; | |
} | |
/** | |
* Returns the formThemes array. | |
* | |
* @return array | |
*/ | |
public function getFormThemes() | |
{ | |
return $this->formThemes; | |
} | |
/** | |
* Get default parameters from config defined in bundles. | |
* | |
* @return array | |
*/ | |
public function getParametersFromConfig($bundle) | |
{ | |
static $allBundles; | |
if (empty($allBundles)) { | |
$allBundles = $this->bundleHelper->getMauticBundles(true); | |
} | |
if (isset($allBundles[$bundle]) && $allBundles[$bundle]['config']['parameters']) { | |
return $allBundles[$bundle]['config']['parameters']; | |
} else { | |
return []; | |
} | |
} | |
/** | |
* @return $this | |
*/ | |
public function addFileFields($fields) | |
{ | |
$this->encodedFields = array_merge($this->encodedFields, (array) $fields); | |
return $this; | |
} | |
/** | |
* @return array | |
*/ | |
public function getFileFields() | |
{ | |
return $this->encodedFields; | |
} | |
} | |