Fixed gh-108 to insure that all fields get added if multiple zeros are found. Improved the default value options in global config to allow for array of default values. Fixed typo forward slash.

This commit is contained in:
2017-08-12 12:47:25 +01:00
parent fb7b5027c2
commit e003be492c
206 changed files with 245 additions and 210 deletions

View File

@ -61,6 +61,13 @@ class Fields extends Structure
*/
public $layoutBuilder = array();
/**
* used to fix the zero order
*
* @var array
*/
private $zeroOrderFix = array();
/**
* Site field data
*
@ -470,7 +477,6 @@ class Fields extends Structure
{
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $this->placeholders, $dbkey, true);
}
// set the defautl fields
$fieldSet = array();
$fieldSet[] = '<fieldset name="details">';
@ -1161,6 +1167,26 @@ class Fields extends Structure
*/
public function setLayoutBuilder(&$viewName,&$tabName,&$name,&$field)
{
// first fix the zero order
// to insure it lands before all the other fields
// as zero is expected to behave
if ($field['order_edit'] == 0)
{
if (!isset($this->zeroOrderFix[$viewName]))
{
$this->zeroOrderFix[$viewName] = array();
}
if (!isset($this->zeroOrderFix[$viewName][(int) $field['tab']]))
{
$this->zeroOrderFix[$viewName][(int) $field['tab']] = -999;
}
else
{
$this->zeroOrderFix[$viewName][(int) $field['tab']]++;
}
$field['order_edit'] = $this->zeroOrderFix[$viewName][(int) $field['tab']];
}
// now build the layout
if (ComponentbuilderHelper::checkString($tabName) && $tabName != 'publishing')
{
$this->tabCounter[$viewName][(int) $field['tab']] = $tabName;

View File

@ -1772,7 +1772,7 @@ class Interpretation extends Fields
{
$string = "if (isset(" . $whe['value_key']. ") && ".$this->fileContentStatic['###Component###']."Helper::checkArray(" . $whe['value_key']. "))";
$string .= PHP_EOL."\t".$tabe."\t{";
$string .= PHP_EOL."\t".$tabe."\t\t\//".$this->setLine(__LINE__)." Get where ".$whe['table_key']." is " . $whe['value_key'];
$string .= PHP_EOL."\t".$tabe."\t\t//".$this->setLine(__LINE__)." Get where ".$whe['table_key']." is " . $whe['value_key'];
$string .= PHP_EOL."\t".$tabe."\t\t\$query->where('".$whe['table_key']." ".$whe['operator'].$value;
$string .= PHP_EOL."\t".$tabe."\t}";
$string .= PHP_EOL."\t".$tabe."\telse";
@ -2950,7 +2950,7 @@ class Interpretation extends Fields
{
foreach ($view['settings']->custom_buttons as $custom_button)
{
if ($custom_button['target'] != 2 || $this->target === 'site')
if (3 !== $type && ($custom_button['target'] != 2 || $this->target === 'site'))
{
// Load to lang
$keyLang = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($custom_button['name'],'U');
@ -2971,7 +2971,7 @@ class Interpretation extends Fields
$buttons[] = "\t".$tab."\t}";
}
// load the list button
elseif (3 == $type && ($custom_button['target'] == 2 || $custom_button['target'] == 3))
elseif (3 == $type && $custom_button['target'] != 1)
{
// Load to lang
$keyLang = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($custom_button['name'],'U');
@ -12042,8 +12042,17 @@ class Interpretation extends Fields
$fieldDefault = ComponentbuilderHelper::getBetween($xmlField,'default="','"');
if (isset($field['custom_value']) && ComponentbuilderHelper::checkString($field['custom_value']))
{
// load the Global checkin defautls
$this->paramsBuilder .= ',"'.$fieldName.'":"'.$field['custom_value'].'"';
// add array if found
if ((strpos($field['custom_value'], '["') !== false) && (strpos($field['custom_value'], '"]') !== false))
{
// load the Global checkin defautls
$this->paramsBuilder .= ',"'.$fieldName.'":'.$field['custom_value'];
}
else
{
// load the Global checkin defautls
$this->paramsBuilder .= ',"'.$fieldName.'":"'.$field['custom_value'].'"';
}
}
elseif (ComponentbuilderHelper::checkString($fieldDefault))
{