Refactored the setFilterFields and setStoredId in the compiler as still part of the new filter option improvement. gh-378

This commit is contained in:
Llewellyn van der Merwe 2020-11-21 08:01:26 +02:00
parent 2490123095
commit 5db5ac7bbb
Signed by untrusted user: Llewellyn
GPG Key ID: EFC0C720A240551C
23 changed files with 291 additions and 266 deletions

View File

@ -144,7 +144,7 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 20th November, 2020 + *Last Build*: 21st November, 2020
+ *Version*: 2.11.7 + *Version*: 2.11.7
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt

View File

@ -144,7 +144,7 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 20th November, 2020 + *Last Build*: 21st November, 2020
+ *Version*: 2.11.7 + *Version*: 2.11.7
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt

View File

@ -19627,16 +19627,25 @@ class Interpretation extends Fields
return $access; return $access;
} }
public function setFilterFields(&$view) /**
* set the filter fields
*
* @param string $name_list_code The list view name
*
* @return string The code for the filter fields array
*
*/
public function setFilterFields(&$name_list_code)
{ {
// keep track of all fields already added // keep track of all fields already added
$donelist = array('id', 'search', 'published', 'access', 'created_by', $donelist = array('id' => true, 'search' => true,
'modified_by'); 'published' => true, 'access' => true,
'created_by' => true, 'modified_by' => true);
// default filter fields // default filter fields
$fields = "'a.id','id'"; $fields = "'a.id','id'";
$fields .= "," . PHP_EOL . $this->_t(4) . "'a.published','published'"; $fields .= "," . PHP_EOL . $this->_t(4) . "'a.published','published'";
if (isset($this->accessBuilder[$view]) if (isset($this->accessBuilder[$name_list_code])
&& ComponentbuilderHelper::checkString($this->accessBuilder[$view])) && ComponentbuilderHelper::checkString($this->accessBuilder[$name_list_code]))
{ {
$fields .= "," . PHP_EOL . $this->_t(4) . "'a.access','access'"; $fields .= "," . PHP_EOL . $this->_t(4) . "'a.access','access'";
} }
@ -19646,22 +19655,55 @@ class Interpretation extends Fields
. "'a.modified_by','modified_by'"; . "'a.modified_by','modified_by'";
// add the rest of the set filters // add the rest of the set filters
if (isset($this->sortBuilder[$view]) if (isset($this->filterBuilder[$name_list_code])
&& ComponentbuilderHelper::checkArray($this->sortBuilder[$view])) && ComponentbuilderHelper::checkArray($this->filterBuilder[$name_list_code]))
{ {
foreach ($this->sortBuilder[$view] as $filter) foreach ($this->filterBuilder[$name_list_code] as $filter)
{ {
if (!in_array($filter['code'], $donelist)) if (!isset($donelist[$filter['code']]))
{ {
$fields .= $this->getFilterFieldCode($filter);
$donelist[$filter['code']] = true;
}
}
}
// add the rest of the set filters
if (isset($this->sortBuilder[$name_list_code])
&& ComponentbuilderHelper::checkArray($this->sortBuilder[$name_list_code]))
{
foreach ($this->sortBuilder[$name_list_code] as $filter)
{
if (!isset($donelist[$filter['code']]))
{
$fields .= $this->getFilterFieldCode($filter);
$donelist[$filter['code']] = true;
}
}
}
return $fields;
}
/**
* Add the code of the filter field array
*
* @param array $filter The field/filter array
*
* @return string The code for the filter array
*
*/
protected function getFilterFieldCode(&$filter)
{
// add the category stuff (may still remove these) TODO
if ($filter['type'] === 'category') if ($filter['type'] === 'category')
{ {
$fields .= "," . PHP_EOL . $this->_t(4) $field = "," . PHP_EOL . $this->_t(4)
. "'c.title','category_title'"; . "'c.title','category_title'";
$fields .= "," . PHP_EOL . $this->_t(4) $field .= "," . PHP_EOL . $this->_t(4)
. "'c.id', 'category_id'"; . "'c.id', 'category_id'";
if ($filter['code'] != 'category') if ($filter['code'] != 'category')
{ {
$fields .= "," . PHP_EOL . $this->_t(4) . "'a." $field .= "," . PHP_EOL . $this->_t(4) . "'a."
. $filter['code'] . "','" . $filter['code'] . $filter['code'] . "','" . $filter['code']
. "'"; . "'";
} }
@ -19670,68 +19712,43 @@ class Interpretation extends Fields
{ {
// check if custom field is set // check if custom field is set
if (ComponentbuilderHelper::checkArray( if (ComponentbuilderHelper::checkArray(
$filter['custom'] $filter['custom'])
)) && isset($filter['custom']['db'])
&& ComponentbuilderHelper::checkString(
$filter['custom']['db'])
&& isset($filter['custom']['text'])
&& ComponentbuilderHelper::checkString(
$filter['custom']['text']))
{ {
$fields .= "," . PHP_EOL . $this->_t(4) . "'" $field = "," . PHP_EOL . $this->_t(4) . "'"
. $filter['custom']['db'] . "." . $filter['custom']['db'] . "."
. $filter['custom']['text'] . "'"; . $filter['custom']['text'] . "','" . $filter['code']
. "'";
} }
else else
{ {
$fields .= "," . PHP_EOL . $this->_t(4) . "'a." $field = "," . PHP_EOL . $this->_t(4) . "'a."
. $filter['code'] . "','" . $filter['code'] . $filter['code'] . "','" . $filter['code']
. "'"; . "'";
} }
} }
$donelist[] = $filter['code']; return $field;
}
}
}
// add the rest of the set filters
if (isset($this->filterBuilder[$view])
&& ComponentbuilderHelper::checkArray($this->filterBuilder[$view]))
{
foreach ($this->filterBuilder[$view] as $filter)
{
if (!in_array($filter['code'], $donelist))
{
if ($filter['type'] === 'category')
{
$fields .= "," . PHP_EOL . $this->_t(4)
. "'c.title','category_title'";
$fields .= "," . PHP_EOL . $this->_t(4)
. "'c.id', 'category_id'";
if ($filter['code'] != 'category')
{
$fields .= "," . PHP_EOL . $this->_t(4) . "'a."
. $filter['code'] . "', '" . $filter['code']
. "'";
}
}
else
{
// check if custom field is set
/* if (ComponentbuilderHelper::checkArray($filter['custom']))
{
$fields .= ",".PHP_EOL.$this->_t(4) . "'".$filter['custom']['db'].".".$filter['custom']['text']."','".$filter['code']."_".$filter['custom']['text']."'";
} */
$fields .= "," . PHP_EOL . $this->_t(4) . "'a."
. $filter['code'] . "','" . $filter['code'] . "'";
}
$donelist[] = $filter['code'];
}
}
} }
return $fields; /**
} * set the sotred ids
*
public function setStoredId(&$view) * @param string $name_list_code The list view name
*
* @return string The code for the populate state
*
*/
public function setStoredId(&$name_list_code)
{ {
// keep track of all fields already added // keep track of all fields already added
$donelist = array('id', 'search', 'published', 'access', 'created_by', $donelist = array('id' => true, 'search' => true,
'modified_by'); 'published' => true, 'access' => true,
'created_by' => true, 'modified_by' => true);
// set the defaults first // set the defaults first
$stored = "//" . $this->setLine(__LINE__) . " Compile the store id."; $stored = "//" . $this->setLine(__LINE__) . " Compile the store id.";
$stored .= PHP_EOL . $this->_t(2) $stored .= PHP_EOL . $this->_t(2)
@ -19740,8 +19757,8 @@ class Interpretation extends Fields
. "\$id .= ':' . \$this->getState('filter.search');"; . "\$id .= ':' . \$this->getState('filter.search');";
$stored .= PHP_EOL . $this->_t(2) $stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.published');"; . "\$id .= ':' . \$this->getState('filter.published');";
if (isset($this->accessBuilder[$view]) if (isset($this->accessBuilder[$name_list_code])
&& ComponentbuilderHelper::checkString($this->accessBuilder[$view])) && ComponentbuilderHelper::checkString($this->accessBuilder[$name_list_code]))
{ {
$stored .= PHP_EOL . $this->_t(2) $stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.access');"; . "\$id .= ':' . \$this->getState('filter.access');";
@ -19753,52 +19770,48 @@ class Interpretation extends Fields
$stored .= PHP_EOL . $this->_t(2) $stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.modified_by');"; . "\$id .= ':' . \$this->getState('filter.modified_by');";
// add the rest of the set filters // add the rest of the set filters
if (isset($this->sortBuilder[$view]) if (isset($this->filterBuilder[$name_list_code])
&& ComponentbuilderHelper::checkArray($this->sortBuilder[$view])) && ComponentbuilderHelper::checkArray($this->filterBuilder[$name_list_code]))
{ {
foreach ($this->sortBuilder[$view] as $filter) foreach ($this->filterBuilder[$name_list_code] as $filter)
{ {
if (!in_array($filter['code'], $donelist)) if (!isset($donelist[$filter['code']]))
{ {
if ($filter['type'] === 'category') $stored .= $this->getStoredIdCode($filter);
{ $donelist[$filter['code']] = true;
$stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.category');";
$stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.category_id');";
if ($filter['code'] != 'category')
{
$stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter."
. $filter['code'] . "');";
}
}
else
{
// check if custom field is set
/* if (ComponentbuilderHelper::checkArray($filter['custom']))
{
$stored .= PHP_EOL.$this->_t(2) . "\$id .= ':' . \$this->getState('filter.".$filter['code']."_".$filter['custom']['text']."');";
} */
$stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter."
. $filter['code'] . "');";
}
$donelist[] = $filter['code'];
} }
} }
} }
// add the rest of the set filters // add the rest of the set filters
if (isset($this->filterBuilder[$view]) if (isset($this->sortBuilder[$name_list_code])
&& ComponentbuilderHelper::checkArray($this->filterBuilder[$view])) && ComponentbuilderHelper::checkArray($this->sortBuilder[$name_list_code]))
{ {
foreach ($this->filterBuilder[$view] as $filter) foreach ($this->sortBuilder[$name_list_code] as $filter)
{ {
if (!in_array($filter['code'], $donelist)) if (!isset($donelist[$filter['code']]))
{
$stored .= $this->getStoredIdCode($filter);
$donelist[$filter['code']] = true;
}
}
}
return $stored;
}
/**
* Add the code of the stored ids
*
* @param array $filter The field/filter array
*
* @return string The code for the stored IDs
*
*/
protected function getStoredIdCode(&$filter)
{ {
if ($filter['type'] === 'category') if ($filter['type'] === 'category')
{ {
$stored .= PHP_EOL . $this->_t(2) $stored = PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.category');"; . "\$id .= ':' . \$this->getState('filter.category');";
$stored .= PHP_EOL . $this->_t(2) $stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter.category_id');"; . "\$id .= ':' . \$this->getState('filter.category_id');";
@ -19811,19 +19824,10 @@ class Interpretation extends Fields
} }
else else
{ {
// check if custom field is set $stored = PHP_EOL . $this->_t(2)
/* if (ComponentbuilderHelper::checkArray($filter['custom']))
{
$stored .= PHP_EOL . $this->_t(2) . "\$id .= ':' . \$this->getState('filter.".$filter['code']."_".$filter['custom']['text']."');";
} */
$stored .= PHP_EOL . $this->_t(2)
. "\$id .= ':' . \$this->getState('filter." . "\$id .= ':' . \$this->getState('filter."
. $filter['code'] . "');"; . $filter['code'] . "');";
} }
$donelist[] = $filter['code'];
}
}
}
return $stored; return $stored;
} }
@ -20167,7 +20171,7 @@ class Interpretation extends Fields
$state = ''; $state = '';
// keep track of all fields already added // keep track of all fields already added
$donelist = array(); $donelist = array();
// add the default populate states // add the default populate states (this must be added first)
$state .= $this->setDefaultPopulateState($name_single_code); $state .= $this->setDefaultPopulateState($name_single_code);
// we must add the formSubmited code if new above filters is used // we must add the formSubmited code if new above filters is used
$new_filter = false; $new_filter = false;
@ -20186,10 +20190,10 @@ class Interpretation extends Fields
{ {
foreach ($this->filterBuilder[$name_list_code] as $filter) foreach ($this->filterBuilder[$name_list_code] as $filter)
{ {
if (!in_array($filter['code'], $donelist)) if (!isset($donelist[$filter['code']]))
{ {
$state .= $this->getPopulateStateFilterCode($filter['code'], $new_filter); $state .= $this->getPopulateStateFilterCode($filter, $new_filter);
$donelist[] = $filter['code']; $donelist[$filter['code']] = true;
} }
} }
} }
@ -20199,10 +20203,10 @@ class Interpretation extends Fields
{ {
foreach ($this->sortBuilder[$name_list_code] as $filter) foreach ($this->sortBuilder[$name_list_code] as $filter)
{ {
if (!in_array($filter['code'], $donelist)) if (!isset($donelist[$filter['code']]))
{ {
$state .= $this->getPopulateStateFilterCode($filter['code'], $new_filter); $state .= $this->getPopulateStateFilterCode($filter, $new_filter);
$donelist[] = $filter['code']; $donelist[$filter['code']] = true;
} }
} }
} }
@ -20213,18 +20217,31 @@ class Interpretation extends Fields
/** /**
* Add the code of the filter in the populate state * Add the code of the filter in the populate state
* *
* @param string $key The field key (code) * @param array $filter The field/filter array
* @param bool $new_filter The switch to use the new filter * @param bool $new_filter The switch to use the new filter
* @param string $extra The defaults/extra options of the filter * @param string $extra The defaults/extra options of the filter
* *
* @return string The code for the populate state * @return string The code for the populate state
* *
*/ */
protected function getPopulateStateFilterCode($key, $new_filter, $extra = '') protected function getPopulateStateFilterCode(&$filter, $new_filter, $extra = '')
{ {
$state = PHP_EOL . PHP_EOL . $this->_t(2) . "\$" . $key // add category stuff (may still remove these) TODO
if ($filter['type'] === 'category')
{
$state .= PHP_EOL . PHP_EOL . $this->_t(2)
. "\$category = \$app->getUserStateFromRequest(\$this->context . '.filter.category', 'filter_category');";
$state .= PHP_EOL . $this->_t(2)
. "\$this->setState('filter.category', \$category);";
$state .= PHP_EOL . PHP_EOL . $this->_t(2)
. "\$categoryId = \$this->getUserStateFromRequest(\$this->context . '.filter.category_id', 'filter_category_id');";
$state .= PHP_EOL . $this->_t(2)
. "\$this->setState('filter.category_id', \$categoryId);";
}
// always add the default filter
$state = PHP_EOL . PHP_EOL . $this->_t(2) . "\$" . $filter['code']
. " = \$this->getUserStateFromRequest(\$this->context . '.filter." . " = \$this->getUserStateFromRequest(\$this->context . '.filter."
. $key . "', 'filter_" . $key . $filter['code'] . "', 'filter_" . $filter['code']
. "'" . $extra . ");"; . "'" . $extra . ");";
if ($new_filter) if ($new_filter)
{ {
@ -20232,19 +20249,19 @@ class Interpretation extends Fields
$state .= PHP_EOL . $this->_t(2) $state .= PHP_EOL . $this->_t(2)
. "if (\$formSubmited)"; . "if (\$formSubmited)";
$state .= PHP_EOL . $this->_t(2) . "{"; $state .= PHP_EOL . $this->_t(2) . "{";
$state .= PHP_EOL . $this->_t(3) . "\$" . $key $state .= PHP_EOL . $this->_t(3) . "\$" . $filter['code']
. " = \$app->input->post->get('" . $key . "');"; . " = \$app->input->post->get('" . $filter['code'] . "');";
$state .= PHP_EOL . $this->_t(3) $state .= PHP_EOL . $this->_t(3)
. "\$this->setState('filter." . $key . "\$this->setState('filter." . $filter['code']
. "', \$" . $key . ");"; . "', \$" . $filter['code'] . ");";
$state .= PHP_EOL . $this->_t(2) . "}"; $state .= PHP_EOL . $this->_t(2) . "}";
} }
else else
{ {
// the old filter option // the old filter option
$state .= PHP_EOL . $this->_t(2) $state .= PHP_EOL . $this->_t(2)
. "\$this->setState('filter." . $key . "\$this->setState('filter." . $filter['code']
. "', \$" . $key . ");"; . "', \$" . $filter['code'] . ");";
} }
return $state; return $state;
} }
@ -20260,31 +20277,39 @@ class Interpretation extends Fields
protected function setDefaultPopulateState(&$name_single_code) protected function setDefaultPopulateState(&$name_single_code)
{ {
$state = ''; $state = '';
// if access is not set // start filter
$filter = array('type' => 'text');
// if access is not set add its default filter here
if (!isset($this->fieldsNames[$name_single_code]['access'])) if (!isset($this->fieldsNames[$name_single_code]['access']))
{ {
$state .= $this->getPopulateStateFilterCode('access', false, ", 0, 'int'"); $filter['code'] = "access";
$state .= $this->getPopulateStateFilterCode($filter, false, ", 0, 'int'");
} }
// if published is not set // if published is not set add its default filter here
if (!isset($this->fieldsNames[$name_single_code]['published'])) if (!isset($this->fieldsNames[$name_single_code]['published']))
{ {
$state .= $this->getPopulateStateFilterCode('published', false, ", ''"); $filter['code'] = "published";
$state .= $this->getPopulateStateFilterCode($filter, false, ", ''");
} }
// if created_by is not set // if created_by is not set add its default filter here
if (!isset($this->fieldsNames[$name_single_code]['created_by'])) if (!isset($this->fieldsNames[$name_single_code]['created_by']))
{ {
$state .= $this->getPopulateStateFilterCode('created_by', false, ", ''"); $filter['code'] = "created_by";
$state .= $this->getPopulateStateFilterCode($filter, false, ", ''");
} }
// if created is not set // if created is not set add its default filter here
if (!isset($this->fieldsNames[$name_single_code]['created'])) if (!isset($this->fieldsNames[$name_single_code]['created']))
{ {
$state .= $this->getPopulateStateFilterCode('created', false); $filter['code'] = "created";
$state .= $this->getPopulateStateFilterCode($filter, false);
} }
// the sorting defaults are always added // the sorting defaults are always added
$state .= $this->getPopulateStateFilterCode('sorting', false, ", 0, 'int'"); $filter['code'] = "sorting";
$state .= $this->getPopulateStateFilterCode($filter, false, ", 0, 'int'");
// the search defaults are always added // the search defaults are always added
$state .= $this->getPopulateStateFilterCode('search', false); $filter['code'] = "search";
$state .= $this->getPopulateStateFilterCode($filter, false);
return $state; return $state;
} }

View File

@ -29,14 +29,14 @@ class ComponentbuilderModelAdmin_views extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.system_name','system_name',
'a.name_single','name_single',
'a.short_description','short_description',
'a.add_fadein','add_fadein', 'a.add_fadein','add_fadein',
'a.type','type', 'a.type','type',
'a.add_custom_button','add_custom_button', 'a.add_custom_button','add_custom_button',
'a.add_php_ajax','add_php_ajax', 'a.add_php_ajax','add_php_ajax',
'a.add_custom_import','add_custom_import' 'a.add_custom_import','add_custom_import',
'a.system_name','system_name',
'a.name_single','name_single',
'a.short_description','short_description'
); );
} }
@ -621,14 +621,14 @@ class ComponentbuilderModelAdmin_views extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name_single');
$id .= ':' . $this->getState('filter.short_description');
$id .= ':' . $this->getState('filter.add_fadein'); $id .= ':' . $this->getState('filter.add_fadein');
$id .= ':' . $this->getState('filter.type'); $id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.add_custom_button'); $id .= ':' . $this->getState('filter.add_custom_button');
$id .= ':' . $this->getState('filter.add_php_ajax'); $id .= ':' . $this->getState('filter.add_php_ajax');
$id .= ':' . $this->getState('filter.add_custom_import'); $id .= ':' . $this->getState('filter.add_custom_import');
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name_single');
$id .= ':' . $this->getState('filter.short_description');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,8 +29,8 @@ class ComponentbuilderModelClass_extendings extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name', 'a.extension_type','extension_type',
'a.extension_type','extension_type' 'a.name','name'
); );
} }
@ -251,8 +251,8 @@ class ComponentbuilderModelClass_extendings extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.extension_type'); $id .= ':' . $this->getState('filter.extension_type');
$id .= ':' . $this->getState('filter.name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,9 +29,9 @@ class ComponentbuilderModelClass_methods extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name',
'a.visibility','visibility', 'a.visibility','visibility',
'a.extension_type','extension_type' 'a.extension_type','extension_type',
'a.name','name'
); );
} }
@ -408,9 +408,9 @@ class ComponentbuilderModelClass_methods extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.visibility'); $id .= ':' . $this->getState('filter.visibility');
$id .= ':' . $this->getState('filter.extension_type'); $id .= ':' . $this->getState('filter.extension_type');
$id .= ':' . $this->getState('filter.name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,9 +29,9 @@ class ComponentbuilderModelClass_properties extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name',
'a.visibility','visibility', 'a.visibility','visibility',
'a.extension_type','extension_type' 'a.extension_type','extension_type',
'a.name','name'
); );
} }
@ -406,9 +406,9 @@ class ComponentbuilderModelClass_properties extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.visibility'); $id .= ':' . $this->getState('filter.visibility');
$id .= ':' . $this->getState('filter.extension_type'); $id .= ':' . $this->getState('filter.extension_type');
$id .= ':' . $this->getState('filter.name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,12 +29,12 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'g.name','main_get',
'a.add_php_ajax','add_php_ajax',
'a.add_custom_button','add_custom_button',
'a.system_name','system_name', 'a.system_name','system_name',
'a.name','name', 'a.name','name',
'a.description','description', 'a.description','description'
'g.name',
'a.add_php_ajax','add_php_ajax',
'a.add_custom_button','add_custom_button'
); );
} }
@ -440,12 +440,12 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.main_get'); $id .= ':' . $this->getState('filter.main_get');
$id .= ':' . $this->getState('filter.add_php_ajax'); $id .= ':' . $this->getState('filter.add_php_ajax');
$id .= ':' . $this->getState('filter.add_custom_button'); $id .= ':' . $this->getState('filter.add_custom_button');
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,11 +29,11 @@ class ComponentbuilderModelCustom_codes extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'g.system_name', 'g.system_name','component',
'a.path','path',
'a.target','target', 'a.target','target',
'a.type','type', 'a.type','type',
'a.comment_type','comment_type' 'a.comment_type','comment_type',
'a.path','path'
); );
} }
@ -469,10 +469,10 @@ class ComponentbuilderModelCustom_codes extends JModelList
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.component'); $id .= ':' . $this->getState('filter.component');
$id .= ':' . $this->getState('filter.path');
$id .= ':' . $this->getState('filter.target'); $id .= ':' . $this->getState('filter.target');
$id .= ':' . $this->getState('filter.type'); $id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.comment_type'); $id .= ':' . $this->getState('filter.comment_type');
$id .= ':' . $this->getState('filter.path');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,9 +29,9 @@ class ComponentbuilderModelDynamic_gets extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name',
'a.main_source','main_source', 'a.main_source','main_source',
'a.gettype','gettype' 'a.gettype','gettype',
'a.name','name'
); );
} }
@ -415,9 +415,9 @@ class ComponentbuilderModelDynamic_gets extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.main_source'); $id .= ':' . $this->getState('filter.main_source');
$id .= ':' . $this->getState('filter.gettype'); $id .= ':' . $this->getState('filter.gettype');
$id .= ':' . $this->getState('filter.name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,15 +29,15 @@ class ComponentbuilderModelFields extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name', 'g.name','fieldtype',
'g.name',
'a.datatype','datatype', 'a.datatype','datatype',
'a.indexes','indexes', 'a.indexes','indexes',
'a.null_switch','null_switch', 'a.null_switch','null_switch',
'a.store','store', 'a.store','store',
'c.title','category_title', 'c.title','category_title',
'c.id', 'category_id', 'c.id', 'category_id',
'a.catid', 'catid' 'a.catid','catid',
'a.name','name'
); );
} }
@ -525,7 +525,6 @@ class ComponentbuilderModelFields extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.fieldtype'); $id .= ':' . $this->getState('filter.fieldtype');
$id .= ':' . $this->getState('filter.datatype'); $id .= ':' . $this->getState('filter.datatype');
$id .= ':' . $this->getState('filter.indexes'); $id .= ':' . $this->getState('filter.indexes');
@ -534,6 +533,7 @@ class ComponentbuilderModelFields extends JModelList
$id .= ':' . $this->getState('filter.category'); $id .= ':' . $this->getState('filter.category');
$id .= ':' . $this->getState('filter.category_id'); $id .= ':' . $this->getState('filter.category_id');
$id .= ':' . $this->getState('filter.catid'); $id .= ':' . $this->getState('filter.catid');
$id .= ':' . $this->getState('filter.name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,11 +29,11 @@ class ComponentbuilderModelFieldtypes extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name',
'a.short_description','short_description',
'c.title','category_title', 'c.title','category_title',
'c.id', 'category_id', 'c.id', 'category_id',
'a.catid', 'catid' 'a.catid','catid',
'a.name','name',
'a.short_description','short_description'
); );
} }
@ -362,11 +362,11 @@ class ComponentbuilderModelFieldtypes extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.short_description');
$id .= ':' . $this->getState('filter.category'); $id .= ':' . $this->getState('filter.category');
$id .= ':' . $this->getState('filter.category_id'); $id .= ':' . $this->getState('filter.category_id');
$id .= ':' . $this->getState('filter.catid'); $id .= ':' . $this->getState('filter.catid');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.short_description');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,11 +29,11 @@ class ComponentbuilderModelHelp_documents extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.title','title',
'a.type','type', 'a.type','type',
'a.location','location', 'a.location','location',
'g.', 'a.admin_view','admin_view',
'h.' 'a.site_view','site_view',
'a.title','title'
); );
} }
@ -405,11 +405,11 @@ class ComponentbuilderModelHelp_documents extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.title');
$id .= ':' . $this->getState('filter.type'); $id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.location'); $id .= ':' . $this->getState('filter.location');
$id .= ':' . $this->getState('filter.admin_view'); $id .= ':' . $this->getState('filter.admin_view');
$id .= ':' . $this->getState('filter.site_view'); $id .= ':' . $this->getState('filter.site_view');
$id .= ':' . $this->getState('filter.title');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,11 +29,11 @@ class ComponentbuilderModelJoomla_components extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.companyname','companyname',
'a.author','author',
'a.system_name','system_name', 'a.system_name','system_name',
'a.name_code','name_code', 'a.name_code','name_code',
'a.short_description','short_description', 'a.short_description','short_description'
'a.companyname','companyname',
'a.author','author'
); );
} }
@ -2454,11 +2454,11 @@ class ComponentbuilderModelJoomla_components extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.companyname');
$id .= ':' . $this->getState('filter.author');
$id .= ':' . $this->getState('filter.system_name'); $id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name_code'); $id .= ':' . $this->getState('filter.name_code');
$id .= ':' . $this->getState('filter.short_description'); $id .= ':' . $this->getState('filter.short_description');
$id .= ':' . $this->getState('filter.companyname');
$id .= ':' . $this->getState('filter.author');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,9 +29,9 @@ class ComponentbuilderModelJoomla_modules extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.target','target',
'a.system_name','system_name', 'a.system_name','system_name',
'a.description','description', 'a.description','description'
'a.target','target'
); );
} }
@ -253,9 +253,9 @@ class ComponentbuilderModelJoomla_modules extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.target');
$id .= ':' . $this->getState('filter.system_name'); $id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.description'); $id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.target');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,8 +29,8 @@ class ComponentbuilderModelJoomla_plugin_groups extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name', 'g.name','class_extends',
'g.name' 'a.name','name'
); );
} }
@ -198,8 +198,8 @@ class ComponentbuilderModelJoomla_plugin_groups extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.class_extends'); $id .= ':' . $this->getState('filter.class_extends');
$id .= ':' . $this->getState('filter.name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,9 +29,9 @@ class ComponentbuilderModelJoomla_plugins extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.system_name','system_name', 'g.name','class_extends',
'g.name', 'h.name','joomla_plugin_group',
'h.name' 'a.system_name','system_name'
); );
} }
@ -402,9 +402,9 @@ class ComponentbuilderModelJoomla_plugins extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.class_extends'); $id .= ':' . $this->getState('filter.class_extends');
$id .= ':' . $this->getState('filter.joomla_plugin_group'); $id .= ':' . $this->getState('filter.joomla_plugin_group');
$id .= ':' . $this->getState('filter.system_name');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,10 +29,10 @@ class ComponentbuilderModelLayouts extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'g.name','dynamic_get',
'a.add_php_view','add_php_view',
'a.name','name', 'a.name','name',
'a.description','description', 'a.description','description'
'g.name',
'a.add_php_view','add_php_view'
); );
} }
@ -392,10 +392,10 @@ class ComponentbuilderModelLayouts extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.dynamic_get'); $id .= ':' . $this->getState('filter.dynamic_get');
$id .= ':' . $this->getState('filter.add_php_view'); $id .= ':' . $this->getState('filter.add_php_view');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,11 +29,11 @@ class ComponentbuilderModelLibraries extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'a.name','name',
'a.target','target', 'a.target','target',
'a.how','how',
'a.type','type', 'a.type','type',
'a.description','description', 'a.name','name',
'a.how','how' 'a.description','description'
); );
} }
@ -308,11 +308,11 @@ class ComponentbuilderModelLibraries extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.target'); $id .= ':' . $this->getState('filter.target');
$id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.how'); $id .= ':' . $this->getState('filter.how');
$id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,13 +29,13 @@ class ComponentbuilderModelSite_views extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'g.name','main_get',
'a.add_php_ajax','add_php_ajax',
'a.add_custom_button','add_custom_button',
'a.system_name','system_name', 'a.system_name','system_name',
'a.name','name', 'a.name','name',
'a.description','description', 'a.description','description',
'g.name', 'a.context','context'
'a.context','context',
'a.add_php_ajax','add_php_ajax',
'a.add_custom_button','add_custom_button'
); );
} }
@ -444,13 +444,13 @@ class ComponentbuilderModelSite_views extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.main_get');
$id .= ':' . $this->getState('filter.add_php_ajax');
$id .= ':' . $this->getState('filter.add_custom_button');
$id .= ':' . $this->getState('filter.system_name'); $id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.name'); $id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description'); $id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.main_get');
$id .= ':' . $this->getState('filter.context'); $id .= ':' . $this->getState('filter.context');
$id .= ':' . $this->getState('filter.add_php_ajax');
$id .= ':' . $this->getState('filter.add_custom_button');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,11 +29,11 @@ class ComponentbuilderModelSnippets extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'g.name','type',
'h.name','library',
'a.name','name', 'a.name','name',
'a.url','url', 'a.url','url',
'g.name', 'a.heading','heading'
'a.heading','heading',
'h.name'
); );
} }
@ -478,11 +478,11 @@ class ComponentbuilderModelSnippets extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.library');
$id .= ':' . $this->getState('filter.name'); $id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.url'); $id .= ':' . $this->getState('filter.url');
$id .= ':' . $this->getState('filter.type');
$id .= ':' . $this->getState('filter.heading'); $id .= ':' . $this->getState('filter.heading');
$id .= ':' . $this->getState('filter.library');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -29,10 +29,10 @@ class ComponentbuilderModelTemplates extends JModelList
'a.ordering','ordering', 'a.ordering','ordering',
'a.created_by','created_by', 'a.created_by','created_by',
'a.modified_by','modified_by', 'a.modified_by','modified_by',
'g.name','dynamic_get',
'a.add_php_view','add_php_view',
'a.name','name', 'a.name','name',
'a.description','description', 'a.description','description'
'g.name',
'a.add_php_view','add_php_view'
); );
} }
@ -392,10 +392,10 @@ class ComponentbuilderModelTemplates extends JModelList
$id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.ordering');
$id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.created_by');
$id .= ':' . $this->getState('filter.modified_by'); $id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.dynamic_get'); $id .= ':' . $this->getState('filter.dynamic_get');
$id .= ':' . $this->getState('filter.add_php_view'); $id .= ':' . $this->getState('filter.add_php_view');
$id .= ':' . $this->getState('filter.name');
$id .= ':' . $this->getState('filter.description');
return parent::getStoreId($id); return parent::getStoreId($id);
} }

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2" method="upgrade"> <extension type="component" version="3.2" method="upgrade">
<name>COM_COMPONENTBUILDER</name> <name>COM_COMPONENTBUILDER</name>
<creationDate>20th November, 2020</creationDate> <creationDate>21st November, 2020</creationDate>
<author>Llewellyn van der Merwe</author> <author>Llewellyn van der Merwe</author>
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail> <authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl> <authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>