Made some improvements to the compiler and extended the email helper features.

This commit is contained in:
2016-06-23 16:05:37 +01:00
parent d82d4aeb22
commit 2004b8d91c
369 changed files with 1019 additions and 1013 deletions

View File

@ -655,100 +655,104 @@ class Fields extends Structure
*/
public function setDynamicField(&$field, &$view, &$viewType, &$langView, &$viewName, &$listViewName, &$spacerCounter, &$placeholders, &$dbkey, $build)
{
$name = ComponentbuilderHelper::safeString($field['settings']->name);
$typeName = ComponentbuilderHelper::safeString($field['settings']->type_name);
$multiple = false;
$langLabel = '';
$taber = '';
$fieldSet = '';
// set field attributes
$fieldAttributes = $this->setFieldAttributes($field, $viewType, $name, $typeName, $multiple, $langLabel, $langView, $spacerCounter, $listViewName, $viewName, $placeholders);
// check if values were set
if (ComponentbuilderHelper::checkArray($fieldAttributes))
if (isset($field['settings']) && ComponentbuilderHelper::checkObject($field['settings']))
{
// set the array of field names
$this->setFieldsNames($viewName,$fieldAttributes['name']);
if ($this->defaultField($typeName, 'option'))
$name = ComponentbuilderHelper::safeString($field['settings']->name);
$typeName = ComponentbuilderHelper::safeString($field['settings']->type_name);
$multiple = false;
$langLabel = '';
$taber = '';
$fieldSet = '';
// set field attributes
$fieldAttributes = $this->setFieldAttributes($field, $viewType, $name, $typeName, $multiple, $langLabel, $langView, $spacerCounter, $listViewName, $viewName, $placeholders);
// check if values were set
if (ComponentbuilderHelper::checkArray($fieldAttributes))
{
//reset options array
$optionArray = array();
// now add to the field set
$fieldSet .= $this->setField('option', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
if ($build)
// set the array of field names
$this->setFieldsNames($viewName,$fieldAttributes['name']);
if ($this->defaultField($typeName, 'option'))
{
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple, false, $optionArray);
}
}
elseif ($this->defaultField($typeName, 'plain'))
{
if ($build)
{
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple);
}
// now add to the field set
$fieldSet .= $this->setField('plain', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
}
elseif ($this->defaultField($typeName, 'spacer'))
{
if ($build)
{
// make sure spacers gets loaded to layout
$tabName = '';
if (isset($view['settings']->tabs) && isset($view['settings']->tabs[(int) $field['tab']]))
//reset options array
$optionArray = array();
// now add to the field set
$fieldSet .= $this->setField('option', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
if ($build)
{
$tabName = $view['settings']->tabs[(int) $field['tab']];
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple, false, $optionArray);
}
elseif ((int) $field['tab'] == 15)
{
// set to publishing tab
$tabName = 'publishing';
}
$this->setLayoutBuilder($viewName, $tabName, $name, $field);
}
// now add to the field set
$fieldSet .= $this->setField('spacer', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
// increment spacer counter
if ($typeName == 'spacer')
{
$spacerCounter++;
}
}
elseif ($this->defaultField($typeName, 'special'))
{
// set the repeatable field
if ($typeName == 'repeatable')
elseif ($this->defaultField($typeName, 'plain'))
{
if ($build)
{
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple, false);
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple);
}
// now add to the field set
$fieldSet .= $this->setField('special', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
$fieldSet .= $this->setField('plain', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
}
}
elseif (ComponentbuilderHelper::checkArray($fieldAttributes['custom']))
{
// set the custom array
$custom = $fieldAttributes['custom'];
unset($fieldAttributes['custom']);
// set db key
$custom['db'] = $dbkey;
// increment the db key
$dbkey++;
if ($build)
elseif ($this->defaultField($typeName, 'spacer'))
{
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple, $custom);
if ($build)
{
// make sure spacers gets loaded to layout
$tabName = '';
if (isset($view['settings']->tabs) && isset($view['settings']->tabs[(int) $field['tab']]))
{
$tabName = $view['settings']->tabs[(int) $field['tab']];
}
elseif ((int) $field['tab'] == 15)
{
// set to publishing tab
$tabName = 'publishing';
}
$this->setLayoutBuilder($viewName, $tabName, $name, $field);
}
// now add to the field set
$fieldSet .= $this->setField('spacer', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
// increment spacer counter
if ($typeName == 'spacer')
{
$spacerCounter++;
}
}
elseif ($this->defaultField($typeName, 'special'))
{
// set the repeatable field
if ($typeName == 'repeatable')
{
if ($build)
{
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple, false);
}
// now add to the field set
$fieldSet .= $this->setField('special', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
}
}
elseif (ComponentbuilderHelper::checkArray($fieldAttributes['custom']))
{
// set the custom array
$custom = $fieldAttributes['custom'];
unset($fieldAttributes['custom']);
// set db key
$custom['db'] = $dbkey;
// increment the db key
$dbkey++;
if ($build)
{
// set builders
$this->setBuilders($langLabel, $langView, $viewName, $listViewName, $name, $view, $field, $typeName, $multiple, $custom);
}
// now add to the field set
$fieldSet .= $this->setField('custom', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
}
// now add to the field set
$fieldSet .= $this->setField('custom', $taber, $fieldAttributes, $name, $typeName, $langView, $viewName, $listViewName, $placeholders, $optionArray);
}
return $fieldSet;
}
return $fieldSet;
return '';
}
/**