Fix the update server #978 issue. Fixed the change log to load all entries, not just the last one. Fixed #983 so that database updates are created when adding a new adminview. Moved a few builder arrays to the Compiler Registry. Adds super powers to JCB. Adds Gitea API library. Improves Power filters. Fix #991 to add the Utilities service class. Adds Superpower Key (SPK) replacement feature. Adds Superpower search (GREP) feature. Adds Power Insert/Update Classe. Fix #995 that all update sites are using the correct URL.

This commit is contained in:
2023-05-02 02:10:55 +02:00
parent d6c73987f5
commit df16b2e3ad
246 changed files with 24890 additions and 4141 deletions

View File

@ -16,6 +16,9 @@ use Joomla\CMS\MVC\Model\AdminModel;
use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\String\ClassfunctionHelper;
use VDM\Joomla\Utilities\StringHelper as UtilitiesStringHelper;
use VDM\Joomla\Utilities\GetHelper;
/**
* Componentbuilder Power Admin Model
@ -65,6 +68,15 @@ class ComponentbuilderModelPower extends AdminModel
'licensing_template'
)
),
'super_power' => array(
'left' => array(
'approved',
'approved_paths'
),
'right' => array(
'note_approved_paths'
)
),
'composer' => array(
'fullwidth' => array(
'autoload_composer_note',
@ -202,6 +214,14 @@ class ComponentbuilderModelPower extends AdminModel
$item->main_class_code = base64_decode($item->main_class_code);
}
if (!empty($item->method_selection))
{
// Convert the method_selection field to an array.
$method_selection = new Registry;
$method_selection->loadString($item->method_selection);
$item->method_selection = $method_selection->toArray();
}
if (!empty($item->load_selection))
{
// Convert the load_selection field to an array.
@ -234,14 +254,6 @@ class ComponentbuilderModelPower extends AdminModel
$item->implements = $implements->toArray();
}
if (!empty($item->method_selection))
{
// Convert the method_selection field to an array.
$method_selection = new Registry;
$method_selection->loadString($item->method_selection);
$item->method_selection = $method_selection->toArray();
}
if (!empty($item->use_selection))
{
// Convert the use_selection field to an array.
@ -250,6 +262,12 @@ class ComponentbuilderModelPower extends AdminModel
$item->use_selection = $use_selection->toArray();
}
if (!empty($item->approved_paths))
{
// JSON Decode approved_paths.
$item->approved_paths = json_decode($item->approved_paths);
}
if (empty($item->id))
{
@ -1003,24 +1021,30 @@ class ComponentbuilderModelPower extends AdminModel
$data['metadata'] = (string) $metadata;
}
// Set the empty approved_paths item to data
if (!isset($data['approved_paths']))
{
$data['approved_paths'] = '';
}
// check if the name has placeholder
if (strpos($data['name'], '[[[') === false && strpos($data['name'], '###') === false)
{
// make sure the name is safe to be used as a function name
$data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']);
$data['name'] = ClassfunctionHelper::safe($data['name']);
}
// if system name is empty create from name
if (empty($data['system_name']) || !ComponentbuilderHelper::checkString($data['system_name']))
if (empty($data['system_name']) || !UtilitiesStringHelper::check($data['system_name']))
{
$data['system_name'] = $data['name'];
}
// must set the version if empty
if (empty($data['power_version']) && $data['id'] > 0 && ($power_version = ComponentbuilderHelper::getVar('power', $data['id'], 'id', 'power_version')) !== false)
if (empty($data['power_version']) && $data['id'] > 0 && ($power_version = GetHelper::var('power', $data['id'], 'id', 'power_version')) !== false)
{
$data['power_version'] = $power_version;
}
// we must preserve versions (so that a change to the version number must result in save as copy)
elseif ($data['id'] > 0 && ($old_version = ComponentbuilderHelper::getVar('power', $data['id'], 'id', 'power_version')) && $data['power_version'] != $old_version)
elseif ($data['id'] > 0 && ($old_version = GetHelper::var('power', $data['id'], 'id', 'power_version')) && $data['power_version'] != $old_version)
{
// lets check if we already have this version
if (($existing_id = ComponentbuilderHelper::checkExist('power', ['power_version' => $data['power_version'], 'name' => $data['name'], 'namespace' => $data['namespace']])) !== false)
@ -1051,6 +1075,19 @@ class ComponentbuilderModelPower extends AdminModel
}
// Set the method_selection items to data.
if (isset($data['method_selection']) && is_array($data['method_selection']))
{
$method_selection = new JRegistry;
$method_selection->loadArray($data['method_selection']);
$data['method_selection'] = (string) $method_selection;
}
elseif (!isset($data['method_selection']))
{
// Set the empty method_selection to data
$data['method_selection'] = '';
}
// Set the load_selection items to data.
if (isset($data['load_selection']) && is_array($data['load_selection']))
{
@ -1103,19 +1140,6 @@ class ComponentbuilderModelPower extends AdminModel
$data['implements'] = '';
}
// Set the method_selection items to data.
if (isset($data['method_selection']) && is_array($data['method_selection']))
{
$method_selection = new JRegistry;
$method_selection->loadArray($data['method_selection']);
$data['method_selection'] = (string) $method_selection;
}
elseif (!isset($data['method_selection']))
{
// Set the empty method_selection to data
$data['method_selection'] = '';
}
// Set the use_selection items to data.
if (isset($data['use_selection']) && is_array($data['use_selection']))
{
@ -1129,6 +1153,12 @@ class ComponentbuilderModelPower extends AdminModel
$data['use_selection'] = '';
}
// Set the approved_paths string to JSON string.
if (isset($data['approved_paths']))
{
$data['approved_paths'] = (string) json_encode($data['approved_paths']);
}
// Set the licensing_template string to base64 string.
if (isset($data['licensing_template']))
{