diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f1024991..766581153 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# v3.2.3-alpha1 + +- Fix site view form missing classes in J4+ +- Fix permissions tab in items in J4+ +- Fix site display controller checkEditId function in J4+ +- Add class methods to the HtmlView classes in J4+ +- Fix broken toolbar call in HtmlView in J4+ + # v3.2.2 - Fix auto build from SQL in Joomla 4 and 5. diff --git a/README.md b/README.md index d2d7899be..8d1f1a09a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.2) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.3-alpha1) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,13 +144,13 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 20th July, 2024 -+ *Version*: 3.2.2 ++ *Last Build*: 26th July, 2024 ++ *Version*: 3.2.3-alpha1 + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **796047** ++ *Line count*: **799073** + *Field count*: **2104** -+ *File count*: **5469** ++ *File count*: **5490** + *Folder count*: **482** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com). diff --git a/admin/README.txt b/admin/README.txt index d2d7899be..8d1f1a09a 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.2) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.3-alpha1) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,13 +144,13 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 20th July, 2024 -+ *Version*: 3.2.2 ++ *Last Build*: 26th July, 2024 ++ *Version*: 3.2.3-alpha1 + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **796047** ++ *Line count*: **799073** + *Field count*: **2104** -+ *File count*: **5469** ++ *File count*: **5490** + *Folder count*: **482** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com). diff --git a/admin/compiler/joomla_4/ADMIN_VIEWS_HTML.php b/admin/compiler/joomla_4/ADMIN_VIEWS_HTML.php index 2ae71fed7..c117fa8ae 100644 --- a/admin/compiler/joomla_4/ADMIN_VIEWS_HTML.php +++ b/admin/compiler/joomla_4/ADMIN_VIEWS_HTML.php @@ -27,6 +27,62 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator */ class HtmlView extends BaseHtmlView { + /** + * The items from the model + * + * @var mixed + * @since 3.10.11 + */ + public mixed $items; + + /** + * The state object + * + * @var mixed + * @since 3.10.11 + */ + public mixed $state; + + /** + * The styles url array + * + * @var array + * @since 5.0.0 + */ + protected array $styles; + + /** + * The scripts url array + * + * @var array + * @since 5.0.0 + */ + protected array $scripts; + + /** + * The actions object + * + * @var object + * @since 3.10.11 + */ + public object $canDo; + + /** + * The return here base64 url + * + * @var string + * @since 3.10.11 + */ + public string $return_here; + + /** + * The user object. + * + * @var Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power + * @since 3.10.11 + */ + public Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power $user; + /** * ###Views### view display method * @@ -43,7 +99,7 @@ class HtmlView extends BaseHtmlView $this->state = $this->get('State'); $this->styles = $this->get('Styles'); $this->scripts = $this->get('Scripts'); - $this->user ??= Factory::getApplication()->getIdentity();###ADMIN_DIPLAY_METHOD### + $this->user ??= $this->getCurrentUser();###ADMIN_DIPLAY_METHOD### $this->saveOrder = $this->listOrder == 'a.ordering'; // set the return here value $this->return_here = urlencode(base64_encode((string) Uri::getInstance())); diff --git a/admin/compiler/joomla_4/ADMIN_VIEW_HTML.php b/admin/compiler/joomla_4/ADMIN_VIEW_HTML.php index 5e4b702cf..51966d554 100644 --- a/admin/compiler/joomla_4/ADMIN_VIEW_HTML.php +++ b/admin/compiler/joomla_4/ADMIN_VIEW_HTML.php @@ -27,6 +27,86 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator */ class HtmlView extends BaseHtmlView { + /** + * The item from the model + * + * @var mixed + * @since 3.10.11 + */ + public mixed $item; + + /** + * The state object + * + * @var mixed + * @since 3.10.11 + */ + public mixed $state; + + /** + * The form from the model + * + * @var mixed + * @since 3.10.11 + */ + public mixed $form; + + /** + * The toolbar object + * + * @var Toolbar + * @since 3.10.11 + */ + public Toolbar $toolbar; + + /** + * The styles url array + * + * @var array + * @since 5.0.0 + */ + protected array $styles; + + /** + * The scripts url array + * + * @var array + * @since 5.0.0 + */ + protected array $scripts; + + /** + * The actions object + * + * @var object + * @since 3.10.11 + */ + public object $canDo; + + /** + * The origin referral view name + * + * @var string + * @since 3.10.11 + */ + public string $ref; + + /** + * The origin referral item id + * + * @var int + * @since 3.10.11 + */ + public int $refid; + + /** + * The referral url suffix values + * + * @var string + * @since 3.10.11 + */ + public string $referral; + /** * ###View### view display method * @@ -41,7 +121,7 @@ class HtmlView extends BaseHtmlView $this->params = ComponentHelper::getParams('com_###component###'); $this->useCoreUI = true; // Assign the variables - $this->form = $this->get('Form'); + $this->form ??= $this->get('Form'); $this->item = $this->get('Item'); $this->styles = $this->get('Styles'); $this->scripts = $this->get('Scripts'); diff --git a/admin/compiler/joomla_4/CUSTOM_ADMIN_VIEWS_HTML.php b/admin/compiler/joomla_4/CUSTOM_ADMIN_VIEWS_HTML.php index c8d70e3ac..96faeed38 100644 --- a/admin/compiler/joomla_4/CUSTOM_ADMIN_VIEWS_HTML.php +++ b/admin/compiler/joomla_4/CUSTOM_ADMIN_VIEWS_HTML.php @@ -27,6 +27,38 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator */ class HtmlView extends BaseHtmlView { + /** + * The styles url array + * + * @var array + * @since 5.0.0 + */ + protected array $styles; + + /** + * The scripts url array + * + * @var array + * @since 5.0.0 + */ + protected array $scripts; + + /** + * The actions object + * + * @var object + * @since 3.10.11 + */ + public object $canDo; + + /** + * The user object. + * + * @var Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power + * @since 3.10.11 + */ + public Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power $user; + /** * Display the view * @@ -42,11 +74,11 @@ class HtmlView extends BaseHtmlView // get the application $this->app ??= Factory::getApplication(); // get the user object - $this->user ??= $this->app->getIdentity(); + $this->user ??= $this->getCurrentUser(); // get global action permissions $this->canDo = ###Component###Helper::getActions('###sview###'); - $this->styles = $this->get('Styles'); - $this->scripts = $this->get('Scripts');###CUSTOM_ADMIN_DIPLAY_METHOD### + $this->styles = $this->get('Styles') ?? []; + $this->scripts = $this->get('Scripts') ?? [];###CUSTOM_ADMIN_DIPLAY_METHOD### // Set the html view document stuff $this->_prepareDocument(); diff --git a/admin/compiler/joomla_4/SITE_ADMIN_VIEW_HTML.php b/admin/compiler/joomla_4/SITE_ADMIN_VIEW_HTML.php index 0f3cac219..87d613574 100644 --- a/admin/compiler/joomla_4/SITE_ADMIN_VIEW_HTML.php +++ b/admin/compiler/joomla_4/SITE_ADMIN_VIEW_HTML.php @@ -27,6 +27,86 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\View\### */ class HtmlView extends BaseHtmlView { + /** + * The item from the model + * + * @var mixed + * @since 3.10.11 + */ + public mixed $item; + + /** + * The state object + * + * @var mixed + * @since 3.10.11 + */ + public mixed $state; + + /** + * The form from the model + * + * @var mixed + * @since 3.10.11 + */ + public mixed $form; + + /** + * The toolbar object + * + * @var Toolbar + * @since 3.10.11 + */ + public Toolbar $toolbar; + + /** + * The styles url array + * + * @var array + * @since 5.0.0 + */ + protected array $styles; + + /** + * The scripts url array + * + * @var array + * @since 5.0.0 + */ + protected array $scripts; + + /** + * The actions object + * + * @var object + * @since 3.10.11 + */ + public object $canDo; + + /** + * The origin referral view name + * + * @var string + * @since 3.10.11 + */ + public string $ref; + + /** + * The origin referral view item id + * + * @var int + * @since 3.10.11 + */ + public int $refid; + + /** + * The referral url suffix values + * + * @var string + * @since 3.10.11 + */ + public string $referral; + /** * ###View### view display method * @@ -41,11 +121,11 @@ class HtmlView extends BaseHtmlView $this->params = ComponentHelper::getParams('com_###component###'); $this->useCoreUI = true; // Assign the variables - $this->form = $this->get('Form'); + $this->form ??= $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); - $this->styles = $this->get('Styles'); - $this->scripts = $this->get('Scripts'); + $this->styles = $this->get('Styles') ?? []; + $this->scripts = $this->get('Scripts') ?? []; // get action permissions $this->canDo = ###Component###Helper::getActions('###view###', $this->item); // get input @@ -97,6 +177,9 @@ class HtmlView extends BaseHtmlView protected function addToolbar(): void { ###ADDTOOLBAR### + + // now initiate the toolbar + $this->toolbar ??= Toolbar::getInstance(); } /** diff --git a/admin/compiler/joomla_4/SITE_DISPLAY_CONTROLLER.php b/admin/compiler/joomla_4/SITE_DISPLAY_CONTROLLER.php index 704227616..110caef0b 100644 --- a/admin/compiler/joomla_4/SITE_DISPLAY_CONTROLLER.php +++ b/admin/compiler/joomla_4/SITE_DISPLAY_CONTROLLER.php @@ -15,9 +15,13 @@ defined('_JCB_TEMPLATE') or die; ###BOM### namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\Controller; +use Joomla\Input\Input; use Joomla\CMS\Factory; +use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\MVC\Controller\BaseController; +use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Router\Route; +use Joomla\CMS\User\User; use Joomla\Utilities\ArrayHelper; use Joomla\CMS\Language\Text; @@ -31,13 +35,50 @@ use Joomla\CMS\Language\Text; */ class DisplayController extends BaseController { + /** + * The allowed edit views. + * + * @var array + * @since 4.0.0 + */ + protected array $allowed_edit_views = [###SITE_ALLOW_EDIT_VIEWS_ARRAY### + ]; + + /** + * The application identity object. + * + * @var User + * @since 4.0.0 + */ + protected $identity; + + /** + * @param array $config An optional associative array of configuration settings. + * Recognized key values include 'name', 'default_task', 'model_path', and + * 'view_path' (this list is not meant to be comprehensive). + * @param MVCFactoryInterface|null $factory The factory. + * @param CMSApplication|null $app The Application for the dispatcher + * @param Input|null $input The Input object for the request + * + * @throws \Exception + * @since 3.0.1 + */ + public function __construct($config = [], MVCFactoryInterface $factory = null, $app = null, $input = null) + { + $app ??= Factory::getApplication(); + $this->identity ??= $app->getIdentity(); + + parent::__construct($config, $factory, $app, $input); + } + /** * Method to display a view. * - * @param boolean $cachable If true, the view output will be cached. - * @param boolean $urlparams An array of safe URL parameters and their variable types, for valid values see {@link InputFilter::clean()}. + * @param boolean $cachable If true, the view output will be cached. + * @param boolean|array $urlparams An array of safe URL parameters and their variable types, for valid values see {@link InputFilter::clean()}. * * @return DisplayController This object to support chaining. + * @throws \Exception * @since 1.5 */ function display($cachable = false, $urlparams = false) @@ -51,14 +92,13 @@ class DisplayController extends BaseController $cachable = true; // ensure that the view is not cashable if edit view or if user is logged in - $user = $this->app->getIdentity(); - if ($user->get('id') || $this->input->getMethod() === 'POST' || $isEdit) + if ($this->identity->get('id') || $this->input->getMethod() === 'POST' || $isEdit) { $cachable = false; } // Check for edit form. - if ($isEdit && !$this->checkEditId('com_###component###.edit.'.$view, $id)) + if ($isEdit && !$this->checkEditId($view, $id)) { // check if item was opened from other than its own list view $ref = $this->input->getCmd('ref', 0); @@ -68,12 +108,12 @@ class DisplayController extends BaseController if ($refid > 0 && Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($ref)) { // redirect to item of ref - $this->setRedirect(Route::_('index.php?option=com_###component###&view='.(string)$ref.'&layout=edit&id='.(int)$refid, false)); + $this->setRedirect(Route::_('index.php?option=com_###component###&view=' . (string) $ref . '&layout=edit&id=' . (int) $refid, false)); } elseif (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($ref)) { // redirect to ref - $this->setRedirect(Route::_('index.php?option=com_###component###&view='.(string)$ref, false)); + $this->setRedirect(Route::_('index.php?option=com_###component###&view=' . (string) $ref, false)); } else { @@ -115,18 +155,133 @@ class DisplayController extends BaseController return $this; } - protected function checkEditView($view) + /** + * Method to check whether an ID is in the edit list. + * + * @param string $context The view name. + * @param integer $id The ID of the record to add to the edit list. + * + * @return boolean True if the ID is in the edit list. + * + * @throws \Exception + * @since 3.0 + */ + protected function checkEditId($context, $id) + { + if (parent::checkEditId("com_###component###.edit.{$context}", $id)) + { + return true; + } + + // check user edit access + if ($this->canEditId($context, $id)) + { + $this->holdEditId("com_###component###.edit.{$context}", $id); + + return true; + } + + return false; + } + + /** + * Method to check whether an ID is allowed to be edited by the active user. + * + * @param string $view The view name. + * @param integer $id The ID of the record to add to the edit list. + * + * @return boolean True if the ID is in the edit list. + * + * @since 5.0.2 + */ + protected function canEditId($view, $id): bool + { + // check that this view is even allowed + $allowed = $this->getAllowedEditView($view); + if ($allowed === null) + { + return false; + } + + // check if this item has custom function set for canEditId + if (isset($allowed['function']) + && method_exists($this, $allowed['function']) + && $this->{$allowed['function']}(['id' => $id], 'id')) + { + return true; + } + + // check if this item can be accessed (and has access) + $access = true; + if (isset($allowed['access'])) + { + $access = ($this->identity->authorise($allowed['access'], "com_###component###.{$view}." . (int) $id) + && $this->identity->authorise($allowed['access'], 'com_###component###')); + } + + // check if this item can be edited + $edit = false; + if ($access && isset($allowed['edit'])) + { + $edit = ($this->identity->authorise($allowed['edit'], "com_###component###.{$view}." . (int) $id) + && $this->identity->authorise($allowed['edit'], 'com_###component###')); + } + + // check if this item can be edited by owner + if ($access && !$edit && isset($allowed['edit.own'])) + { + $edit = ($this->identity->authorise($allowed['edit.own'], "com_###component###.{$view}." . (int) $id) + && $this->identity->authorise($allowed['edit.own'], 'com_###component###')); + } + + return $edit; + } + + /** + * Checks if the provided view is an edit view. + * + * This method verifies whether the given view name is recognized as an edit view. + * It uses the StringHelper::check() method to validate the input and then checks + * against a predefined list of edit views. + * + * @param string|null $view The name of the view to check. + * + * @return bool True if the view is an edit view, false otherwise. + * @since 4.0.0 + */ + protected function checkEditView(?string $view): bool { if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($view)) { - $views = [###SITE_EDIT_VIEW_ARRAY### - ]; - // check if this is a edit view - if (in_array($view,$views)) + // check if this is an edit view + if (isset($this->allowed_edit_views[$view])) { return true; } } + return false; } + + /** + * Get the allowed edit view permission map + * + * @param string|null $view The name of the view to check. + * + * @return array|null The permissions map + * @since 5.0.2 + */ + protected function getAllowedEditView(?string $view): ?array + { + if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($view)) + { + // check if this is an edit view + if (isset($this->allowed_edit_views[$view])) + { + return $this->allowed_edit_views[$view]; + } + } + + return null; + }###SITE_ALLOW_EDIT_VIEWS_FUNCTIONS### } diff --git a/admin/compiler/joomla_4/SITE_VIEWS_HTML.php b/admin/compiler/joomla_4/SITE_VIEWS_HTML.php index 7cf77c74c..a01ccbb92 100644 --- a/admin/compiler/joomla_4/SITE_VIEWS_HTML.php +++ b/admin/compiler/joomla_4/SITE_VIEWS_HTML.php @@ -27,6 +27,54 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\View\### */ class HtmlView extends BaseHtmlView { + /** + * The items from the model + * + * @var mixed + * @since 3.10.11 + */ + public mixed $items; + + /** + * The toolbar object + * + * @var Toolbar + * @since 3.10.11 + */ + public Toolbar $toolbar; + + /** + * The styles url array + * + * @var array + * @since 5.0.0 + */ + protected array $styles; + + /** + * The scripts url array + * + * @var array + * @since 5.0.0 + */ + protected array $scripts; + + /** + * The actions object + * + * @var object + * @since 3.10.11 + */ + public object $canDo; + + /** + * The user object. + * + * @var Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power + * @since 3.10.11 + */ + public Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power $user; + /** * Display the view * @@ -82,6 +130,7 @@ class HtmlView extends BaseHtmlView { ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url); } + // now initiate the toolbar $this->toolbar = Toolbar::getInstance(); }###SITE_GET_MODULE### diff --git a/admin/compiler/joomla_4/SITE_VIEW_CONTROLLER.php b/admin/compiler/joomla_4/SITE_VIEW_CONTROLLER.php index 6c8ff320f..37de516f6 100644 --- a/admin/compiler/joomla_4/SITE_VIEW_CONTROLLER.php +++ b/admin/compiler/joomla_4/SITE_VIEW_CONTROLLER.php @@ -25,7 +25,7 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\Controll * * @since 1.6 */ -class ###SView###Controller extends FormController +class ###SView###Controller extends Joomla___907ccae5_57a9_44b9_a8aa_5b905d1cd70f___Power { /** * The prefix to use with controller messages. @@ -107,14 +107,14 @@ class ###SView###Controller extends FormController * Function that allows child controller access to model data * after the data has been saved. * - * @param BaseDatabaseModel $model The data model object. + * @param Joomla___6dce7a1b_cfc3_4c2a_837d_be9cbc902446___Power $model The data model object. * @param array $validData The validated data. * * @return void * * @since 12.2 */ - protected function postSaveHook(BaseDatabaseModel $model, $validData = []) + protected function postSaveHook(Joomla___6dce7a1b_cfc3_4c2a_837d_be9cbc902446___Power $model, $validData = []) { } } diff --git a/admin/compiler/joomla_4/SITE_VIEW_HTML.php b/admin/compiler/joomla_4/SITE_VIEW_HTML.php index 56b208d85..375cf05a0 100644 --- a/admin/compiler/joomla_4/SITE_VIEW_HTML.php +++ b/admin/compiler/joomla_4/SITE_VIEW_HTML.php @@ -27,6 +27,38 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\View\### */ class HtmlView extends BaseHtmlView { + /** + * The toolbar object + * + * @var Toolbar + * @since 3.10.11 + */ + public Toolbar $toolbar; + + /** + * The styles url array + * + * @var array + * @since 3.10.11 + */ + protected array $styles; + + /** + * The scripts url array + * + * @var array + * @since 3.10.11 + */ + protected array $scripts; + + /** + * The user object. + * + * @var Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power + * @since 3.10.11 + */ + public Joomla___effdaf6d_2275_425d_9f52_d4952e564d34___Power $user; + /** * Display the view * @@ -41,10 +73,10 @@ class HtmlView extends BaseHtmlView $this->app ??= Factory::getApplication(); $this->params = $this->app->getParams(); $this->menu = $this->app->getMenu()->getActive(); - $this->styles = $this->get('Styles'); - $this->scripts = $this->get('Scripts'); + $this->styles = $this->get('Styles') ?? []; + $this->scripts = $this->get('Scripts') ?? []; // get the user object - $this->user ??= $this->app->getIdentity();###SITE_DIPLAY_METHOD### + $this->user ??= $this->getCurrentUser();###SITE_DIPLAY_METHOD### }###SITE_EXTRA_DIPLAY_METHODS### /** @@ -82,8 +114,9 @@ class HtmlView extends BaseHtmlView { ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url); } + // now initiate the toolbar - $this->toolbar = Toolbar::getInstance(); + $this->toolbar ??= Toolbar::getInstance(); }###SITE_GET_MODULE### /** diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini index f84f778c4..7064250ba 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini @@ -3275,7 +3275,7 @@ COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_STATE_DESCRIPTION="Set the release COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_STATE_HINT="stable" COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_STATE_LABEL="Release State" COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_TARGET_VERSION_DESCRIPTION="Set the release target version" -COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_TARGET_VERSION_HINT="3.*" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_TARGET_VERSION_HINT="5\.[012]" COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_TARGET_VERSION_LABEL="Update Server Release Target Version" COM_COMPONENTBUILDER_COMPONENT_UPDATES_URL_DESCRIPTION="Enter Download Link" COM_COMPONENTBUILDER_COMPONENT_UPDATES_URL_HINT="http://www.example.com/file.zip" diff --git a/admin/models/forms/component_updates.xml b/admin/models/forms/component_updates.xml index 3f331e82b..c751c0c64 100644 --- a/admin/models/forms/component_updates.xml +++ b/admin/models/forms/component_updates.xml @@ -247,7 +247,7 @@ label="COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_TARGET_VERSION_LABEL" size="10" maxlength="50" - default="3.*" + default="5\.[012]" description="COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATE_TARGET_VERSION_DESCRIPTION" class="text_area" filter="string" diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql index 7bab526c0..03856fd4e 100644 --- a/admin/sql/install.mysql.utf8.sql +++ b/admin/sql/install.mysql.utf8.sql @@ -2086,7 +2086,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin_files_folders_urls -- INSERT INTO `#__componentbuilder_joomla_component` (`id`, `add_admin_event`, `add_backup_folder_path`, `add_css_admin`, `add_css_site`, `add_email_helper`, `add_git_folder_path`, `add_javascript`, `add_menu_prefix`, `add_namespace_prefix`, `add_php_helper_admin`, `add_php_helper_both`, `add_php_helper_site`, `add_php_method_uninstall`, `add_php_postflight_install`, `add_php_postflight_update`, `add_php_preflight_install`, `add_php_preflight_update`, `add_placeholders`, `add_powers`, `add_sales_server`, `add_site_event`, `add_sql`, `add_sql_uninstall`, `add_update_server`, `addcontributors`, `addfootable`, `addreadme`, `adduikit`, `assets_table_fix`, `author`, `backup_folder_path`, `bom`, `buildcomp`, `buildcompsql`, `companyname`, `component_version`, `copyright`, `created`, `creatuserhelper`, `crowdin_account_api_key`, `crowdin_project_api_key`, `crowdin_project_identifier`, `crowdin_username`, `css_admin`, `css_site`, `dashboard`, `dashboard_type`, `debug_linenr`, `description`, `email`, `emptycontributors`, `export_buy_link`, `export_key`, `git_folder_path`, `guid`, `image`, `javascript`, `joomla_source_link`, `license`, `menu_prefix`, `modified`, `mvc_versiondate`, `name`, `name_code`, `namespace_prefix`, `number`, `php_admin_event`, `php_helper_admin`, `php_helper_both`, `php_helper_site`, `php_method_uninstall`, `php_postflight_install`, `php_postflight_update`, `php_preflight_install`, `php_preflight_update`, `php_site_event`, `php_method_install`, `readme`, `remove_line_breaks`, `sales_server`, `short_description`, `sql`, `sql_uninstall`, `system_name`, `toignore`, `translation_tool`, `update_server`, `update_server_target`, `update_server_url`, `website`, `params`, `published`, `version`, `hits`, `access`, `ordering`) VALUES -(25, '', '', '', '', '', '', '', 1, '', '', '', 1, '', 1, '', '', '', '', 1, '', '', '', '', 1, '{}', '', 1, 1, 3, 'Llewellyn van der Merwe', '', 'default.txt', '', '', 'Vast Development Method', '2.1.0', 'Copyright (C) 2015. All Rights Reserved', '2016-10-18 11:44:09', '', 'mvVkzmHCEIoBhzD3gR3uTzXRGwNVNRWw8Hr1vrXxb+I=', 'BbloLSYT6Yup6v3I/YNmrdOwzjbI4BGfDvJSB82N9DU=', '', 'VtSt2RMz+AHCrwc7jk1G70t83ZwZsNp2upqfzMyaVHE=', '', '', '', 1, '', 'Just a basic demo of the most basic implementations of the [Joomla](http://www.joomla.org) Component Builder\'s ability.', 'joomla@vdm.io', '', '', 'nZDegSPK87rXA4KMC6P8I6zEldjVIJpPYGRPZlKBI+U=', '', 'efde995e-60aa-4b39-b644-44349dfb660d', 'images/vdm/demo500.jpg', '', 'https://github.com/Llewellynvdm/Joomla-Demo-Component', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', '»', '2024-01-19 11:57:08', '', 'Demo', 'demo', 'JCB', 4, '', '', '', 'CS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGZhbmN5IGRhdGUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhbmN5RGF0ZSgkZGF0ZSkNCgl7DQoJCWlmICghc2VsZjo6aXNWYWxpZFRpbWVTdGFtcCgkZGF0ZSkpDQoJCXsNCgkJCSRkYXRlID0gc3RydG90aW1lKCRkYXRlKTsNCgkJfQ0KCQlyZXR1cm4gZGF0ZSgnalMgXG9cZiBGIFknLCRkYXRlKTsNCgl9DQoNCgkvKioNCgkgKglDaGFuZ2UgdG8gbmljZSBmYW5jeSB0aW1lIGFuZCBkYXRlDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeURhdGVUaW1lKCR0aW1lKQ0KCXsNCgkJaWYgKCFzZWxmOjppc1ZhbGlkVGltZVN0YW1wKCR0aW1lKSkNCgkJew0KCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJHRpbWUpOw0KCQl9DQoJCXJldHVybiBkYXRlKCcoRzppKSBqUyBcb1xmIEYgWScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGhvdXI6bWludXRlcyB0aW1lDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeVRpbWUoJHRpbWUpDQoJew0KCQlpZiAoIXNlbGY6OmlzVmFsaWRUaW1lU3RhbXAoJHRpbWUpKQ0KCQl7DQoJCQkkdGltZSA9IHN0cnRvdGltZSgkdGltZSk7DQoJCX0NCgkJcmV0dXJuIGRhdGUoJ0c6aScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHRpbWUgc3RhbXANCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RhbXAoJHRpbWVzdGFtcCkNCgl7DQoJCXJldHVybiAoKGludCkgJHRpbWVzdGFtcCA9PT0gJHRpbWVzdGFtcCkNCgkJJiYgKCR0aW1lc3RhbXAgPD0gUEhQX0lOVF9NQVgpDQoJCSYmICgkdGltZXN0YW1wID49IH5QSFBfSU5UX01BWCk7DQoJfQ0K', '', 'CQkvLyBHZXQgQXBwbGljYXRpb24gb2JqZWN0DQoJCSRhcHAgPSBGYWN0b3J5OjpnZXRBcHBsaWNhdGlvbigpOw0KCQkkYXBwLT5lbnF1ZXVlTWVzc2FnZSgnVGhpcyBpcyBhIGRlbW8gY29tcG9uZW50IGRldmVsb3BlZCBpbiA8YSBocmVmPSJodHRwOi8vdmRtLmJ6L2NvbXBvbmVudC1idWlsZGVyIiB0YWdldD0iX2JhbG5rIiB0aXRsZT0iSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIj5KQ0I8L2E+ISBZb3UgY2FuIGJ1aWxkIG1vcmUgY29tcG9uZW50cyBsaWtlIHRoaXMgd2l0aCBKQ0IsIGNoZWNrb3V0IG91ciBwYWdlIG9uIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS92ZG0taW8vSm9vbWxhLUNvbXBvbmVudC1CdWlsZGVyIiB0YWdldD0iX2JhbG5rIiB0aXRsZT0iSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIj5naXRodWI8L2E+IGZvciBtb3JlIGluZm8uIFRoZSBmdXR1cmUgb2YgPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+Sm9vbWxhIENvbXBvbmVudCBEZXZlbG9wbWVudDwvYT4gaXMgSGVyZSEnLCAnSW5mbycpOw==', '', '', '', '', '', 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCltDVVNUT01DT0RFPXJlYWRNRWNvbnRyaWJ1dG9yc10=', '', '', 'Demo Component', '', '', 'Demo (public)', '.git', '', '', 2, 'https://raw.githubusercontent.com/namibia/demo-joomla-3-component/master/demo_updateserver.xml', 'https://www.vdm.io/', '{\"language_options\":{\"activate\":\"0\",\"use_percentagelanguageadd\":\"1\",\"percentagelanguageadd\":\"50\"},\"joomla_component_headers\":{\"add_admin_component\":\"0\",\"admin_component\":\"\",\"power_admin_component\":[],\"add_site_component\":\"0\",\"site_component\":\"\",\"power_site_component\":[],\"add_admin_helper\":\"0\",\"admin_helper\":\"\",\"power_admin_helper\":[],\"add_site_helper\":\"0\",\"site_helper\":\"\",\"power_site_helper\":[]}}', 1, 54, '', 1, 10); +(25, '', '', '', '', '', '', '', 1, '', '', 1, '', '', 1, '', '', '', '', 1, '', '', '', '', 1, '{}', '', 1, 3, 3, 'Llewellyn van der Merwe', '', 'default.txt', '', '', 'Vast Development Method', '5.0.0', 'Copyright (C) 2015. All Rights Reserved', '2016-10-18 11:44:09', '', 'JEl15Tox48qBC67gFA3BFmY1Ti/z8VfnxnSdEkgC330=', 'U78ZMsh7lfg/PmyRyrhMJ81r0PMKHYghhRW/GU6P/KI=', '', '4Pce5rC1MUF+opQEt9cE9In8yOrdYepDEJKpNQOx7SE=', '', '', '', 1, '', 'Just a basic demo of the most basic implementations of the [Joomla](http://www.joomla.org) Component Builder\'s ability.', 'joomla@vdm.io', '', '', 'QvjfxcSoqPTlwNZqSIbptkk/kZrnMWIzOEEQ2xFuLd0=', '', 'efde995e-60aa-4b39-b644-44349dfb660d', 'images/vdm/demo500.jpg', '', 'https://github.com/Llewellynvdm/Joomla-Demo-Component', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', '»', '2024-07-24 14:34:48', '', 'Demo', 'Demo', 'JCB', 4, '', '', 'CS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGZhbmN5IGRhdGUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhbmN5RGF0ZSgkZGF0ZSkNCgl7DQoJCWlmICghc2VsZjo6aXNWYWxpZFRpbWVTdGFtcCgkZGF0ZSkpDQoJCXsNCgkJCSRkYXRlID0gc3RydG90aW1lKCRkYXRlKTsNCgkJfQ0KCQlyZXR1cm4gZGF0ZSgnalMgXG9cZiBGIFknLCRkYXRlKTsNCgl9DQoNCgkvKioNCgkgKglDaGFuZ2UgdG8gbmljZSBmYW5jeSB0aW1lIGFuZCBkYXRlDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeURhdGVUaW1lKCR0aW1lKQ0KCXsNCgkJaWYgKCFzZWxmOjppc1ZhbGlkVGltZVN0YW1wKCR0aW1lKSkNCgkJew0KCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJHRpbWUpOw0KCQl9DQoJCXJldHVybiBkYXRlKCcoRzppKSBqUyBcb1xmIEYgWScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGhvdXI6bWludXRlcyB0aW1lDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeVRpbWUoJHRpbWUpDQoJew0KCQlpZiAoIXNlbGY6OmlzVmFsaWRUaW1lU3RhbXAoJHRpbWUpKQ0KCQl7DQoJCQkkdGltZSA9IHN0cnRvdGltZSgkdGltZSk7DQoJCX0NCgkJcmV0dXJuIGRhdGUoJ0c6aScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHRpbWUgc3RhbXANCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RhbXAoJHRpbWVzdGFtcCkNCgl7DQoJCXJldHVybiAoKGludCkgJHRpbWVzdGFtcCA9PT0gJHRpbWVzdGFtcCkNCgkJJiYgKCR0aW1lc3RhbXAgPD0gUEhQX0lOVF9NQVgpDQoJCSYmICgkdGltZXN0YW1wID49IH5QSFBfSU5UX01BWCk7DQoJfQ==', '', '', 'CQkvLyBHZXQgQXBwbGljYXRpb24gb2JqZWN0DQoJCSRhcHAgPSBGYWN0b3J5OjpnZXRBcHBsaWNhdGlvbigpOw0KCQkkYXBwLT5lbnF1ZXVlTWVzc2FnZSgnVGhpcyBpcyBhIGRlbW8gY29tcG9uZW50IGRldmVsb3BlZCBpbiA8YSBocmVmPSJodHRwOi8vdmRtLmJ6L2NvbXBvbmVudC1idWlsZGVyIiB0YWdldD0iX2JhbG5rIiB0aXRsZT0iSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIj5KQ0I8L2E+ISBZb3UgY2FuIGJ1aWxkIG1vcmUgY29tcG9uZW50cyBsaWtlIHRoaXMgd2l0aCBKQ0IsIGNoZWNrb3V0IG91ciBwYWdlIG9uIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS92ZG0taW8vSm9vbWxhLUNvbXBvbmVudC1CdWlsZGVyIiB0YWdldD0iX2JhbG5rIiB0aXRsZT0iSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIj5naXRodWI8L2E+IGZvciBtb3JlIGluZm8uIFRoZSBmdXR1cmUgb2YgPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+Sm9vbWxhIENvbXBvbmVudCBEZXZlbG9wbWVudDwvYT4gaXMgSGVyZSEnLCAnSW5mbycpOw==', '', '', '', '', '', 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCltDVVNUT01DT0RFPXJlYWRNRWNvbnRyaWJ1dG9yc10=', '', '', 'Demo Component', '', '', 'Demo (public)', '.git', '', '', 2, 'https://raw.githubusercontent.com/namibia/demo-joomla-3-component/master/demo_updateserver.xml', 'https://www.vdm.io/', '{\"language_options\":{\"activate\":\"0\",\"use_percentagelanguageadd\":\"1\",\"percentagelanguageadd\":\"50\"},\"joomla_component_headers\":{\"add_admin_component\":\"0\",\"admin_component\":\"\",\"power_admin_component\":[],\"add_site_component\":\"0\",\"site_component\":\"\",\"power_site_component\":[],\"add_admin_helper\":\"0\",\"admin_helper\":\"\",\"power_admin_helper\":[],\"add_site_helper\":\"0\",\"site_helper\":\"\",\"power_site_helper\":[]}}', 1, 57, '', 1, 10); -- -- Dumping data for table `#__componentbuilder_joomla_plugin` @@ -2103,15 +2103,15 @@ INSERT INTO `#__componentbuilder_joomla_plugin` (`id`, `add_head`, `add_php_meth -- INSERT INTO `#__componentbuilder_admin_view` (`id`, `add_css_view`, `add_css_views`, `add_custom_button`, `add_custom_import`, `add_fadein`, `add_javascript_view_file`, `add_javascript_view_footer`, `add_javascript_views_file`, `add_javascript_views_footer`, `add_php_ajax`, `add_php_allowedit`, `add_php_batchcopy`, `add_php_batchmove`, `add_php_getitem`, `add_php_getitems`, `add_php_getitems_after_all`, `add_php_getlistquery`, `add_php_postsavehook`, `add_php_save`, `add_sql`, `addlinked_views`, `addpermissions`, `addtables`, `addtabs`, `add_php_before_delete`, `add_php_before_publish`, `add_php_document`, `add_php_after_delete`, `add_php_after_publish`, `php_before_delete`, `php_before_publish`, `php_controller`, `php_document`, `php_after_delete`, `php_after_publish`, `ajax_input`, `css_view`, `css_views`, `custom_button`, `description`, `html_import_view`, `icon`, `icon_add`, `icon_category`, `javascript_view_file`, `javascript_view_footer`, `javascript_views_file`, `javascript_views_footer`, `name_list`, `system_name`, `name_single`, `php_ajaxmethod`, `php_allowedit`, `php_batchcopy`, `php_batchmove`, `php_getitem`, `php_getitems`, `php_getitems_after_all`, `php_getlistquery`, `php_import`, `php_import_display`, `php_import_save`, `php_import_setdata`, `php_model`, `php_postsavehook`, `php_save`, `short_description`, `source`, `sql`, `type`, `php_before_save`, `php_controller_list`, `php_getform`, `php_after_cancel`, `php_allowadd`, `php_before_cancel`, `php_import_ext`, `php_import_headers`, `php_model_list`, `params`, `published`, `created`, `modified`, `version`, `hits`, `ordering`, `guid`) VALUES -(109, '', '', '', '', 1, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{\"addtabs0\":{\"name\":\"Details\"},\"addtabs1\":{\"name\":\"More\"}}', '', '', '', '', '', '', '', '', '', '', '', '{}', '', '', '{}', '', '', 'images/WoodMannequin-icon.png', 'images/WoodMannequin-icon-plus.png', '', '', '', '', '', 'Looks', 'Look', 'Look', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'The demo view', '', '', 1, '', '', '', '', '', '', '', '', '', '{\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"ASC\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"\",\"direction\":\"ASC\"}}},\"privacy\":{\"activate\":\"1\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"682\"}}', 1, '2016-10-18 11:44:46', '2020-05-21 14:39:27', 18, '', 110, 'c1053952-8a84-4398-aef1-41726f7c0043'); +(109, '', '', '', '', 1, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '{}', '{\"addpermissions0\":{\"action\":\"view.edit\",\"implementation\":3},\"addpermissions1\":{\"action\":\"view.edit.own\",\"implementation\":3},\"addpermissions2\":{\"action\":\"view.edit.state\",\"implementation\":3},\"addpermissions3\":{\"action\":\"view.edit.created_by\",\"implementation\":3},\"addpermissions4\":{\"action\":\"view.edit.created\",\"implementation\":3},\"addpermissions5\":{\"action\":\"view.create\",\"implementation\":3},\"addpermissions6\":{\"action\":\"view.delete\",\"implementation\":3},\"addpermissions7\":{\"action\":\"view.access\",\"implementation\":3}}', '{}', '{\"addtabs0\":{\"name\":\"Details\"},\"addtabs1\":{\"name\":\"More\"}}', '', '', '', '', '', '', '', '', '', '', '', '{}', '', '', '{}', '', '', 'images/WoodMannequin-icon.png', 'images/WoodMannequin-icon-plus.png', '', '', '', '', '', 'Looks', 'Look', 'Look', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'The demo view', '', '', 1, '', '', '', '', '', '', '', '', '', '{\"privacy\":{\"activate\":\"1\",\"permissions\":\"1\",\"anonymize\":\"0\",\"anonymize_fields\":[],\"user_link\":\"1\",\"custom_link\":\"$query->where($db->quoteName(\'created_by\') . \' = \' . $db->quote($user->id));\",\"other_user_field\":\"682\"},\"fieldordering\":{\"add_admin_ordering\":\"0\",\"admin_ordering_fields\":{\"admin_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}},\"add_linked_ordering\":\"0\",\"linked_ordering_fields\":{\"linked_ordering_fields0\":{\"field\":\"\",\"direction\":\"asc\"}}},\"admin_view_headers\":{\"add_admin_view_model\":\"0\",\"admin_view_model\":\"\",\"power_admin_view_model\":[],\"add_admin_view_html\":\"0\",\"admin_view_html\":\"\",\"power_admin_view_html\":[],\"add_admin_view\":\"0\",\"admin_view\":\"\",\"power_admin_view\":[],\"add_admin_view_controller\":\"0\",\"admin_view_controller\":\"\",\"power_admin_view_controller\":[],\"add_admin_views_model\":\"0\",\"admin_views_model\":\"\",\"power_admin_views_model\":[],\"add_admin_views_html\":\"0\",\"admin_views_html\":\"\",\"power_admin_views_html\":[],\"add_admin_views\":\"0\",\"admin_views\":\"\",\"power_admin_views\":[],\"add_admin_views_controller\":\"0\",\"admin_views_controller\":\"\",\"power_admin_views_controller\":[],\"add_site_admin_view_model\":\"0\",\"site_admin_view_model\":\"\",\"power_site_admin_view_model\":[],\"add_site_admin_view_html\":\"0\",\"site_admin_view_html\":\"\",\"power_site_admin_view_html\":[],\"add_site_admin_view\":\"0\",\"site_admin_view\":\"\",\"power_site_admin_view\":[],\"add_import_custom_controller\":\"0\",\"import_custom_controller\":\"\",\"power_import_custom_controller\":[],\"add_import_custom_model\":\"0\",\"import_custom_model\":\"\",\"power_import_custom_model\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, '2016-10-18 11:44:46', '2024-07-25 18:06:21', 22, '', 110, 'c1053952-8a84-4398-aef1-41726f7c0043'); -- -- Dumping data for table `#__componentbuilder_site_view` -- INSERT INTO `#__componentbuilder_site_view` (`id`, `add_css_document`, `add_css`, `add_js_document`, `add_php_document`, `add_php_jview`, `add_php_jview_display`, `add_php_view`, `add_php_ajax`, `add_custom_button`, `custom_button`, `button_position`, `php_controller`, `php_model`, `ajax_input`, `php_ajaxmethod`, `codename`, `css_document`, `css`, `custom_get`, `default`, `description`, `dynamic_get`, `js_document`, `main_get`, `name`, `system_name`, `php_document`, `php_jview`, `php_jview_display`, `php_view`, `snippet`, `params`, `javascript_file`, `libraries`, `published`, `created`, `modified`, `version`, `hits`, `ordering`, `guid`) VALUES -(23, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'looks', '', '', '', 'PHRhYmxlIGNsYXNzPSJ1ay10YWJsZSB1ay10YWJsZS1ob3ZlciI+DQogICAgPGNhcHRpb24+PD9waHAgZWNobyBUZXh0OjpfKCdMaXN0IG9mIGFsbCBsb29rcycpOyA/PjwvY2FwdGlvbj4NCiAgICA8dGhlYWQ+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0aD48P3BocCBlY2hvIFRleHQ6Ol8oJ05hbWUnKTsgPz48L3RoPg0KICAgICAgICAgICAgPHRoPjw/cGhwIGVjaG8gVGV4dDo6XygnRGVzY3JpcHRpb24nKTsgPz48L3RoPg0KICAgICAgICA8L3RyPg0KICAgIDwvdGhlYWQ+DQogICAgPHRib2R5Pg0KICAgICAgICA8P3BocCBmb3JlYWNoICgkdGhpcy0+aXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+PGEgaHJlZj0iPD9waHAgZWNobyAgW1tbQ29tcG9uZW50XV1dSGVscGVyUm91dGU6OmdldExvb2tpbmdSb3V0ZSgkaXRlbS0+c2x1Zyk7ID8+IiA+PD9waHAgZWNobyAkaXRlbS0+bmFtZTsgPz48L2E+PC90ZD4NCiAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR0aGlzLT5lc2NhcGUoJGl0ZW0tPmRlc2NyaXB0aW9uLCB0cnVlLCAxMjApOyA/Pjw/cGhwIGVjaG8gJGl0ZW0tPmVkaXRMaW5rOyA/PjwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDw/cGhwIGVuZGZvcmVhY2g7ID8+DQogICAgPC90Ym9keT4NCjwvdGFibGU+', 'The List of all published looks', 36, '', 36, 'Looks', 'Looks', '', '', '', '', '', '', '', '', 1, '2016-04-05 14:31:59', '2016-10-20 15:57:24', 9, '', 14, 'b2dce59e-e3b8-4467-bcb5-8f2df4bdfeb7'), -(25, '', '', '', '', 1, 1, '', '', '', '', 1, '', '', '', '', 'looking', '', '', '', 'PGFydGljbGUgY2xhc3M9InVrLWNvbW1lbnQiPg0KICAgIDxoZWFkZXIgY2xhc3M9InVrLWNvbW1lbnQtaGVhZGVyIj4NCiAgICAgICAgPGltZyBjbGFzcz0idWstY29tbWVudC1hdmF0YXIiIHNyYz0ie2ltYWdldXJsfSIgYWx0PSIiPg0KICAgICAgICA8aDQgY2xhc3M9InVrLWNvbW1lbnQtdGl0bGUiPjw/cGhwIGVjaG8gJHRoaXMtPmVzY2FwZSgkdGhpcy0+aXRlbS0+bmFtZSk7ID8+PC9oND4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstY29tbWVudC1tZXRhIj48P3BocCBlY2hvIFRleHQ6Ol8oJ0hpdHMnKTsgPz46IDw/cGhwIGVjaG8gJHRoaXMtPml0ZW0tPmhpdHM7ID8+PC9kaXY+DQogICAgPC9oZWFkZXI+DQogICAgPGRpdiBjbGFzcz0idWstY29tbWVudC1ib2R5Ij4NCiAgICAgICAgPD9waHAgZWNobyAkdGhpcy0+aXRlbS0+ZGVzY3JpcHRpb247ID8+DQogICAgICAgIDw/cGhwIGlmICgkdGhpcy0+aXRlbS0+YWRkKTogPz4NCiAgICAgICAgICAgIDxiciAvPg0KICAgICAgICAgICAgPCEtLSBUaGlzIGlzIGEgYnV0dG9uIHRvZ2dsaW5nIHRoZSBtb2RhbCAtLT4NCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InVrLWJ1dHRvbiIgZGF0YS11ay1tb2RhbD0ie3RhcmdldDonI21vcmUtZGV0YWlscy0wOTAnfSI+PD9waHAgZWNobyBUZXh0OjpfKCdNb3JlIERldGFpbHMnKTsgPz48L2J1dHRvbj4NCiAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgPC9kaXY+DQo8L2FydGljbGU+DQo8P3BocCBpZiAoJHRoaXMtPml0ZW0tPmFkZCk6ID8+DQo8IS0tIFRoaXMgaXMgdGhlIG1vZGFsIC0tPg0KPGRpdiBpZD0ibW9yZS1kZXRhaWxzLTA5MCIgY2xhc3M9InVrLW1vZGFsIj4NCiAgICA8ZGl2IGNsYXNzPSJ1ay1tb2RhbC1kaWFsb2ciPg0KICAgICAgICA8YSBjbGFzcz0idWstbW9kYWwtY2xvc2UgdWstY2xvc2UiPjwvYT4NCiAgICAgICAgPGRsIGNsYXNzPSJ1ay1kZXNjcmlwdGlvbi1saXN0LWhvcml6b250YWwiPg0KICAgICAgICA8P3BocCBpZiAoU3VwZXJfX18xZjI4Y2I1M182MGQ5XzRkYjFfYjUxN18zYzdkYzZiNDI5ZWZfX19Qb3dlcjo6Y2hlY2soJHRoaXMtPml0ZW0tPmRhdGVvZmJpcnRoKSk6ID8+DQogICAgICAgICAgICA8ZHQ+PD9waHAgZWNobyBUZXh0OjpfKCdCaXJ0aCBkYXknKTsgPz48L2R0PjxkZD48P3BocCBlY2hvIFtbW0NvbXBvbmVudF1dXUhlbHBlcjo6ZmFuY3lEYXRlKCR0aGlzLT5lc2NhcGUoJHRoaXMtPml0ZW0tPmRhdGVvZmJpcnRoKSk7ID8+PC9kZD4NCiAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgIDw/cGhwIGlmIChTdXBlcl9fXzFmMjhjYjUzXzYwZDlfNGRiMV9iNTE3XzNjN2RjNmI0MjllZl9fX1Bvd2VyOjpjaGVjaygkdGhpcy0+aXRlbS0+ZW1haWwpKTogPz4NCiAgICAgICAgICAgIDxkdD48P3BocCBlY2hvIFRleHQ6Ol8oJ0VtYWlsJyk7ID8+PC9kdD48ZGQ+PD9waHAgZWNobyAkdGhpcy0+ZXNjYXBlKCR0aGlzLT5pdGVtLT5lbWFpbCk7ID8+PC9kZD4NCiAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgIDw/cGhwIGlmIChTdXBlcl9fXzFmMjhjYjUzXzYwZDlfNGRiMV9iNTE3XzNjN2RjNmI0MjllZl9fX1Bvd2VyOjpjaGVjaygkdGhpcy0+aXRlbS0+bW9iaWxlX3Bob25lKSk6ID8+DQogICAgICAgICAgICA8ZHQ+PD9waHAgZWNobyBUZXh0OjpfKCdNb2JpbGUnKTsgPz48L2R0PjxkZD48P3BocCBlY2hvICR0aGlzLT5lc2NhcGUoJHRoaXMtPml0ZW0tPm1vYmlsZV9waG9uZSk7ID8+PC9kZD4NCiAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgIDw/cGhwIGlmIChTdXBlcl9fXzFmMjhjYjUzXzYwZDlfNGRiMV9iNTE3XzNjN2RjNmI0MjllZl9fX1Bvd2VyOjpjaGVjaygkdGhpcy0+aXRlbS0+d2Vic2l0ZSkpOiA/Pg0KICAgICAgICAgICAgPGR0Pjw/cGhwIGVjaG8gVGV4dDo6XygnV2Vic2l0ZScpOyA/PjwvZHQ+PGRkPjw/cGhwIGVjaG8gJHRoaXMtPmVzY2FwZSgkdGhpcy0+aXRlbS0+d2Vic2l0ZSk7ID8+PC9kZD4NCiAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgIDwvZGw+DQogICAgPC9kaXY+DQo8L2Rpdj4NCjw/cGhwIGVuZGlmOyA/Pg==', 'Looking at a look', 39, '', 39, 'Looking', 'Looking', '', 'CSAvKioNCgkgKiBJbmNyZW1lbnQgdGhlIGhpdCBjb3VudGVyIGZvciB0aGUgcHJlYWNoZXIuDQoJICoNCgkgKiBAcGFyYW0gICBpbnRlZ2VyICAkcGsgIFByaW1hcnkga2V5IG9mIHRoZSBwcmVhY2hlciB0byBpbmNyZW1lbnQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHN1Y2Nlc3NmdWw7DQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGhpdCgkcGsgPSAwKQ0KCXsNCgkJaWYgKCRwaykNCgkJew0KCQkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCQkvLyBGaWVsZHMgdG8gdXBkYXRlLg0KCQkJJGZpZWxkcyA9IGFycmF5KA0KCQkJICAgICRkYi0+cXVvdGVOYW1lKCdoaXRzJykgLiAnID0gJy4kZGItPnF1b3RlTmFtZSgnaGl0cycpLicgKyAxJw0KCQkJKTsNCg0KCQkJLy8gQ29uZGl0aW9ucyBmb3Igd2hpY2ggcmVjb3JkcyBzaG91bGQgYmUgdXBkYXRlZC4NCgkJCSRjb25kaXRpb25zID0gYXJyYXkoDQoJCQkgICAgJGRiLT5xdW90ZU5hbWUoJ2lkJykgLiAnID0gJyAuICRwaw0KCQkJKTsNCg0KCQkJJHF1ZXJ5LT51cGRhdGUoJGRiLT5xdW90ZU5hbWUoJyNfX1tbW2NvbXBvbmVudF1dXV9sb29rJykpLT5zZXQoJGZpZWxkcyktPndoZXJlKCRjb25kaXRpb25zKTsNCg0KCQkJJGRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJcmV0dXJuICRkYi0+ZXhlY3V0ZSgpOw0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9', 'Ly8gYWRkIGEgaGl0IHRvIHRoZSBsb29rDQppZiAoJHRoaXMtPmhpdCgkdGhpcy0+aXRlbS0+aWQpKQ0Kew0KCSR0aGlzLT5pdGVtLT5oaXRzKys7DQp9', '', '', '', '', '', 1, '2016-10-20 15:11:29', '2016-10-20 17:10:58', 16, '', 14, '851ed44e-5431-4951-876f-4b62a4c56ad2'); +(23, '', '', '', '', '', '', '', '', '', '{}', '', '', '', '{}', '', 'looks', '', '', '', 'PHRhYmxlIGNsYXNzPSJ1ay10YWJsZSB1ay10YWJsZS1ob3ZlciI+DQogICAgPGNhcHRpb24+PD9waHAgZWNobyBUZXh0OjpfKCdMaXN0IG9mIGFsbCBsb29rcycpOyA/PjwvY2FwdGlvbj4NCiAgICA8dGhlYWQ+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0aD48P3BocCBlY2hvIFRleHQ6Ol8oJ05hbWUnKTsgPz48L3RoPg0KICAgICAgICAgICAgPHRoPjw/cGhwIGVjaG8gVGV4dDo6XygnRGVzY3JpcHRpb24nKTsgPz48L3RoPg0KICAgICAgICA8L3RyPg0KICAgIDwvdGhlYWQ+DQogICAgPHRib2R5Pg0KICAgICAgICA8P3BocCBmb3JlYWNoICgkdGhpcy0+aXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+PGEgaHJlZj0iPD9waHAgZWNobyAgSm9vbWxhX19fOTIxNjdmMThfODU0M180MGU4XzkyYWZfMDUzZWY0YzIxMGQxX19fUG93ZXI6OmdldExvb2tpbmdSb3V0ZSgkaXRlbS0+c2x1Zyk7ID8+IiA+PD9waHAgZWNobyAkaXRlbS0+bmFtZTsgPz48L2E+PC90ZD4NCiAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR0aGlzLT5lc2NhcGUoJGl0ZW0tPmRlc2NyaXB0aW9uLCB0cnVlLCAxMjApOyA/Pjw/cGhwIGVjaG8gJGl0ZW0tPmVkaXRMaW5rOyA/PjwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDw/cGhwIGVuZGZvcmVhY2g7ID8+DQogICAgPC90Ym9keT4NCjwvdGFibGU+', 'The List of all published looks', 36, '', 36, 'Looks', 'Looks', '', '', '', '', '', '{\"site_view_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', '', '', 1, '2016-04-05 14:31:59', '2024-07-24 14:31:08', 11, '', 14, 'b2dce59e-e3b8-4467-bcb5-8f2df4bdfeb7'), +(25, '', '', '', '', 1, 1, '', '', '', '{}', 1, '', '', '{}', '', 'looking', '', '', '', 'PGFydGljbGUgY2xhc3M9InVrLWNvbW1lbnQiPg0KICAgIDxoZWFkZXIgY2xhc3M9InVrLWNvbW1lbnQtaGVhZGVyIj4NCiAgICAgICAgPGltZyBjbGFzcz0idWstY29tbWVudC1hdmF0YXIiIHNyYz0ie2ltYWdldXJsfSIgYWx0PSIiPg0KICAgICAgICA8aDQgY2xhc3M9InVrLWNvbW1lbnQtdGl0bGUiPjw/cGhwIGVjaG8gJHRoaXMtPmVzY2FwZSgkdGhpcy0+aXRlbS0+bmFtZSk7ID8+PC9oND4NCiAgICAgICAgPGRpdiBjbGFzcz0idWstY29tbWVudC1tZXRhIj48P3BocCBlY2hvIFRleHQ6Ol8oJ0hpdHMnKTsgPz46IDw/cGhwIGVjaG8gJHRoaXMtPml0ZW0tPmhpdHM7ID8+PC9kaXY+DQogICAgPC9oZWFkZXI+DQogICAgPGRpdiBjbGFzcz0idWstY29tbWVudC1ib2R5Ij4NCiAgICAgICAgPD9waHAgZWNobyAkdGhpcy0+aXRlbS0+ZGVzY3JpcHRpb247ID8+DQogICAgICAgIDw/cGhwIGlmICgkdGhpcy0+aXRlbS0+YWRkKTogPz4NCiAgICAgICAgICAgIDxiciAvPg0KICAgICAgICAgICAgPCEtLSBUaGlzIGlzIGEgYnV0dG9uIHRvZ2dsaW5nIHRoZSBtb2RhbCAtLT4NCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InVrLWJ1dHRvbiIgdWstdG9nZ2xlPSJ0YXJnZXQ6ICNtb3JlLWRldGFpbHMtMDkwIj48P3BocCBlY2hvIFRleHQ6Ol8oJ01vcmUgRGV0YWlscycpOyA/PjwvYnV0dG9uPg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCjwvYXJ0aWNsZT4NCjw/cGhwIGlmICgkdGhpcy0+aXRlbS0+YWRkKTogPz4NCjwhLS0gVGhpcyBpcyB0aGUgbW9kYWwgLS0+DQo8ZGl2IGlkPSJtb3JlLWRldGFpbHMtMDkwIiB1ay1tb2RhbD4NCiAgICA8ZGl2IGNsYXNzPSJ1ay1tb2RhbC1kaWFsb2cgdWstbW9kYWwtYm9keSI+DQogICAgICAgIDxidXR0b24gY2xhc3M9InVrLW1vZGFsLWNsb3NlLWRlZmF1bHQiIHR5cGU9ImJ1dHRvbiIgdWstY2xvc2U+PC9idXR0b24+DQogICAgICAgIDxkbCBjbGFzcz0idWstZGVzY3JpcHRpb24tbGlzdCB1ay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXIiPg0KICAgICAgICA8P3BocCBpZiAoU3VwZXJfX18xZjI4Y2I1M182MGQ5XzRkYjFfYjUxN18zYzdkYzZiNDI5ZWZfX19Qb3dlcjo6Y2hlY2soJHRoaXMtPml0ZW0tPmRhdGVvZmJpcnRoKSk6ID8+DQogICAgICAgICAgICA8ZHQ+PD9waHAgZWNobyBUZXh0OjpfKCdCaXJ0aCBkYXknKTsgPz48L2R0PjxkZD48P3BocCBlY2hvIEpvb21sYV9fX2NmM2I5NWMxX2JhNTZfNDE5M184ZWI0XzkxNjQ1ODJiN2Y1NV9fX1Bvd2VyOjpmYW5jeURhdGUoJHRoaXMtPmVzY2FwZSgkdGhpcy0+aXRlbS0+ZGF0ZW9mYmlydGgpKTsgPz48L2RkPg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgPD9waHAgaWYgKFN1cGVyX19fMWYyOGNiNTNfNjBkOV80ZGIxX2I1MTdfM2M3ZGM2YjQyOWVmX19fUG93ZXI6OmNoZWNrKCR0aGlzLT5pdGVtLT5lbWFpbCkpOiA/Pg0KICAgICAgICAgICAgPGR0Pjw/cGhwIGVjaG8gVGV4dDo6XygnRW1haWwnKTsgPz48L2R0PjxkZD48P3BocCBlY2hvICR0aGlzLT5lc2NhcGUoJHRoaXMtPml0ZW0tPmVtYWlsKTsgPz48L2RkPg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgPD9waHAgaWYgKFN1cGVyX19fMWYyOGNiNTNfNjBkOV80ZGIxX2I1MTdfM2M3ZGM2YjQyOWVmX19fUG93ZXI6OmNoZWNrKCR0aGlzLT5pdGVtLT5tb2JpbGVfcGhvbmUpKTogPz4NCiAgICAgICAgICAgIDxkdD48P3BocCBlY2hvIFRleHQ6Ol8oJ01vYmlsZScpOyA/PjwvZHQ+PGRkPjw/cGhwIGVjaG8gJHRoaXMtPmVzY2FwZSgkdGhpcy0+aXRlbS0+bW9iaWxlX3Bob25lKTsgPz48L2RkPg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgPD9waHAgaWYgKFN1cGVyX19fMWYyOGNiNTNfNjBkOV80ZGIxX2I1MTdfM2M3ZGM2YjQyOWVmX19fUG93ZXI6OmNoZWNrKCR0aGlzLT5pdGVtLT53ZWJzaXRlKSk6ID8+DQogICAgICAgICAgICA8ZHQ+PD9waHAgZWNobyBUZXh0OjpfKCdXZWJzaXRlJyk7ID8+PC9kdD48ZGQ+PD9waHAgZWNobyAkdGhpcy0+ZXNjYXBlKCR0aGlzLT5pdGVtLT53ZWJzaXRlKTsgPz48L2RkPg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgPC9kbD4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KPD9waHAgZW5kaWY7ID8+', 'Looking at a look', 39, '', 39, 'Looking', 'Looking', '', 'CSAvKioNCgkgKiBJbmNyZW1lbnQgdGhlIGhpdCBjb3VudGVyIGZvciB0aGUgcHJlYWNoZXIuDQoJICoNCgkgKiBAcGFyYW0gICBpbnRlZ2VyICAkcGsgIFByaW1hcnkga2V5IG9mIHRoZSBwcmVhY2hlciB0byBpbmNyZW1lbnQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHN1Y2Nlc3NmdWw7DQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGhpdCgkcGsgPSAwKQ0KCXsNCgkJaWYgKCRwaykNCgkJew0KCQkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCQkvLyBGaWVsZHMgdG8gdXBkYXRlLg0KCQkJJGZpZWxkcyA9IGFycmF5KA0KCQkJICAgICRkYi0+cXVvdGVOYW1lKCdoaXRzJykgLiAnID0gJy4kZGItPnF1b3RlTmFtZSgnaGl0cycpLicgKyAxJw0KCQkJKTsNCg0KCQkJLy8gQ29uZGl0aW9ucyBmb3Igd2hpY2ggcmVjb3JkcyBzaG91bGQgYmUgdXBkYXRlZC4NCgkJCSRjb25kaXRpb25zID0gYXJyYXkoDQoJCQkgICAgJGRiLT5xdW90ZU5hbWUoJ2lkJykgLiAnID0gJyAuICRwaw0KCQkJKTsNCg0KCQkJJHF1ZXJ5LT51cGRhdGUoJGRiLT5xdW90ZU5hbWUoJyNfX1tbW2NvbXBvbmVudF1dXV9sb29rJykpLT5zZXQoJGZpZWxkcyktPndoZXJlKCRjb25kaXRpb25zKTsNCg0KCQkJJGRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJcmV0dXJuICRkYi0+ZXhlY3V0ZSgpOw0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9', 'Ly8gYWRkIGEgaGl0IHRvIHRoZSBsb29rDQppZiAoJHRoaXMtPmhpdCgkdGhpcy0+aXRlbS0+aWQpKQ0Kew0KCSR0aGlzLT5pdGVtLT5oaXRzKys7DQp9', '', '', '{\"site_view_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', '', '', 1, '2016-10-20 15:11:29', '2024-07-24 14:52:19', 19, '', 14, '851ed44e-5431-4951-876f-4b62a4c56ad2'); -- -- Dumping data for table `#__componentbuilder_layout` @@ -2624,7 +2624,7 @@ INSERT INTO `#__componentbuilder_library_config` (`id`, `addconfig`, `library`, INSERT INTO `#__componentbuilder_library_files_folders_urls` (`id`, `addfiles`, `addfolders`, `addurls`, `library`, `params`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES (2, '', '', '{\"addurls0\":{\"url\":\"https:\\/\\/maxcdn.bootstrapcdn.com\\/bootstrap\\/4.0.0-alpha.6\\/js\\/bootstrap.min.js\",\"type\":\"2\"},\"addurls1\":{\"url\":\"https:\\/\\/maxcdn.bootstrapcdn.com\\/bootstrap\\/4.0.0-alpha.6\\/css\\/bootstrap.min.css\",\"type\":\"2\"}}', 2, '', 1, '2017-11-25 16:17:36', '2018-05-02 23:29:05', 11, '', 2), -(3, '{}', '{}', '{\"addurls2\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/uikit@3.6.22\\/dist\\/css\\/uikit.min.css\",\"type\":2},\"addurls0\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/uikit@3.6.22\\/dist\\/js\\/uikit.min.js\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/uikit@3.6.22\\/dist\\/js\\/uikit-icons.min.js\",\"type\":2}}', 3, '', 1, '2017-11-25 21:47:40', '2021-05-27 00:16:34', 11, '', 3), +(3, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/uikit@3.21.7\\/dist\\/css\\/uikit.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/uikit@3.21.7\\/dist\\/js\\/uikit.min.js\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/uikit@3.21.7\\/dist\\/js\\/uikit-icons.min.js\",\"type\":2}}', 3, '', 1, '2017-11-25 21:47:40', '2024-07-24 15:01:17', 12, '', 3), (4, '{}', '{\"addfolders0\":{\"folder\":\"file_icon_vectors\",\"path\":\"\\/media\\/vector\",\"rename\":\"1\"}}', '{}', 7, '', 1, '2019-10-03 09:24:30', '2019-10-03 09:25:39', 2, '', 4), (5, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/grapesjs\\/0.14.15\\/css\\/grapes.min.css\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/grapesjs\\/0.14.15\\/grapes.min.js\",\"type\":2}}', 8, '', 1, '2020-02-10 21:34:33', '2020-02-18 21:12:35', 5, '', 5), (6, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/raw.githubusercontent.com\\/artf\\/grapesjs-preset-webpage\\/master\\/dist\\/grapesjs-preset-webpage.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/raw.githubusercontent.com\\/artf\\/grapesjs-preset-webpage\\/master\\/dist\\/grapesjs-preset-webpage.min.js\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/static.filestackapi.com\\/v3\\/filestack-0.1.10.js\",\"type\":2}}', 9, '', 1, '2020-02-18 21:13:16', '2020-02-18 21:14:11', 2, '', 5), diff --git a/admin/sql/updates/mysql/3.2.2.sql b/admin/sql/updates/mysql/3.2.2.sql new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/admin/sql/updates/mysql/3.2.2.sql @@ -0,0 +1 @@ + diff --git a/componentbuilder.xml b/componentbuilder.xml index 5c5464e23..21df7711f 100644 --- a/componentbuilder.xml +++ b/componentbuilder.xml @@ -1,15 +1,15 @@ COM_COMPONENTBUILDER - 20th July, 2024 + 26th July, 2024 Llewellyn van der Merwe joomla@vdm.io https://dev.vdm.io Copyright (C) 2015 Vast Development Method. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt - 3.2.2 + 3.2.3-alpha1 Component Builder (v.3.2.2) +

Component Builder (v.3.2.3-alpha1)

The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time. diff --git a/componentbuilder_update_server.xml b/componentbuilder_update_server.xml index 5ce11ceff..7092c356b 100644 --- a/componentbuilder_update_server.xml +++ b/componentbuilder_update_server.xml @@ -160,4 +160,22 @@ https://dev.vdm.io + + Component Builder + Builds Complex Joomla Components + pkg_component_builder + package + site + 3.2.3-alpha1 + https://dev.vdm.io + + https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.2.3-alpha1.zip + + + alpha + + Llewellyn van der Merwe + https://dev.vdm.io + + \ No newline at end of file diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEdit.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEdit.php index 39a2d363c..cada9c28c 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEdit.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEdit.php @@ -106,7 +106,7 @@ final class AllowEdit implements AllowEditInterface // prepare custom permission script $customAllow = $this->dispenser->get( - 'php_allowedit', $nameSingleCode, '', null, true + 'php_allowedit', $nameSingleCode ); if ($this->category->exists("{$nameListCode}")) diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEditViews.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEditViews.php new file mode 100644 index 000000000..ab73e33ba --- /dev/null +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFive/Controller/AllowEditViews.php @@ -0,0 +1,243 @@ + + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller; + + +use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission; +use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Category; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditViewsInterface; + + +/** + * Controller Allow Edit Views Class for Joomla 5 + * + * @since 5.0.2 + */ +final class AllowEditViews implements AllowEditViewsInterface +{ + /** + * The Permission Class. + * + * @var Permission + * @since 5.0.2 + */ + protected Permission $permission; + + /** + * The Dispenser Class. + * + * @var Dispenser + * @since 5.0.2 + */ + protected Dispenser $dispenser; + + /** + * The Category Class. + * + * @var Category + * @since 5.0.2 + */ + protected Category $category; + + /** + * The CategoryOtherName Class. + * + * @var CategoryOtherName + * @since 5.0.2 + */ + protected CategoryOtherName $categoryothername; + + /** + * Constructor. + * + * @param Permission $permission The Permission Class. + * @param Dispenser $dispenser The Dispenser Class. + * @param Category $category The Category Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. + * + * @since 5.0.2 + */ + public function __construct(Permission $permission, + Dispenser $dispenser, Category $category, + CategoryOtherName $categoryothername) + { + $this->permission = $permission; + $this->dispenser = $dispenser; + $this->category = $category; + $this->categoryothername = $categoryothername; + } + + /** + * Get Array Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The array of Code (string) + */ + public function getArray(array $views): string + { + $allow = []; + foreach ($views as $nameSingleCode => $nameListCode) + { + $allow[] = $this->getViewArray($nameSingleCode, $nameListCode); + } + + if ($allow === []) + { + return ''; + } + + return PHP_EOL . Indent::_(2) . implode("," . PHP_EOL . Indent::_(2), $allow); + } + + /** + * Get Custom Function Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The functions of Code (string) + */ + public function getFunctions(array $views): string + { + $allow = []; + foreach ($views as $nameSingleCode => $nameListCode) + { + if (($function = $this->getViewFunction($nameSingleCode, $nameListCode)) !== null) + { + $allow[] = $function; + } + } + + if ($allow === []) + { + return ''; + } + + return PHP_EOL . PHP_EOL . implode(PHP_EOL . PHP_EOL, $allow); + } + + /** + * Get View Permissions Array Code + * + * @param string $nameSingleCode The single code name of the view. + * @param string $nameListCode The list code name of the view. + * + * @since 3.2.0 + * @return string The allow edit method code + */ + protected function getViewArray(string $nameSingleCode, string $nameListCode): string + { + $allow = []; + + // prepare custom permission script + $customAllow = $this->dispenser->get( + 'php_allowedit', $nameSingleCode + ); + + if ($customAllow !== '') + { + $allow[] = Indent::_(3) . "'function' => 'allowEdit_{$nameSingleCode}'"; + } + + if ($this->category->exists("{$nameListCode}")) + { + // check if category has another name + $otherView = $this->categoryothername-> + get($nameListCode . '.view', $nameSingleCode); + + // check if the item has permissions. + if ($this->permission->globalExist($otherView, 'core.access')) + { + $access = $this->permission->getGlobal($otherView, 'core.access'); + $allow[] = Indent::_(3) . "'access' => '{$access}'"; + } + $edit = $this->permission->getAction($otherView, 'core.edit'); + $allow[] = Indent::_(3) . "'edit' => '{$edit}'"; + + $edit_own = $this->permission->getAction($otherView, 'core.edit.own'); + $allow[] = Indent::_(3) . "'edit.own' => '{$edit_own}'"; + } + else + { + // check if the item has permissions. + if ($this->permission->actionExist($nameSingleCode, 'core.access')) + { + $access = $this->permission->getAction($nameSingleCode, 'core.access'); + $allow[] = Indent::_(3) . "'access' => '{$access}'"; + } + $edit = $this->permission->getAction($nameSingleCode, 'core.edit'); + $allow[] = Indent::_(3) . "'edit' => '{$edit}'"; + + $edit_own = $this->permission->getAction($nameSingleCode, 'core.edit.own'); + $allow[] = Indent::_(3) . "'edit.own' => '{$edit_own}'"; + } + + return "'{$nameSingleCode}' => [" . PHP_EOL . implode(',' . PHP_EOL, $allow) . PHP_EOL . Indent::_(2) . ']'; + } + + /** + * Get View Permissions Function Code + * + * @param string $nameSingleCode The single code name of the view. + * @param string $nameListCode The list code name of the view. + * + * @since 3.2.0 + * @return string|null The allow edit method code + */ + protected function getViewFunction(string $nameSingleCode, string $nameListCode): ?string + { + $allow = []; + + // prepare custom permission script + $customAllow = $this->dispenser->get( + 'php_allowedit', $nameSingleCode + ); + + if ($customAllow !== '') + { + // setup the function + $allow[] = Indent::_(1) . '/**'; + $allow[] = Indent::_(1) . " * Method to check if you can edit an existing {$nameSingleCode} record."; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @param array $data An array of input data.'; + $allow[] = Indent::_(1) . ' * @param string $key The name of the key for the primary key.'; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @return boolean'; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @since 5.0.2'; + $allow[] = Indent::_(1) . ' */'; + $allow[] = Indent::_(1) . "protected function allowEdit_{$nameSingleCode}(\$data = [], \$key = 'id')"; + $allow[] = Indent::_(1) . '{'; + $allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get user object."; + $allow[] = Indent::_(2) . "\$user = \$this->identity;"; + $allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get record id."; + $allow[] = Indent::_(2) + . "\$recordId = (int) isset(\$data[\$key]) ? \$data[\$key] : 0;"; + // load custom permission script + $allow[] = $customAllow; + $allow[] = Indent::_(1) . '}'; + + return implode(PHP_EOL, $allow); + } + + return null; + } +} + diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEdit.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEdit.php index 0c5e0d5ba..666972c3c 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEdit.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEdit.php @@ -106,7 +106,7 @@ final class AllowEdit implements AllowEditInterface // prepare custom permission script $customAllow = $this->dispenser->get( - 'php_allowedit', $nameSingleCode, '', null, true + 'php_allowedit', $nameSingleCode ); if ($this->category->exists("{$nameListCode}")) diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEditViews.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEditViews.php new file mode 100644 index 000000000..9a2980b8a --- /dev/null +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaFour/Controller/AllowEditViews.php @@ -0,0 +1,243 @@ + + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller; + + +use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission; +use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Category; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditViewsInterface; + + +/** + * Controller Allow Edit Views Class for Joomla 4 + * + * @since 5.0.2 + */ +final class AllowEditViews implements AllowEditViewsInterface +{ + /** + * The Permission Class. + * + * @var Permission + * @since 5.0.2 + */ + protected Permission $permission; + + /** + * The Dispenser Class. + * + * @var Dispenser + * @since 5.0.2 + */ + protected Dispenser $dispenser; + + /** + * The Category Class. + * + * @var Category + * @since 5.0.2 + */ + protected Category $category; + + /** + * The CategoryOtherName Class. + * + * @var CategoryOtherName + * @since 5.0.2 + */ + protected CategoryOtherName $categoryothername; + + /** + * Constructor. + * + * @param Permission $permission The Permission Class. + * @param Dispenser $dispenser The Dispenser Class. + * @param Category $category The Category Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. + * + * @since 5.0.2 + */ + public function __construct(Permission $permission, + Dispenser $dispenser, Category $category, + CategoryOtherName $categoryothername) + { + $this->permission = $permission; + $this->dispenser = $dispenser; + $this->category = $category; + $this->categoryothername = $categoryothername; + } + + /** + * Get Array Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The array of Code (string) + */ + public function getArray(array $views): string + { + $allow = []; + foreach ($views as $nameSingleCode => $nameListCode) + { + $allow[] = $this->getViewArray($nameSingleCode, $nameListCode); + } + + if ($allow === []) + { + return ''; + } + + return PHP_EOL . Indent::_(2) . implode("," . PHP_EOL . Indent::_(2), $allow); + } + + /** + * Get Custom Function Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The functions of Code (string) + */ + public function getFunctions(array $views): string + { + $allow = []; + foreach ($views as $nameSingleCode => $nameListCode) + { + if (($function = $this->getViewFunction($nameSingleCode, $nameListCode)) !== null) + { + $allow[] = $function; + } + } + + if ($allow === []) + { + return ''; + } + + return PHP_EOL . PHP_EOL . implode(PHP_EOL . PHP_EOL, $allow); + } + + /** + * Get View Permissions Array Code + * + * @param string $nameSingleCode The single code name of the view. + * @param string $nameListCode The list code name of the view. + * + * @since 3.2.0 + * @return string The allow edit method code + */ + protected function getViewArray(string $nameSingleCode, string $nameListCode): string + { + $allow = []; + + // prepare custom permission script + $customAllow = $this->dispenser->get( + 'php_allowedit', $nameSingleCode + ); + + if ($customAllow !== '') + { + $allow[] = Indent::_(3) . "'function' => 'allowEdit_{$nameSingleCode}'"; + } + + if ($this->category->exists("{$nameListCode}")) + { + // check if category has another name + $otherView = $this->categoryothername-> + get($nameListCode . '.view', $nameSingleCode); + + // check if the item has permissions. + if ($this->permission->globalExist($otherView, 'core.access')) + { + $access = $this->permission->getGlobal($otherView, 'core.access'); + $allow[] = Indent::_(3) . "'access' => '{$access}'"; + } + $edit = $this->permission->getAction($otherView, 'core.edit'); + $allow[] = Indent::_(3) . "'edit' => '{$edit}'"; + + $edit_own = $this->permission->getAction($otherView, 'core.edit.own'); + $allow[] = Indent::_(3) . "'edit.own' => '{$edit_own}'"; + } + else + { + // check if the item has permissions. + if ($this->permission->actionExist($nameSingleCode, 'core.access')) + { + $access = $this->permission->getAction($nameSingleCode, 'core.access'); + $allow[] = Indent::_(3) . "'access' => '{$access}'"; + } + $edit = $this->permission->getAction($nameSingleCode, 'core.edit'); + $allow[] = Indent::_(3) . "'edit' => '{$edit}'"; + + $edit_own = $this->permission->getAction($nameSingleCode, 'core.edit.own'); + $allow[] = Indent::_(3) . "'edit.own' => '{$edit_own}'"; + } + + return "'{$nameSingleCode}' => [" . PHP_EOL . implode(',' . PHP_EOL, $allow) . PHP_EOL . Indent::_(2) . ']'; + } + + /** + * Get View Permissions Function Code + * + * @param string $nameSingleCode The single code name of the view. + * @param string $nameListCode The list code name of the view. + * + * @since 3.2.0 + * @return string|null The allow edit method code + */ + protected function getViewFunction(string $nameSingleCode, string $nameListCode): ?string + { + $allow = []; + + // prepare custom permission script + $customAllow = $this->dispenser->get( + 'php_allowedit', $nameSingleCode + ); + + if ($customAllow !== '') + { + // setup the function + $allow[] = Indent::_(1) . '/**'; + $allow[] = Indent::_(1) . " * Method to check if you can edit an existing {$nameSingleCode} record."; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @param array $data An array of input data.'; + $allow[] = Indent::_(1) . ' * @param string $key The name of the key for the primary key.'; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @return boolean'; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @since 5.0.2'; + $allow[] = Indent::_(1) . ' */'; + $allow[] = Indent::_(1) . "protected function allowEdit_{$nameSingleCode}(\$data = [], \$key = 'id')"; + $allow[] = Indent::_(1) . '{'; + $allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get user object."; + $allow[] = Indent::_(2) . "\$user = \$this->identity;"; + $allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get record id."; + $allow[] = Indent::_(2) + . "\$recordId = (int) isset(\$data[\$key]) ? \$data[\$key] : 0;"; + // load custom permission script + $allow[] = $customAllow; + $allow[] = Indent::_(1) . '}'; + + return implode(PHP_EOL, $allow); + } + + return null; + } +} + diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEdit.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEdit.php index b41909b7b..263062861 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEdit.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEdit.php @@ -106,7 +106,7 @@ final class AllowEdit implements AllowEditInterface // prepare custom permission script $customAllow = $this->dispenser->get( - 'php_allowedit', $nameSingleCode, '', null, true + 'php_allowedit', $nameSingleCode ); if ($this->category->exists("{$nameListCode}")) diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEditViews.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEditViews.php new file mode 100644 index 000000000..56e457f7e --- /dev/null +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Architecture/JoomlaThree/Controller/AllowEditViews.php @@ -0,0 +1,218 @@ + + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller; + + +use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission; +use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Category; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditViewsInterface; + + +/** + * Controller Allow Edit Views Class for Joomla 3 + * + * @since 5.0.2 + */ +final class AllowEditViews implements AllowEditViewsInterface +{ + /** + * The Permission Class. + * + * @var Permission + * @since 5.0.2 + */ + protected Permission $permission; + + /** + * The Dispenser Class. + * + * @var Dispenser + * @since 5.0.2 + */ + protected Dispenser $dispenser; + + /** + * The Category Class. + * + * @var Category + * @since 5.0.2 + */ + protected Category $category; + + /** + * The CategoryOtherName Class. + * + * @var CategoryOtherName + * @since 5.0.2 + */ + protected CategoryOtherName $categoryothername; + + /** + * Constructor. + * + * @param Permission $permission The Permission Class. + * @param Dispenser $dispenser The Dispenser Class. + * @param Category $category The Category Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. + * + * @since 5.0.2 + */ + public function __construct(Permission $permission, + Dispenser $dispenser, Category $category, + CategoryOtherName $categoryothername) + { + $this->permission = $permission; + $this->dispenser = $dispenser; + $this->category = $category; + $this->categoryothername = $categoryothername; + } + + /** + * Get Array Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The array of Code (string) + */ + public function getArray(array $views): string + { + return ''; // not used for now in Joomla 3 + } + + /** + * Get Custom Function Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The functions of Code (string) + */ + public function getFunctions(array $views): string + { + return ''; // not used for now in Joomla 3 + } + + /** + * Get View Permissions Array Code + * + * @param string $nameSingleCode The single code name of the view. + * @param string $nameListCode The list code name of the view. + * + * @since 3.2.0 + * @return string The allow edit method code + */ + protected function getViewArray(string $nameSingleCode, string $nameListCode): string + { + $allow = []; + + // prepare custom permission script + $customAllow = $this->dispenser->get( + 'php_allowedit', $nameSingleCode + ); + + if ($customAllow !== '') + { + $allow[] = Indent::_(3) . "'function' => 'allowEdit_{$nameSingleCode}'"; + } + + if ($this->category->exists("{$nameListCode}")) + { + // check if category has another name + $otherView = $this->categoryothername-> + get($nameListCode . '.view', $nameSingleCode); + + // check if the item has permissions. + if ($this->permission->globalExist($otherView, 'core.access')) + { + $access = $this->permission->getGlobal($otherView, 'core.access'); + $allow[] = Indent::_(3) . "'access' => '{$access}'"; + } + $edit = $this->permission->getAction($otherView, 'core.edit'); + $allow[] = Indent::_(3) . "'edit' => '{$edit}'"; + + $edit_own = $this->permission->getAction($otherView, 'core.edit.own'); + $allow[] = Indent::_(3) . "'edit.own' => '{$edit_own}'"; + } + else + { + // check if the item has permissions. + if ($this->permission->actionExist($nameSingleCode, 'core.access')) + { + $access = $this->permission->getAction($nameSingleCode, 'core.access'); + $allow[] = Indent::_(3) . "'access' => '{$access}'"; + } + $edit = $this->permission->getAction($nameSingleCode, 'core.edit'); + $allow[] = Indent::_(3) . "'edit' => '{$edit}'"; + + $edit_own = $this->permission->getAction($nameSingleCode, 'core.edit.own'); + $allow[] = Indent::_(3) . "'edit.own' => '{$edit_own}'"; + } + + return "'{$nameSingleCode}' => [" . PHP_EOL . implode(',' . PHP_EOL, $allow) . PHP_EOL . Indent::_(2) . ']'; + } + + /** + * Get View Permissions Function Code + * + * @param string $nameSingleCode The single code name of the view. + * @param string $nameListCode The list code name of the view. + * + * @since 3.2.0 + * @return string|null The allow edit method code + */ + protected function getViewFunction(string $nameSingleCode, string $nameListCode): ?string + { + $allow = []; + + // prepare custom permission script + $customAllow = $this->dispenser->get( + 'php_allowedit', $nameSingleCode + ); + + if ($customAllow !== '') + { + // setup the function + $allow[] = Indent::_(1) . '/**'; + $allow[] = Indent::_(1) . " * Method to check if you can edit an existing {$nameSingleCode} record."; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @param array $data An array of input data.'; + $allow[] = Indent::_(1) . ' * @param string $key The name of the key for the primary key.'; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @return boolean'; + $allow[] = Indent::_(1) . ' *'; + $allow[] = Indent::_(1) . ' * @since 5.0.2'; + $allow[] = Indent::_(1) . ' */'; + $allow[] = Indent::_(1) . "protected function allowEdit_{$nameSingleCode}(\$data = [], \$key = 'id')"; + $allow[] = Indent::_(1) . '{'; + $allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get user object."; + $allow[] = Indent::_(2) . "\$user = \$this->identity;"; + $allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get record id."; + $allow[] = Indent::_(2) + . "\$recordId = (int) isset(\$data[\$key]) ? \$data[\$key] : 0;"; + // load custom permission script + $allow[] = $customAllow; + $allow[] = Indent::_(1) . '}'; + + return implode(PHP_EOL, $allow); + } + + return null; + } +} + diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Infusion.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Infusion.php index 7a8f41ad6..657b5acdc 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Infusion.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Infusion.php @@ -386,8 +386,7 @@ class Infusion extends Interpretation ) && $view['edit_create_site_view'] > 0) { - $site_edit_view_array[] = Indent::_(4) . "'" - . $nameSingleCode . "'"; + $site_edit_view_array[$nameSingleCode] = $nameListCode; CFactory::_('Config')->lang_target = 'both'; // insure site view does not get removed CFactory::_('Config')->remove_site_edit_folder = false; @@ -1501,9 +1500,19 @@ class Infusion extends Interpretation PHP_EOL . implode("," . PHP_EOL, $viewarray) ); - // CUSTOM_ADMIN_EDIT_VIEW_ARRAY + // SITE_EDIT_VIEW_ARRAY (Joomla3 only) CFactory::_('Compiler.Builder.Content.One')->set('SITE_EDIT_VIEW_ARRAY', - PHP_EOL . implode("," . PHP_EOL, $site_edit_view_array) + PHP_EOL . Indent::_(4) . "'" . implode("'," . PHP_EOL . Indent::_(4) . "'", array_keys($site_edit_view_array)) . "'" + ); + + // SITE_ALLOW_EDIT_VIEWS_ARRAY + CFactory::_('Compiler.Builder.Content.One')->set('SITE_ALLOW_EDIT_VIEWS_ARRAY', + CFactory::_('Architecture.Controller.AllowEditViews')->getArray($site_edit_view_array) + ); + + // SITE_ALLOW_EDIT_VIEWS_FUNCTIONS + CFactory::_('Compiler.Builder.Content.One')->set('SITE_ALLOW_EDIT_VIEWS_FUNCTIONS', + CFactory::_('Architecture.Controller.AllowEditViews')->getFunctions($site_edit_view_array) ); // MAINMENUS diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Interpretation.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Interpretation.php index 6925919a1..4595f2d71 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Interpretation.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Helper/Interpretation.php @@ -13389,18 +13389,33 @@ class Interpretation extends Fields $tabs .= PHP_EOL . Indent::_(2) . '

'; $tabs .= PHP_EOL . Indent::_(3) . '
'; - $tabs .= PHP_EOL . Indent::_(4) . '
'; - $tabs .= PHP_EOL . Indent::_(5) . '
'; - $tabs .= PHP_EOL . Indent::_(5) - . "form->getFieldset('accesscontrol') as \$field): ?>"; - $tabs .= PHP_EOL . Indent::_(6) . "
"; - $tabs .= PHP_EOL . Indent::_(7) - . "label; echo \$field->input;?>"; - $tabs .= PHP_EOL . Indent::_(6) . "
"; - $tabs .= PHP_EOL . Indent::_(6) . '
'; - $tabs .= PHP_EOL . Indent::_(5) . ""; - $tabs .= PHP_EOL . Indent::_(5) . "
"; - $tabs .= PHP_EOL . Indent::_(4) . "
"; + if (CFactory::_('Config')->get('joomla_version', 3) == 3) + { + $tabs .= PHP_EOL . Indent::_(4) . '
'; + $tabs .= PHP_EOL . Indent::_(5) . '
'; + $tabs .= PHP_EOL . Indent::_(5) + . "form->getFieldset('accesscontrol') as \$field): ?>"; + $tabs .= PHP_EOL . Indent::_(6) . "
"; + $tabs .= PHP_EOL . Indent::_(7) + . "label; echo \$field->input;?>"; + $tabs .= PHP_EOL . Indent::_(6) . "
"; + $tabs .= PHP_EOL . Indent::_(6) . '
'; + $tabs .= PHP_EOL . Indent::_(5) . ""; + $tabs .= PHP_EOL . Indent::_(5) . "
"; + $tabs .= PHP_EOL . Indent::_(4) . "
"; + } + else + { + $tabs .= PHP_EOL . Indent::_(4) . '
'; + $tabs .= PHP_EOL . Indent::_(5) + . ""; + $tabs .= PHP_EOL . Indent::_(5) . "
"; + $tabs .= PHP_EOL . Indent::_(6) + . "form->getInput('rules'); ?>"; + $tabs .= PHP_EOL . Indent::_(5) . "
"; + $tabs .= PHP_EOL . Indent::_(4) . "
"; + } $tabs .= PHP_EOL . Indent::_(3) . "
"; $tabs .= PHP_EOL . Indent::_(2) . "
"; $tabs .= PHP_EOL . Indent::_(1) diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Interfaces/Architecture/Controller/AllowEditViewsInterface.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Interfaces/Architecture/Controller/AllowEditViewsInterface.php new file mode 100644 index 000000000..8a4f0f1f0 --- /dev/null +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Interfaces/Architecture/Controller/AllowEditViewsInterface.php @@ -0,0 +1,42 @@ + + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller; + + +/** + * Controller Allow Edit Views Interface + * + * @since 5.0.2 + */ +interface AllowEditViewsInterface +{ + /** + * Get Array Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The array of Code (string) + */ + public function getArray(array $views): string; + + /** + * Get Custom Function Code + * + * @param array $views + * + * @since 5.0.2 + * @return string The functions of Code (string) + */ + public function getFunctions(array $views): string; +} + diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFive/Header.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFive/Header.php index 5db107120..6cd432514 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFive/Header.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFive/Header.php @@ -367,6 +367,7 @@ final class Header implements HeaderInterface $headers[] = 'use Joomla\CMS\Form\FormHelper;'; $headers[] = 'use Joomla\CMS\Session\Session;'; $headers[] = 'use Joomla\CMS\Uri\Uri;'; + $headers[] = 'use Joomla\CMS\User\User;'; $headers[] = 'use Joomla\CMS\Component\ComponentHelper;'; $headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\Layout\FileLayout;'; @@ -402,6 +403,7 @@ final class Header implements HeaderInterface $headers[] = 'use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;'; + $headers[] = 'use Joomla\CMS\User\User;'; $headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\{$target}\\Helper\\HeaderCheck;"; break; diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFour/Header.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFour/Header.php index 712242b7e..807d5cdf4 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFour/Header.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/JoomlaFour/Header.php @@ -367,6 +367,7 @@ final class Header implements HeaderInterface $headers[] = 'use Joomla\CMS\Form\FormHelper;'; $headers[] = 'use Joomla\CMS\Session\Session;'; $headers[] = 'use Joomla\CMS\Uri\Uri;'; + $headers[] = 'use Joomla\CMS\User\User;'; $headers[] = 'use Joomla\CMS\Component\ComponentHelper;'; $headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\Layout\FileLayout;'; @@ -402,6 +403,7 @@ final class Header implements HeaderInterface $headers[] = 'use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;'; + $headers[] = 'use Joomla\CMS\User\User;'; $headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\{$target}\\Helper\\HeaderCheck;"; break; diff --git a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Service/ArchitectureController.php b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Service/ArchitectureController.php index b6c6820e2..9da4e9cae 100644 --- a/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Service/ArchitectureController.php +++ b/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Service/ArchitectureController.php @@ -22,6 +22,10 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\Allo use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller\AllowEdit as J5ControllerAllowEdit; use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowEdit as J4ControllerAllowEdit; use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowEdit as J3ControllerAllowEdit; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditViewsInterface; +use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller\AllowEditViews as J5ControllerAllowEditViews; +use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowEditViews as J4ControllerAllowEditViews; +use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowEditViews as J3ControllerAllowEditViews; /** @@ -72,6 +76,18 @@ class ArchitectureController implements ServiceProviderInterface $container->alias(J3ControllerAllowEdit::class, 'Architecture.Controller.J3.AllowEdit') ->share('Architecture.Controller.J3.AllowEdit', [$this, 'getJ3ControllerAllowEdit'], true); + + $container->alias(AllowEditViewsInterface::class, 'Architecture.Controller.AllowEditViews') + ->share('Architecture.Controller.AllowEditViews', [$this, 'getAllowEditViews'], true); + + $container->alias(J5ControllerAllowEditViews::class, 'Architecture.Controller.J5.AllowEditViews') + ->share('Architecture.Controller.J5.AllowEditViews', [$this, 'getJ5ControllerAllowEditViews'], true); + + $container->alias(J4ControllerAllowEditViews::class, 'Architecture.Controller.J4.AllowEditViews') + ->share('Architecture.Controller.J4.AllowEditViews', [$this, 'getJ4ControllerAllowEditViews'], true); + + $container->alias(J3ControllerAllowEditViews::class, 'Architecture.Controller.J3.AllowEditViews') + ->share('Architecture.Controller.J3.AllowEditViews', [$this, 'getJ3ControllerAllowEditViews'], true); } /** @@ -216,6 +232,78 @@ class ArchitectureController implements ServiceProviderInterface $container->get('Compiler.Builder.Category'), $container->get('Compiler.Builder.Category.Other.Name') ); + } + + /** + * Get The AllowEditViewsInterface Class. + * + * @param Container $container The DI container. + * + * @return AllowEditViewsInterface + * @since 5.0.2 + */ + public function getAllowEditViews(Container $container): AllowEditViewsInterface + { + if (empty($this->targetVersion)) + { + $this->targetVersion = $container->get('Config')->joomla_version; + } + + return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowEditViews'); + } + + /** + * Get The AllowEditViews Class. + * + * @param Container $container The DI container. + * + * @return J5ControllerAllowEdit + * @since 5.0.2 + */ + public function getJ5ControllerAllowEditViews(Container $container): J5ControllerAllowEditViews + { + return new J5ControllerAllowEditViews( + $container->get('Compiler.Creator.Permission'), + $container->get('Customcode.Dispenser'), + $container->get('Compiler.Builder.Category'), + $container->get('Compiler.Builder.Category.Other.Name') + ); + } + + /** + * Get The AllowEditViews Class. + * + * @param Container $container The DI container. + * + * @return J4ControllerAllowEditViews + * @since 5.0.2 + */ + public function getJ4ControllerAllowEditViews(Container $container): J4ControllerAllowEditViews + { + return new J4ControllerAllowEditViews( + $container->get('Compiler.Creator.Permission'), + $container->get('Customcode.Dispenser'), + $container->get('Compiler.Builder.Category'), + $container->get('Compiler.Builder.Category.Other.Name') + ); + } + + /** + * Get The AllowEditViews Class. + * + * @param Container $container The DI container. + * + * @return J3ControllerAllowEditViews + * @since 5.0.2 + */ + public function getJ3ControllerAllowEditViews(Container $container): J3ControllerAllowEditViews + { + return new J3ControllerAllowEditViews( + $container->get('Compiler.Creator.Permission'), + $container->get('Customcode.Dispenser'), + $container->get('Compiler.Builder.Category'), + $container->get('Compiler.Builder.Category.Other.Name') + ); } } diff --git a/script.php b/script.php index 416da8986..bc21cf0e7 100644 --- a/script.php +++ b/script.php @@ -9985,7 +9985,7 @@ class Com_ComponentbuilderInstallerScript echo '
-

Upgrade to Version 3.2.2 Was Successful! Let us know if anything is not working as expected.

'; +

Upgrade to Version 3.2.3-alpha1 Was Successful! Let us know if anything is not working as expected.

'; // Set db if not set already. if (!isset($db)) diff --git a/site/controller.php b/site/controller.php index f4a4a6ea0..92dac06e6 100644 --- a/site/controller.php +++ b/site/controller.php @@ -115,7 +115,7 @@ class ComponentbuilderController extends BaseController if (StringHelper::check($view)) { $views = array( - + '' ); // check if this is a edit view if (in_array($view,$views))