37 public function convert(array $typoscript) {
39 $jsonObject = $this->createElement(
'form', $typoscript);
51 public function createElement($class, array $arguments = array()) {
52 $class = strtolower((
string) $class);
53 $className =
'TYPO3\\CMS\\Form\\Domain\\Model\Json\\' . ucfirst($class) .
'JsonElement';
55 if (!class_exists($className)) {
56 throw new \RuntimeException(
'Class "' . $className .
'" does not exist', 1440779351);
62 $object->setParameters($arguments);
63 if ($object->childElementsAllowed()) {
78 if (is_array($typoscript)) {
80 foreach ($keys as $key) {
81 $class = $typoscript[$key];
82 if ((
int)$key && strpos($key,
'.') === FALSE) {
83 if (isset($typoscript[$key .
'.'])) {
84 $elementArguments = $typoscript[$key .
'.'];
86 $elementArguments = array();
105 private function setElementType(\
TYPO3\CMS\Form\Domain\Model\Json\AbstractJsonElement $parentElement, $class, array $arguments) {
107 if (strstr($arguments[
'class'],
'predefined-name')) {
110 $this->
addElement($parentElement, $class, $arguments);
122 public function addElement(\
TYPO3\CMS\Form\Domain\Model\Json\AbstractJsonElement $parentElement, $class, array $arguments) {
124 $element = $this->createElement($class, $arguments);
125 $parentElement->addElement($element);
126 }
catch (\RuntimeException $exception) {
141 if (isset($typoscript[
'rules.']) && is_array($typoscript[
'rules.'])) {
142 $this->validationRules = $typoscript[
'rules.'];
157 $validationRulesAvailable = FALSE;
158 if (!empty($this->validationRules) && isset($arguments[
'name'])) {
159 foreach ($this->validationRules as $key => $ruleName) {
160 if ((
int)$key && strpos($key,
'.') === FALSE) {
161 if (isset($this->validationRules[$key .
'.'])) {
162 $ruleConfiguration = $this->validationRules[$key .
'.'];
163 if (isset($ruleConfiguration[
'element']) && $ruleConfiguration[
'element'] === $arguments[
'name']) {
164 $arguments[
'validation'][$ruleName] = $ruleConfiguration;
static makeInstance($className)
static sortedKeyList($setupArr, $acceptOnlyProperties=FALSE)