Release of v4.1.0

Add [AllowDynamicProperties] in the base view class for J5. Move the _prepareDocument  above the display call in the base view class. Remove all backward compatibility issues, so JCB will not need the [Backward Compatibility] plugin to run. Added new import powers for custom import of spreadsheets. Move the setDocument and _prepareDocument above the display in the site view and custom admin view. Update the trashhelper layout to work in Joomla 5. Add AllowDynamicProperties (Joomla 4+5) to view class to allow Custom Dynamic Get methods to work without issues. Fix Save failed issue in dynamicGet. #1148. Move all [TEXT, EDITOR, TEXTAREA] fields from [NOT NULL] to [NULL]. Add the DateHelper class and improve the date methods. Add simple SessionHelper class. Add first classes for the new import engine. Improve the [VDM Registry] to be Joomla Registry Compatible. Move all registries to the [VDM Registry] class. Fix Checked Out to be null and not 0. (#1194). Fix created_by, modified_by, checked_out fields in the compiler of the SQL. (#1194). Update all core date fields in table class. (#1188). Update created_by, modified_by, checked_out fields in table class. Implementation of the decentralized Super-Power CORE repository network. (#1190). Fix the noticeboard to display Llewellyn's Joomla Social feed. Started compiling JCB4 on Joomla 5 with PHP 8.2. Add init_defaults option for dynamic form selection setup (to int new items with default values dynamically). Update all JCB 4 tables to utf8mb4_unicode_ci collation if misaligned. Move all internal ID linking to GUID inside of JCB 4. Updated the admin-tab-fields in add-fields view. #1205. Remove Custom Import Tab from admin view. Improved the customcode and placeholder search features.
This commit is contained in:
2025-02-14 23:01:37 +02:00
parent 4e968e96ab
commit 8549348a61
644 changed files with 42268 additions and 18453 deletions

View File

@ -29,9 +29,11 @@ use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use Joomla\CMS\Helper\TagsHelper;
use VDM\Joomla\Utilities\GuidHelper;
use VDM\Joomla\Utilities\StringHelper as UtilitiesStringHelper;
use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper;
use VDM\Joomla\Utilities\String\ClassfunctionHelper;
use VDM\Joomla\Utilities\GetHelper;
// No direct access to this file
\defined('_JEXEC') or die;
@ -251,7 +253,27 @@ class Joomla_plugin_groupModel extends AdminModel
// Now set the local-redirected field default value
$form->setValue($redirectedField, null, $redirectedValue);
}
$initDefaults = $jinput->get('init_defaults', null, 'STRING');
if (!empty($initDefaults))
{
// Now check if this json values are valid
$initDefaults = json_decode(urldecode($initDefaults), true);
if (is_array($initDefaults))
{
foreach ($initDefaults as $field => $value)
{
$form->setValue($field, null, $value);
}
}
}
}
// Only load the GUID if new item (or empty)
if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, GuidHelper::get());
}
return $form;
}
@ -448,7 +470,7 @@ class Joomla_plugin_groupModel extends AdminModel
*/
protected function getUniqueFields()
{
return false;
return array('guid');
}
/**
@ -857,7 +879,21 @@ class Joomla_plugin_groupModel extends AdminModel
}
// make sure the name is safe to be used as a function name
$data['name'] = ClassfunctionHelper::safe($data['name']);
$data['name'] = ClassfunctionHelper::safe($data['name']);
// Set the GUID if empty or not valid
if (empty($data['guid']) && $data['id'] > 0)
{
// get the existing one
$data['guid'] = (string) GetHelper::var('joomla_plugin_group', $data['id'], 'id', 'guid');
}
// Set the GUID if empty or not valid
while (!GuidHelper::valid($data['guid'], "joomla_plugin_group", $data['id']))
{
// must always be set
$data['guid'] = (string) GuidHelper::get();
}
// Set the Params Items to data
if (isset($data['params']) && is_array($data['params']))