Release of v5.0.3-alpha4

Fix database default fields to allow NULL. #1169. Fix the power list field to allow search. #1167. Expanded the Demo component in JCB v4 to include more advance features.
This commit is contained in:
2024-09-18 04:40:33 +02:00
parent fc8fabe298
commit 0603c39cc1
129 changed files with 7128 additions and 1449 deletions

View File

@@ -62,6 +62,22 @@ class Admin_custom_tabsController extends FormController
*/
protected $view_list = 'admins_custom_tabs';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Admin_fieldsController extends FormController
*/
protected $view_list = 'admins_fields';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Admin_fields_conditionsController extends FormController
*/
protected $view_list = 'admins_fields_conditions';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Admin_fields_relationsController extends FormController
*/
protected $view_list = 'admins_fields_relations';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -63,6 +63,22 @@ class Admin_viewController extends FormController
*/
protected $view_list = 'admin_views';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Class_extendsController extends FormController
*/
protected $view_list = 'class_extendings';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Class_methodController extends FormController
*/
protected $view_list = 'class_methods';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Class_propertyController extends FormController
*/
protected $view_list = 'class_properties';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -19,6 +19,7 @@ use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Componentbuilder\Compiler\Factory as CFactory;
use Joomla\CMS\Version;
use VDM\Joomla\Componentbuilder\File\Factory as FileFactory;
use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper;
use VDM\Joomla\Utilities\StringHelper;
use Joomla\CMS\Uri\Uri;
@@ -69,6 +70,11 @@ class CompilerController extends AdminController
$this->setRedirect(Route::_('index.php?option=com_componentbuilder', false));
}
/**
* Adding this so that the upload factory gets build for Super Powers
* FileFactory
*/
/**
* get all the animations used in the compiler
*

View File

@@ -62,6 +62,22 @@ class Component_admin_viewsController extends FormController
*/
protected $view_list = 'components_admin_views';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_configController extends FormController
*/
protected $view_list = 'components_config';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_custom_admin_menusController extends FormController
*/
protected $view_list = 'components_custom_admin_menus';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_custom_admin_viewsController extends FormController
*/
protected $view_list = 'components_custom_admin_views';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_dashboardController extends FormController
*/
protected $view_list = 'components_dashboard';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_files_foldersController extends FormController
*/
protected $view_list = 'components_files_folders';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_modulesController extends FormController
*/
protected $view_list = 'components_modules';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_mysql_tweaksController extends FormController
*/
protected $view_list = 'components_mysql_tweaks';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_placeholdersController extends FormController
*/
protected $view_list = 'components_placeholders';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_pluginsController extends FormController
*/
protected $view_list = 'components_plugins';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_routerController extends FormController
*/
protected $view_list = 'components_routers';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Component_site_viewsController extends FormController
*/
protected $view_list = 'components_site_views';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -65,6 +65,22 @@ class Component_updatesController extends FormController
*/
protected $view_list = 'components_updates';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Custom_admin_viewController extends FormController
*/
protected $view_list = 'custom_admin_views';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Custom_codeController extends FormController
*/
protected $view_list = 'custom_codes';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Dynamic_getController extends FormController
*/
protected $view_list = 'dynamic_gets';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class FieldController extends FormController
*/
protected $view_list = 'fields';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -25,7 +25,6 @@ use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Componentbuilder\Fieldtype\Factory as FieldtypeFactory;
use VDM\Joomla\Utilities\GetHelper;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -64,75 +63,34 @@ class FieldtypeController extends FormController
*/
protected $view_list = 'fieldtypes';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Initializes all remote Joomla Field Types and syncs them with the local database.
* Resets the specified Joomla Field Type.
*
* This function performs several checks and operations:
* 1. It verifies the authenticity of the request to prevent request forgery.
* 2. It checks whether the current user has the necessary permissions to initialize the Joomla Field Types.
* 3. If the user is authorized, it attempts to initialize the remote Joomla Field Types.
* 4. Depending on the result of the initialization operation, it sets the appropriate success or error message.
* 5. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful initialization, false on failure.
*/
public function initPowers()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// check if user has the right
$user = Factory::getUser();
// set default error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PERMISSION_DENIED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_FIELD_TYPES') . '</p>';
$status = 'error';
$success = false;
if($user->authorise('fieldtype.init', 'com_componentbuilder'))
{
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->init())
{
// set success message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_SUCCESSFULLY_INITIALIZED_ALL_REMOTE_JOOMLA_POWERS') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_LOCAL_DATABASE_JOOMLA_FIELD_TYPES_HAS_SUCCESSFULLY_BEEN_SYNCED_WITH_THE_REMOTE_REPOSITORIES') . '</p>';
$status = 'success';
$success = true;
}
else
{
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_INITIALIZATION_FAILED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_INITIALIZATION_OF_THIS_JOOMLA_FIELD_TYPES_HAS_FAILED') . '</p>';
}
} catch (\Exception $e) {
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_INITIALIZATION_FAILED') . '</h1>';
$message .= '<p>' . \htmlspecialchars($e->getMessage()) . '</p>';
}
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', $success);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
/**
* Resets the selected Joomla Field Types.
*
* This function performs several checks and operations:
* 1. It verifies the authenticity of the request to prevent request forgery.
* 2. It retrieves the IDs of the selected powers from the user input.
* 3. It sanitizes the input by converting the IDs to integers.
* 4. It checks whether any powers have been selected.
* 5. It checks whether the current user has the necessary permissions to reset the selected Joomla Field Types.
* 6. If the user is authorized and powers are selected, it attempts to reset the selected Joomla Field Types.
* 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
* 8. It redirects the user to a specified URL with the result message and status.
* 2. It retrieves the item data posted by the user.
* 3. It checks whether the current user has the necessary permissions to reset the Joomla Field Type.
* 4. It validates the presence of the necessary item identifiers (ID and GUID).
* 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Joomla Field Type.
* 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
*/
@@ -141,77 +99,73 @@ class FieldtypeController extends FormController
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// get IDS of the selected powers
$pks = $this->input->post->get('cid', [], 'array');
// Sanitize the input
ArrayHelper::toInteger($pks);
// check if there is any selections
if ($pks === [])
{
// set error message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_NO_SELECTION_DETECTED').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST').'</p>';
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
$status = 'error';
$success = false;
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
// check if user has the right
$user = Factory::getUser();
if($user->authorise('fieldtype.reset', 'com_componentbuilder'))
{
$guids = GetHelper::vars('fieldtype', $pks, 'id', 'guid');
// set default error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PERMISSION_DENIED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_FIELD_TYPE') . '</p>';
$status = 'error';
$success = false;
// load the ID
$id = $item['id'] ?? null;
$guid = $item['guid'] ?? null;
// check if there is any selections
if ($id === null || $guid === null)
{
// set error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_NOT_SAVED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_FIELD_TYPE_BEFORE_YOU_CAN_USE_THIS_FEATURE') . '</p>';
}
elseif($user->authorise('fieldtype.reset', 'com_componentbuilder'))
{
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->reset($guids))
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->reset([$guid]))
{
// set success message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_SUCCESS').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THESE_JOOMLA_FIELD_TYPES_HAVE_SUCCESSFULLY_BEEN_RESET').'</p>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THE_JOOMLA_FIELD_TYPE_HAS_SUCCESSFULLY_BEEN_RESET').'</p>';
$status = 'success';
$success = true;
}
else
{
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_RESET_FAILED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_FIELD_TYPES_HAS_FAILED') . '</p>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_FIELD_TYPE_HAS_FAILED') . '</p>';
}
} catch (\Exception $e) {
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_RESET_FAILED') . '</h1>';
$message .= '<p>' . \htmlspecialchars($e->getMessage()) . '</p>';
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', $success);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url);
$redirect_url = Route::_(
'index.php?option=com_componentbuilder&view=fieldtype'
. $this->getRedirectToItemAppend($id), $success
);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
/**
* Pushes the selected Joomla Field Types.
/**
* Pushes the specified Joomla Field Type.
*
* This function performs several checks and operations:
* 1. It verifies the authenticity of the request to prevent request forgery.
* 2. It retrieves the IDs of the selected powers from the user input.
* 3. It sanitizes the input by converting the IDs to integers.
* 4. It checks whether any powers have been selected.
* 5. It checks whether the current user has the necessary permissions to push the selected Joomla Field Types.
* 6. If the user is authorized and powers are selected, it attempts to push the selected Joomla Field Types.
* 7. Depending on the result of the push operation, it sets the appropriate success or error message.
* 8. It redirects the user to a specified URL with the result message and status.
* 2. It retrieves the item data posted by the user.
* 3. It checks whether the current user has the necessary permissions to push the Joomla Field Type.
* 4. It validates the presence of the necessary item identifiers (ID and GUID).
* 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Joomla Field Type.
* 6. Depending on the result of the push operation, it sets the appropriate success or error message.
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
*/
@@ -220,62 +174,59 @@ class FieldtypeController extends FormController
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// get IDS of the selected powers
$pks = $this->input->post->get('cid', [], 'array');
// Sanitize the input
ArrayHelper::toInteger($pks);
// check if there is any selections
if ($pks === [])
{
// set error message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_NO_SELECTION_DETECTED').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST').'</p>';
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
$status = 'error';
$success = false;
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
// check if user has the right
$user = Factory::getUser();
if($user->authorise('fieldtype.push', 'com_componentbuilder'))
{
$guids = GetHelper::vars('fieldtype', $pks, 'id', 'guid');
// set default error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PERMISSION_DENIED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_FIELD_TYPE') . '</p>';
$status = 'error';
$success = false;
// load the ID
$id = $item['id'] ?? null;
$guid = $item['guid'] ?? null;
// check if there is any selections
if ($id === null || $guid === null)
{
// set error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_NOT_SAVED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_FIELD_TYPE_BEFORE_YOU_CAN_USE_THIS_FEATURE') . '</p>';
}
elseif($user->authorise('fieldtype.push', 'com_componentbuilder'))
{
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->items($guids))
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->items([$guid]))
{
// set success message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_SUCCESS').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THESE_JOOMLA_FIELD_TYPES_HAVE_SUCCESSFULLY_BEEN_PUSHED').'</p>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THE_JOOMLA_FIELD_TYPE_HAS_SUCCESSFULLY_BEEN_PUSHED').'</p>';
$status = 'success';
$success = true;
}
else
{
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PUSH_FAILED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_PUSH_OF_THESE_JOOMLA_FIELD_TYPES_HAS_FAILED') . '</p>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_FIELD_TYPE_HAS_FAILED') . '</p>';
}
} catch (\Exception $e) {
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PUSH_FAILED') . '</h1>';
$message .= '<p>' . \htmlspecialchars($e->getMessage()) . '</p>';
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', $success);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url);
$redirect_url = Route::_(
'index.php?option=com_componentbuilder&view=fieldtype'
. $this->getRedirectToItemAppend($id), $success
);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}

View File

@@ -18,6 +18,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Componentbuilder\Fieldtype\Factory as FieldtypeFactory;
use VDM\Joomla\Utilities\GetHelper;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -55,16 +56,73 @@ class FieldtypesController extends AdminController
/**
* Resets the specified Joomla Field Type.
* Initializes all remote Joomla Field Types and syncs them with the local database.
*
* This function performs several checks and operations:
* 1. It verifies the authenticity of the request to prevent request forgery.
* 2. It retrieves the item data posted by the user.
* 3. It checks whether the current user has the necessary permissions to reset the Joomla Field Type.
* 4. It validates the presence of the necessary item identifiers (ID and GUID).
* 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Joomla Field Type.
* 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
* 7. It redirects the user to a specified URL with the result message and status.
* 2. It checks whether the current user has the necessary permissions to initialize the Joomla Field Types.
* 3. If the user is authorized, it attempts to initialize the remote Joomla Field Types.
* 4. Depending on the result of the initialization operation, it sets the appropriate success or error message.
* 5. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful initialization, false on failure.
*/
public function initPowers()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// check if user has the right
$user = Factory::getUser();
// set default error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PERMISSION_DENIED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_FIELD_TYPES') . '</p>';
$status = 'error';
$success = false;
if($user->authorise('fieldtype.init', 'com_componentbuilder'))
{
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->init())
{
// set success message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_SUCCESSFULLY_INITIALIZED_ALL_REMOTE_JOOMLA_POWERS') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_LOCAL_DATABASE_JOOMLA_FIELD_TYPES_HAS_SUCCESSFULLY_BEEN_SYNCED_WITH_THE_REMOTE_REPOSITORIES') . '</p>';
$status = 'success';
$success = true;
}
else
{
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_INITIALIZATION_FAILED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_INITIALIZATION_OF_THIS_JOOMLA_FIELD_TYPES_HAS_FAILED') . '</p>';
}
} catch (\Exception $e) {
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_INITIALIZATION_FAILED') . '</h1>';
$message .= '<p>' . \htmlspecialchars($e->getMessage()) . '</p>';
}
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', $success);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
/**
* Resets the selected Joomla Field Types.
*
* This function performs several checks and operations:
* 1. It verifies the authenticity of the request to prevent request forgery.
* 2. It retrieves the IDs of the selected powers from the user input.
* 3. It sanitizes the input by converting the IDs to integers.
* 4. It checks whether any powers have been selected.
* 5. It checks whether the current user has the necessary permissions to reset the selected Joomla Field Types.
* 6. If the user is authorized and powers are selected, it attempts to reset the selected Joomla Field Types.
* 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
*/
@@ -73,73 +131,77 @@ class FieldtypesController extends AdminController
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
// get IDS of the selected powers
$pks = $this->input->post->get('cid', [], 'array');
// check if user has the right
$user = Factory::getUser();
// Sanitize the input
ArrayHelper::toInteger($pks);
// check if there is any selections
if ($pks === [])
{
// set error message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_NO_SELECTION_DETECTED').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST').'</p>';
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
// set default error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PERMISSION_DENIED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_FIELD_TYPE') . '</p>';
$status = 'error';
$success = false;
// load the ID
$id = $item['id'] ?? null;
$guid = $item['guid'] ?? null;
// check if user has the right
$user = Factory::getUser();
if($user->authorise('fieldtype.reset', 'com_componentbuilder'))
{
$guids = GetHelper::vars('fieldtype', $pks, 'id', 'guid');
// check if there is any selections
if ($id === null || $guid === null)
{
// set error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_NOT_SAVED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_FIELD_TYPE_BEFORE_YOU_CAN_USE_THIS_FEATURE') . '</p>';
}
elseif($user->authorise('fieldtype.reset', 'com_componentbuilder'))
{
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->reset([$guid]))
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->reset($guids))
{
// set success message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_SUCCESS').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THE_JOOMLA_FIELD_TYPE_HAS_SUCCESSFULLY_BEEN_RESET').'</p>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THESE_JOOMLA_FIELD_TYPES_HAVE_SUCCESSFULLY_BEEN_RESET').'</p>';
$status = 'success';
$success = true;
}
else
{
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_RESET_FAILED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_FIELD_TYPE_HAS_FAILED') . '</p>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_FIELD_TYPES_HAS_FAILED') . '</p>';
}
} catch (\Exception $e) {
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_RESET_FAILED') . '</h1>';
$message .= '<p>' . \htmlspecialchars($e->getMessage()) . '</p>';
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', $success);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
// set redirect
$redirect_url = Route::_(
'index.php?option=com_componentbuilder&view=fieldtype'
. $this->getRedirectToItemAppend($id), $success
);
$this->setRedirect($redirect_url, $message, $status);
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url);
return $success;
}
/**
* Pushes the specified Joomla Field Type.
/**
* Pushes the selected Joomla Field Types.
*
* This function performs several checks and operations:
* 1. It verifies the authenticity of the request to prevent request forgery.
* 2. It retrieves the item data posted by the user.
* 3. It checks whether the current user has the necessary permissions to push the Joomla Field Type.
* 4. It validates the presence of the necessary item identifiers (ID and GUID).
* 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Joomla Field Type.
* 6. Depending on the result of the push operation, it sets the appropriate success or error message.
* 7. It redirects the user to a specified URL with the result message and status.
* 2. It retrieves the IDs of the selected powers from the user input.
* 3. It sanitizes the input by converting the IDs to integers.
* 4. It checks whether any powers have been selected.
* 5. It checks whether the current user has the necessary permissions to push the selected Joomla Field Types.
* 6. If the user is authorized and powers are selected, it attempts to push the selected Joomla Field Types.
* 7. Depending on the result of the push operation, it sets the appropriate success or error message.
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
*/
@@ -148,59 +210,62 @@ class FieldtypesController extends AdminController
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
// get IDS of the selected powers
$pks = $this->input->post->get('cid', [], 'array');
// check if user has the right
$user = Factory::getUser();
// Sanitize the input
ArrayHelper::toInteger($pks);
// check if there is any selections
if ($pks === [])
{
// set error message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_NO_SELECTION_DETECTED').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST').'</p>';
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
// set default error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PERMISSION_DENIED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_FIELD_TYPE') . '</p>';
$status = 'error';
$success = false;
// load the ID
$id = $item['id'] ?? null;
$guid = $item['guid'] ?? null;
// check if user has the right
$user = Factory::getUser();
if($user->authorise('fieldtype.push', 'com_componentbuilder'))
{
$guids = GetHelper::vars('fieldtype', $pks, 'id', 'guid');
// check if there is any selections
if ($id === null || $guid === null)
{
// set error message
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_NOT_SAVED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_FIELD_TYPE_BEFORE_YOU_CAN_USE_THIS_FEATURE') . '</p>';
}
elseif($user->authorise('fieldtype.push', 'com_componentbuilder'))
{
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->items([$guid]))
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->items($guids))
{
// set success message
$message = '<h1>'.Text::_('COM_COMPONENTBUILDER_SUCCESS').'</h1>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THE_JOOMLA_FIELD_TYPE_HAS_SUCCESSFULLY_BEEN_PUSHED').'</p>';
$message .= '<p>'.Text::_('COM_COMPONENTBUILDER_THESE_JOOMLA_FIELD_TYPES_HAVE_SUCCESSFULLY_BEEN_PUSHED').'</p>';
$status = 'success';
$success = true;
}
else
{
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PUSH_FAILED') . '</h1>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_FIELD_TYPE_HAS_FAILED') . '</p>';
$message .= '<p>' . Text::_('COM_COMPONENTBUILDER_THE_PUSH_OF_THESE_JOOMLA_FIELD_TYPES_HAS_FAILED') . '</p>';
}
} catch (\Exception $e) {
$message = '<h1>' . Text::_('COM_COMPONENTBUILDER_PUSH_FAILED') . '</h1>';
$message .= '<p>' . \htmlspecialchars($e->getMessage()) . '</p>';
}
// set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', $success);
$this->setRedirect($redirect_url, $message, $status);
return $success;
}
// set redirect
$redirect_url = Route::_(
'index.php?option=com_componentbuilder&view=fieldtype'
. $this->getRedirectToItemAppend($id), $success
);
$this->setRedirect($redirect_url, $message, $status);
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fieldtypes', false);
$this->setRedirect($redirect_url);
return $success;
}
}

View File

@@ -62,6 +62,22 @@ class Help_documentController extends FormController
*/
protected $view_list = 'help_documents';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -63,6 +63,22 @@ class Joomla_componentController extends FormController
*/
protected $view_list = 'joomla_components';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
public function refresh()
{
// Check for request forgeries

View File

@@ -63,6 +63,22 @@ class Joomla_moduleController extends FormController
*/
protected $view_list = 'joomla_modules';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Joomla_module_files_folders_urlsController extends FormController
*/
protected $view_list = 'joomla_modules_files_folders_urls';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -64,6 +64,22 @@ class Joomla_module_updatesController extends FormController
*/
protected $view_list = 'joomla_modules_updates';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -51,13 +51,4 @@ class Joomla_modulesController extends AdminController
{
return parent::getModel($name, $prefix, $config);
}
public function getSnippets()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
// redirect to the import snippets custom admin view
$this->setRedirect(Route::_('index.php?option=com_componentbuilder&view=get_snippets', false));
return;
}
}

View File

@@ -63,6 +63,22 @@ class Joomla_pluginController extends FormController
*/
protected $view_list = 'joomla_plugins';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Joomla_plugin_files_folders_urlsController extends FormController
*/
protected $view_list = 'joomla_plugins_files_folders_urls';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Joomla_plugin_groupController extends FormController
*/
protected $view_list = 'joomla_plugin_groups';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -64,6 +64,22 @@ class Joomla_plugin_updatesController extends FormController
*/
protected $view_list = 'joomla_plugins_updates';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -63,6 +63,22 @@ class Joomla_powerController extends FormController
*/
protected $view_list = 'joomla_powers';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Resets the specified Joomla Power.

View File

@@ -62,6 +62,22 @@ class LanguageController extends FormController
*/
protected $view_list = 'languages';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Language_translationController extends FormController
*/
protected $view_list = 'language_translations';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class LayoutController extends FormController
*/
protected $view_list = 'layouts';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -63,6 +63,22 @@ class LibraryController extends FormController
*/
protected $view_list = 'libraries';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Library_configController extends FormController
*/
protected $view_list = 'libraries_config';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Library_files_folders_urlsController extends FormController
*/
protected $view_list = 'libraries_files_folders_urls';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class PlaceholderController extends FormController
*/
protected $view_list = 'placeholders';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -63,6 +63,22 @@ class PowerController extends FormController
*/
protected $view_list = 'powers';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Resets the specified power.

View File

@@ -62,6 +62,22 @@ class RepositoryController extends FormController
*/
protected $view_list = 'repositories';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class ServerController extends FormController
*/
protected $view_list = 'servers';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Site_viewController extends FormController
*/
protected $view_list = 'site_views';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class SnippetController extends FormController
*/
protected $view_list = 'snippets';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Snippet_typeController extends FormController
*/
protected $view_list = 'snippet_types';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class TemplateController extends FormController
*/
protected $view_list = 'templates';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -62,6 +62,22 @@ class Validation_ruleController extends FormController
*/
protected $view_list = 'validation_rules';
/**
* Referral value
*
* @var string
* @since 5.0
*/
protected string $ref;
/**
* Referral ID value
*
* @var int
* @since 5.0
*/
protected int $refid;
/**
* Method override to check if you can add a new record.
*

View File

@@ -44,6 +44,7 @@ use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper;
use VDM\Joomla\Utilities\JsonHelper;
use VDM\Joomla\Utilities\FileHelper;
use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\FieldHelper;
use VDM\Joomla\Componentbuilder\Compiler\Factory as CompilerFactory;
use VDM\Joomla\Utilities\Base64Helper;
@@ -55,7 +56,6 @@ use VDM\Joomla\Utilities\String\NamespaceHelper;
use VDM\Joomla\Utilities\MathHelper;
use VDM\Joomla\Utilities\String\PluginHelper;
use VDM\Joomla\Utilities\GuidHelper;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Utilities\FormHelper;
use Joomla\CMS\Router\Route;
@@ -1230,8 +1230,9 @@ abstract class ComponentbuilderHelper
if ((int) $id > 0)
{
// get the model
$model = self::getModel($type);
$app = Factory::getApplication();
Helper::setOption('com_componentbuilder');
$model = Helper::getModel($type);
$app = Factory::getApplication();
// get item
if ($item = $model->getItem($id))
{
@@ -5417,7 +5418,6 @@ abstract class ComponentbuilderHelper
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
/**
* The subform layouts

View File

@@ -480,10 +480,23 @@ class AjaxModel extends ListModel
return ['error' => $message];
}
return ['error' => Text::_('COM_COMPONENTBUILDER_THE_WIKI_CAN_ONLY_BE_LOADED_WHEN_YOUR_JOOMLA_COMPONENT_BUILDER_SYSTEM_HAS_INTERNET_CONNECTION')];
return ['error' => Text::_('COM_COMPONENTBUILDER_THE_WIKI_CAN_ONLY_BE_LOADED_WHEN_YOUR_JCB_SYSTEM_HAS_INTERNET_CONNECTION')];
}
// Used in joomla_module
/**
* Generates and returns the module code based on the provided data.
*
* This method processes the input data to generate module-specific code snippets
* for class inclusion, data handling, libraries, CSS, and template loading.
* It merges these code blocks into an array and specifies their placement within the final module output.
*
* @param string $data JSON-encoded string containing the module's class, get, lib, and other properties.
*
* @return array An associative array containing the generated code snippets for the module,
* including class, get, libraries, CSS, and template code, each with merge settings.
* @since 3.0.9
*/
public function getModuleCode($data)
{
// reset the return array
@@ -532,7 +545,7 @@ class AjaxModel extends ListModel
$code['css']['code'] = '// get the module class sfx (local)';
$code['css']['code'] .= PHP_EOL . "\$moduleclass_sfx = htmlspecialchars(\$params->get('moduleclass_sfx'), ENT_COMPAT, 'UTF-8');";
$code['tmpl']['code'] = '// load the default Tmpl';
$code['tmpl']['code'] .= PHP_EOL . "require JModuleHelper::getLayoutPath('mod_[[[module]]]', \$params->get('layout', 'default'));";
$code['tmpl']['code'] .= PHP_EOL . "require Joomla__"."_f15d556d_33dd_4ee3_a0f7_0653e4a7a1e4___Power::getLayoutPath('mod_[[[module]]]', \$params->get('layout', 'default'));";
// set placement
$code['css']['merge'] = 1;
$code['css']['merge_target'] = '// load the default Tmpl';
@@ -540,15 +553,33 @@ class AjaxModel extends ListModel
$code['tmpl']['merge_target'] = 'append';
return $code;
}
}
// Used in joomla_plugin
/**
* Retrieves the class code based on the provided ID and type.
*
* @param int|string $id The ID of the class.
* @param string $type The type of the class (e.g., 'property', 'method').
*
* @return mixed The class code, or false on failure.
* @since 3.0.9
*/
public function getClassCode($id, $type)
{
return ComponentbuilderHelper::getClassCode($id, $type);
}
/**
* Retrieves class code IDs based on the provided ID, type, and key.
*
* @param int|string $id The ID of the class.
* @param string $type The type of the class (e.g., 'property', 'method', 'joomla_plugin_group').
* @param int $key The key that determines which data to return (e.g., 1 for 'joomla_plugin_group', 2 for 'extension_type').
*
* @return mixed The corresponding class code IDs or false if no valid data is found.
* @since 3.0.9
*/
public function getClassCodeIds($id, $type, $key)
{
if ('property' === $type || 'method' === $type)
@@ -570,9 +601,20 @@ class AjaxModel extends ListModel
return false;
}
/**
* Retrieves the header code of the class based on the provided ID and type.
*
* @param int|string $id The ID of the class.
* @param string $type The type of the header (e.g., 'extends').
*
* @return string|false The decoded header code, or false if no valid data is found.
* @since 3.0.9
*/
public function getClassHeaderCode($id, $type)
{
if ('extends' === $type && ($head = GetHelper::var('class_' . $type, $id, 'id', 'head')) !== false && StringHelper::check($head))
if ('extends' === $type &&
($head = GetHelper::var('class_' . $type, $id, 'id', 'head')) !== false &&
StringHelper::check($head))
{
return base64_decode($head);
}

View File

@@ -265,8 +265,7 @@ class Joomla_pluginsModel extends ListModel
return false;
}
return true;
}
}
/**
* Method to auto-populate the model state.

View File

@@ -327,9 +327,9 @@ class HtmlView extends BaseHtmlView
Html::_('script', 'media/com_componentbuilder/js/jstorage.min.js', ['version' => 'auto']);
Html::_('script', 'media/com_componentbuilder/js/strtotime.js', ['version' => 'auto']);
// add var key
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
$this->getDocument()->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
// add return_here
$this->document->addScriptDeclaration("var return_here = '" . urlencode(base64_encode((string) Uri::getInstance())) . "';");
$this->getDocument()->addScriptDeclaration("var return_here = '" . urlencode(base64_encode((string) Uri::getInstance())) . "';");
// check if we should use browser storage
$setBrowserStorage = $this->params->get('set_browser_storage', null);
if ($setBrowserStorage)
@@ -360,6 +360,6 @@ class HtmlView extends BaseHtmlView
$expire = 30000; // only 30 seconds
}
// Set the Time To Live To JavaScript
$this->document->addScriptDeclaration("var expire = ". (int) $expire.";");
$this->getDocument()->addScriptDeclaration("var expire = ". (int) $expire.";");
}
}

View File

@@ -198,11 +198,6 @@ class HtmlView extends BaseHtmlView
ToolbarHelper::trash('joomla_modules.trash');
}
}
if ($this->user->authorise('joomla_module.get_snippets', 'com_componentbuilder'))
{
// add Get Snippets button.
ToolbarHelper::custom('joomla_modules.getSnippets', 'search custom-button-getsnippets', '', 'COM_COMPONENTBUILDER_GET_SNIPPETS', false);
}
// set help url for this view if found
$this->help_url = ComponentbuilderHelper::getHelpUrl('joomla_modules');

View File

@@ -328,9 +328,9 @@ class HtmlView extends BaseHtmlView
Html::_('script', 'media/com_componentbuilder/js/jstorage.min.js', ['version' => 'auto']);
Html::_('script', 'media/com_componentbuilder/js/strtotime.js', ['version' => 'auto']);
// add var key
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
$this->getDocument()->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
// add return_here
$this->document->addScriptDeclaration("var return_here = '" . urlencode(base64_encode((string) Uri::getInstance())) . "';");
$this->getDocument()->addScriptDeclaration("var return_here = '" . urlencode(base64_encode((string) Uri::getInstance())) . "';");
// set some lang
Text::script('COM_COMPONENTBUILDER_ALREADY_SELECTED_TRY_ANOTHER');
Text::script('COM_COMPONENTBUILDER_TYPE_OR_SELECT_SOME_OPTIONS');
@@ -367,11 +367,11 @@ class HtmlView extends BaseHtmlView
$expire = 30000; // only 30 seconds
}
// Set the Time To Live To JavaScript
$this->document->addScriptDeclaration("var expire = ". (int) $expire.";");
$this->document->addScriptDeclaration("selectionArray = {'property':{},'method':{}};");
$this->getDocument()->addScriptDeclaration("var expire = ". (int) $expire.";");
$this->getDocument()->addScriptDeclaration("selectionArray = {'property':{},'method':{}};");
// add a few field options via PHP
\JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');
$tmp_ = \JFormHelper::loadFieldType('joomlaplugingroups')->options;
FormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');
$tmp_ = FormHelper::loadFieldType('joomlaplugingroups')->options;
if (ArrayHelper::check($tmp_))
{
$_tmp = array();
@@ -380,9 +380,9 @@ class HtmlView extends BaseHtmlView
$_tmp[$item->value] = $item->text;
}
// Set the values to JavaScript
$this->document->addScriptDeclaration("selectionArray['joomla_plugin_group'] = ". json_encode($_tmp) . ";");
$this->getDocument()->addScriptDeclaration("selectionArray['joomla_plugin_group'] = ". json_encode($_tmp) . ";");
}
$tmp_ = \JFormHelper::loadFieldType('pluginsclassproperties')->options;
$tmp_ = FormHelper::loadFieldType('pluginsclassproperties')->options;
if (ArrayHelper::check($tmp_))
{
$_tmp = array();
@@ -391,9 +391,9 @@ class HtmlView extends BaseHtmlView
$_tmp[$item->value] = $item->text;
}
// Set the values to JavaScript
$this->document->addScriptDeclaration("selectionArray['property'] = ". json_encode($_tmp) . ";");
$this->getDocument()->addScriptDeclaration("selectionArray['property'] = ". json_encode($_tmp) . ";");
}
$tmp_ = \JFormHelper::loadFieldType('pluginsclassmethods')->options;
$tmp_ = FormHelper::loadFieldType('pluginsclassmethods')->options;
if (ArrayHelper::check($tmp_))
{
$_tmp = array();
@@ -402,7 +402,7 @@ class HtmlView extends BaseHtmlView
$_tmp[$item->value] = $item->text;
}
// Set the values to JavaScript
$this->document->addScriptDeclaration("selectionArray['method'] = ". json_encode($_tmp) . ";");
$this->getDocument()->addScriptDeclaration("selectionArray['method'] = ". json_encode($_tmp) . ";");
}
}
}