Adds getExtensionInstallClass and setInstallMethodScript to its own class. #950
This commit is contained in:
14 files changed
+516
-244
No files matched your search
@@ -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.1.4) 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.1.5) 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)
|
||||
|
||||
@@ -140,14 +140,14 @@ 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*: 9th July, 2022
|
||||
+ *Version*: 3.1.4
|
||||
+ *Last Build*: 20th August, 2022
|
||||
+ *Version*: 3.1.5
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **311349**
|
||||
+ *Line count*: **311839**
|
||||
+ *Field count*: **2002**
|
||||
+ *File count*: **2050**
|
||||
+ *Folder count*: **349**
|
||||
+ *File count*: **2055**
|
||||
+ *Folder count*: **351**
|
||||
|
||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
|
||||
+6
-6
@@ -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.1.4) 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.1.5) 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)
|
||||
|
||||
@@ -140,14 +140,14 @@ 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*: 9th July, 2022
|
||||
+ *Version*: 3.1.4
|
||||
+ *Last Build*: 20th August, 2022
|
||||
+ *Version*: 3.1.5
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **311349**
|
||||
+ *Line count*: **311839**
|
||||
+ *Field count*: **2002**
|
||||
+ *File count*: **2050**
|
||||
+ *Folder count*: **349**
|
||||
+ *File count*: **2055**
|
||||
+ *Folder count*: **351**
|
||||
|
||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
|
||||
@@ -29271,227 +29271,6 @@ function vdm_dkim() {
|
||||
);
|
||||
}
|
||||
|
||||
public function getExtensionInstallClass(&$extension)
|
||||
{
|
||||
// yes we are adding it
|
||||
$script = PHP_EOL . '/**';
|
||||
$script .= PHP_EOL . ' * ' . $extension->official_name
|
||||
. ' script file.';
|
||||
$script .= PHP_EOL . ' *';
|
||||
$script .= PHP_EOL . ' * @package ' . $extension->class_name;
|
||||
$script .= PHP_EOL . ' */';
|
||||
$script .= PHP_EOL . 'class ' . $extension->installer_class_name;
|
||||
$script .= PHP_EOL . '{';
|
||||
// set constructor
|
||||
if (isset($extension->add_php_script_construct)
|
||||
&& $extension->add_php_script_construct == 1
|
||||
&& StringHelper::check(
|
||||
$extension->php_script_construct
|
||||
))
|
||||
{
|
||||
$script .= $this->setInstallMethodScript(
|
||||
'construct', $extension->php_script_construct
|
||||
);
|
||||
}
|
||||
// add PHP in extension install
|
||||
$addScriptMethods = array('php_preflight', 'php_postflight',
|
||||
'php_method');
|
||||
$addScriptTypes = array('install', 'update', 'uninstall',
|
||||
'discover_install');
|
||||
// set some buckets for sorting
|
||||
$function_install = array();
|
||||
$function_update = array();
|
||||
$function_uninstall = array();
|
||||
$has_php_preflight = false;
|
||||
$function_php_preflight = array('install' => array(),
|
||||
'uninstall' => array(),
|
||||
'discover_install' => array(),
|
||||
'update' => array());
|
||||
$has_php_postflight = false;
|
||||
$function_php_postflight = array('install' => array(),
|
||||
'uninstall' => array(),
|
||||
'discover_install' => array(),
|
||||
'update' => array());
|
||||
// the function sorter
|
||||
foreach ($addScriptMethods as $scriptMethod)
|
||||
{
|
||||
foreach ($addScriptTypes as $scriptType)
|
||||
{
|
||||
if (isset(
|
||||
$extension->{'add_' . $scriptMethod . '_' . $scriptType}
|
||||
)
|
||||
&& $extension->{'add_' . $scriptMethod . '_' . $scriptType}
|
||||
== 1
|
||||
&& StringHelper::check(
|
||||
$extension->{$scriptMethod . '_' . $scriptType}
|
||||
))
|
||||
{
|
||||
// add to the main methods
|
||||
if ('php_method' === $scriptMethod)
|
||||
{
|
||||
${'function_' . $scriptType}[]
|
||||
= $extension->{$scriptMethod . '_' . $scriptType};
|
||||
}
|
||||
else
|
||||
{
|
||||
${'function_' . $scriptMethod}[$scriptType][]
|
||||
= $extension->{$scriptMethod
|
||||
. '_' . $scriptType};
|
||||
${'has_' . $scriptMethod} = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// now add the install script.
|
||||
if (ArrayHelper::check($function_install))
|
||||
{
|
||||
$script .= $this->setInstallMethodScript(
|
||||
'install', $function_install
|
||||
);
|
||||
}
|
||||
// now add the update script.
|
||||
if (ArrayHelper::check($function_update))
|
||||
{
|
||||
$script .= $this->setInstallMethodScript(
|
||||
'update', $function_update
|
||||
);
|
||||
}
|
||||
// now add the uninstall script.
|
||||
if (ArrayHelper::check($function_uninstall))
|
||||
{
|
||||
$script .= $this->setInstallMethodScript(
|
||||
'uninstall', $function_uninstall
|
||||
);
|
||||
}
|
||||
// now add the preflight script.
|
||||
if ($has_php_preflight)
|
||||
{
|
||||
$script .= $this->setInstallMethodScript(
|
||||
'preflight', $function_php_preflight
|
||||
);
|
||||
}
|
||||
// now add the postflight script.
|
||||
if ($has_php_postflight)
|
||||
{
|
||||
$script .= $this->setInstallMethodScript(
|
||||
'postflight', $function_php_postflight
|
||||
);
|
||||
}
|
||||
$script .= PHP_EOL . '}' . PHP_EOL;
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
protected function setInstallMethodScript($function_name, &$scripts)
|
||||
{
|
||||
$script = '';
|
||||
// build function
|
||||
switch ($function_name)
|
||||
{
|
||||
case 'install':
|
||||
case 'update':
|
||||
case 'uninstall':
|
||||
// the main function types
|
||||
$script = PHP_EOL . PHP_EOL . $this->_t(1) . '/**';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' * Called on '
|
||||
. $function_name;
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @return boolean True on success';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' */';
|
||||
$script .= PHP_EOL . $this->_t(1) . 'public function '
|
||||
. $function_name . '($adapter)';
|
||||
$script .= PHP_EOL . $this->_t(1) . '{';
|
||||
$script .= PHP_EOL . implode(PHP_EOL . PHP_EOL, $scripts);
|
||||
// return true
|
||||
if ('uninstall' !== $function_name)
|
||||
{
|
||||
$script .= PHP_EOL . $this->_t(2) . 'return true;';
|
||||
}
|
||||
break;
|
||||
case 'preflight':
|
||||
case 'postflight':
|
||||
// the pre/post function types
|
||||
$script = PHP_EOL . PHP_EOL . $this->_t(1) . '/**';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * Called before any type of action';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param string $route Which action is happening (install|uninstall|discover_install|update)';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @return boolean True on success';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' */';
|
||||
$script .= PHP_EOL . $this->_t(1) . 'public function '
|
||||
. $function_name . '($route, $adapter)';
|
||||
$script .= PHP_EOL . $this->_t(1) . '{';
|
||||
$script .= PHP_EOL . $this->_t(2) . '//' . $this->setLine(
|
||||
__LINE__
|
||||
) . ' get application';
|
||||
$script .= PHP_EOL . $this->_t(2)
|
||||
. '$app = JFactory::getApplication();' . PHP_EOL;
|
||||
// add the default version check (TODO) must make this dynamic
|
||||
if ('preflight' === $function_name)
|
||||
{
|
||||
$script .= PHP_EOL . $this->_t(2) . '//' . $this->setLine(
|
||||
__LINE__
|
||||
) . ' the default for both install and update';
|
||||
$script .= PHP_EOL . $this->_t(2)
|
||||
. '$jversion = new JVersion();';
|
||||
$script .= PHP_EOL . $this->_t(2)
|
||||
. "if (!\$jversion->isCompatible('3.8.0'))";
|
||||
$script .= PHP_EOL . $this->_t(2) . '{';
|
||||
$script .= PHP_EOL . $this->_t(3)
|
||||
. "\$app->enqueueMessage('Please upgrade to at least Joomla! 3.8.0 before continuing!', 'error');";
|
||||
$script .= PHP_EOL . $this->_t(3) . 'return false;';
|
||||
$script .= PHP_EOL . $this->_t(2) . '}' . PHP_EOL;
|
||||
}
|
||||
// now add the scripts
|
||||
foreach ($scripts as $route => $_script)
|
||||
{
|
||||
if (ArrayHelper::check($_script))
|
||||
{
|
||||
// set the if and script
|
||||
$script .= PHP_EOL . $this->_t(2) . "if ('" . $route
|
||||
. "' === \$route)";
|
||||
$script .= PHP_EOL . $this->_t(2) . '{';
|
||||
$script .= PHP_EOL . implode(
|
||||
PHP_EOL . PHP_EOL, $_script
|
||||
);
|
||||
$script .= PHP_EOL . $this->_t(2) . '}' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
// return true
|
||||
$script .= PHP_EOL . $this->_t(2) . 'return true;';
|
||||
break;
|
||||
case 'construct':
|
||||
// the __construct script
|
||||
$script = PHP_EOL . PHP_EOL . $this->_t(1) . '/**';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' * Constructor';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' */';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. 'public function __construct($adapter)';
|
||||
$script .= PHP_EOL . $this->_t(1) . '{';
|
||||
$script .= PHP_EOL . $scripts;
|
||||
break;
|
||||
default:
|
||||
// oops error
|
||||
return '';
|
||||
}
|
||||
// close the function
|
||||
$script .= PHP_EOL . $this->_t(1) . '}';
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
/**
|
||||
* check if a translation should be added
|
||||
*
|
||||
|
||||
@@ -19,6 +19,7 @@ use VDM\Joomla\Utilities\StringHelper;
|
||||
use VDM\Joomla\Utilities\ArrayHelper;
|
||||
use VDM\Joomla\Utilities\ObjectHelper;
|
||||
use VDM\Joomla\Utilities\FileHelper;
|
||||
use VDM\Joomla\Componentbuilder\Extension\InstallScript;
|
||||
|
||||
/**
|
||||
* Infusion class
|
||||
@@ -2393,7 +2394,7 @@ class Infusion extends Interpretation
|
||||
// INSTALLCLASS
|
||||
$this->fileContentDynamic[$module->key][$this->hhh
|
||||
. 'INSTALLCLASS' . $this->hhh]
|
||||
= $this->getExtensionInstallClass($module);
|
||||
= (new InstallScript($module))->get();
|
||||
}
|
||||
// FIELDSET
|
||||
if (isset($module->form_files)
|
||||
@@ -2455,7 +2456,7 @@ class Infusion extends Interpretation
|
||||
// INSTALLCLASS
|
||||
$this->fileContentDynamic[$plugin->key][$this->hhh
|
||||
. 'INSTALLCLASS' . $this->hhh]
|
||||
= $this->getExtensionInstallClass($plugin);
|
||||
= (new InstallScript($plugin))->get();
|
||||
}
|
||||
// FIELDSET
|
||||
if (isset($plugin->form_files)
|
||||
|
||||
@@ -392,7 +392,7 @@ class ComponentbuilderModelAjax extends ListModel
|
||||
else
|
||||
{
|
||||
// download link of the latest version
|
||||
$download = "https://git.vdm.dev/api/v1/repos/joomla/Component-Builder/archive/" . $tags[0]->name . ".zip?access_token=" . $token;
|
||||
$download = "https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/" . $tags[0]->name . ".zip?access_token=" . $token;
|
||||
|
||||
return ['notice' => '<small><span style="color:red;"><span class="icon-warning-circle"></span>' . JText::_('COM_COMPONENTBUILDER_OUT_OF_DATE') . '!</span> <a style="color:green;" href="' .
|
||||
$download . '" title="' . JText::_('COM_COMPONENTBUILDER_YOU_CAN_DIRECTLY_DOWNLOAD_THE_LATEST_UPDATE_OR_USE_THE_JOOMLA_UPDATE_AREA') . '">' . JText::_('COM_COMPONENTBUILDER_DOWNLOAD_UPDATE') . '!</a></small>'];
|
||||
|
||||
@@ -1967,7 +1967,7 @@ INSERT INTO `#__componentbuilder_joomla_component` (`id`, `add_license`, `licens
|
||||
--
|
||||
|
||||
INSERT INTO `#__componentbuilder_power` (`id`, `add_head`, `description`, `extends`, `extends_custom`, `guid`, `head`, `implements`, `implements_custom`, `load_selection`, `main_class_code`, `method_selection`, `name`, `namespace`, `power_version`, `property_selection`, `system_name`, `type`, `use_selection`, `params`, `published`, `created`, `modified`, `version`, `ordering`) VALUES
|
||||
(1, '', 'Basic shared utilities, a legacy implementation\r\n\r\n@since 3.0.9', '', '', '79d765b3-7319-4988-9730-446c7f347020', '', '', '', '{}', 'CS8qKg0KCSAqIFRoZSBNYWluIEFjdGl2ZSBMYW5ndWFnZQ0KCSAqIA0KCSAqIEB2YXIgICAgICBzdHJpbmcNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyAkbGFuZ1RhZzsNCg0KCS8qKg0KCSAqIENoZWNrIGlmIGhhdmUgYSBzdHJpbmcgd2l0aCBhIGxlbmd0aA0KCSAqDQoJICogQGlucHV0ICAgIHN0cmluZyAgJHN0cmluZyBUaGUgc3RyaW5nIHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJucyBib29sIHRydWUgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKg0KCSAqIEBkZXByZWNhdGVkICA0LjAgLSBVc2UgU3RyaW5nSGVscGVyOjpjaGVjaygkc3RyaW5nKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrU3RyaW5nKCRzdHJpbmcpOiBib29sDQoJew0KCQlyZXR1cm4gU3RyaW5nSGVscGVyOjpjaGVjaygkc3RyaW5nKTsNCgl9DQoNCgkvKioNCgkgKiBTaG9ydGVuIGEgc3RyaW5nDQoJICoNCgkgKiBAaW5wdXQgICAgc3RyaW5nICAkc3RyaW5nIFRoYXQgeW91IHdvdWxkIGxpa2UgdG8gc2hvcnRlbg0KCSAqDQoJICogQHJldHVybnMgc3RyaW5nIG9uIHN1Y2Nlc3MNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICoNCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6c2hvcnRlbigkc3RyaW5nLCAkbGVuZ3RoLCAkYWRkVGlwKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNob3J0ZW4oJHN0cmluZywgJGxlbmd0aCA9IDQwLCAkYWRkVGlwID0gdHJ1ZSkNCgl7DQoJCXJldHVybiBTdHJpbmdIZWxwZXI6OnNob3J0ZW4oJHN0cmluZywgJGxlbmd0aCwgJGFkZFRpcCk7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIHN0cmluZ3Mgc2FmZSAodmFyaW91cyB3YXlzKQ0KCSAqDQoJICogQGlucHV0ICAgIHN0cmluZyAgJHN0cmluZyBUaGF0IHlvdSB3b3VsZCBsaWtlIHRvIG1ha2Ugc2FmZQ0KCSAqDQoJICogQHJldHVybnMgc3RyaW5nIG9uIHN1Y2Nlc3MNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICoNCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6c2FmZSgkc3RyaW5nLCAkdHlwZSwgJHNwYWNlciwgJHJlcGxhY2VOdW1iZXJzLCAka2VlcE9ubHlDaGFyYWN0ZXJzKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNhZmVTdHJpbmcoJHN0cmluZywgJHR5cGUgPSAnTCcsICRzcGFjZXIgPSAnXycsICRyZXBsYWNlTnVtYmVycyA9IHRydWUsICRrZWVwT25seUNoYXJhY3RlcnMgPSB0cnVlKQ0KCXsNCgkJLy8gc2V0IHRoZSBsb2NhbCBjb21wb25lbnQgb3B0aW9uDQoJCXNlbGY6OnNldENvbXBvbmVudE9wdGlvbigpOw0KDQoJCXJldHVybiBTdHJpbmdIZWxwZXI6OnNhZmUoJHN0cmluZywgJHR5cGUsICRzcGFjZXIsICRyZXBsYWNlTnVtYmVycywgJGtlZXBPbmx5Q2hhcmFjdGVycyk7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIGNsYXNzIG9yIGZ1bmN0aW9uIG5hbWUgc2FmZQ0KCSAqDQoJICogQGlucHV0CXN0cmluZyAgICAgICBUaGUgbmFtZSB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHNhZmUNCgkgKg0KCSAqIEByZXR1cm5zIHN0cmluZyBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqDQoJICogQGRlcHJlY2F0ZWQgIDQuMCAtIFVzZSBDbGFzc2Z1bmN0aW9uSGVscGVyOjpzYWZlKCRuYW1lKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNhZmVDbGFzc0Z1bmN0aW9uTmFtZSgkbmFtZSkNCgl7DQoJCXJldHVybiBDbGFzc2Z1bmN0aW9uSGVscGVyOjpzYWZlKCRuYW1lKTsNCgl9DQoNCgkvKioNCgkgKiBNYWtpbmcgZmllbGQgbmFtZXMgc2FmZQ0KCSAqDQoJICogQGlucHV0CXN0cmluZyAgICAgICBUaGUgeW91IHdvdWxkIGxpa2UgdG8gbWFrZSBzYWZlDQoJICogQGlucHV0CWJvb2xlYW4gICAgICBUaGUgc3dpdGNoIHRvIHJldHVybiBhbiBBTEwgVVBQRVIgQ0FTRSBzdHJpbmcNCgkgKiBAaW5wdXQJc3RyaW5nICAgICAgIFRoZSBzdHJpbmcgdG8gdXNlIGluIHdoaXRlIHNwYWNlDQoJICoNCgkgKiBAcmV0dXJucyBzdHJpbmcgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKg0KCSAqIEBkZXByZWNhdGVkICA0LjAgLSBVc2UgRmllbGRIZWxwZXI6OnNhZmUoJHN0cmluZywgJGFsbGNhcCwgJHNwYWNlcik7DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYWZlRmllbGROYW1lKCRzdHJpbmcsICRhbGxjYXAgPSBmYWxzZSwgJHNwYWNlciA9ICdfJykNCgl7DQoJCS8vIHNldCB0aGUgbG9jYWwgY29tcG9uZW50IG9wdGlvbg0KCQlzZWxmOjpzZXRDb21wb25lbnRPcHRpb24oKTsNCg0KCQlyZXR1cm4gRmllbGRIZWxwZXI6OnNhZmUoJHN0cmluZywgJGFsbGNhcCwgJHNwYWNlcik7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIGZpZWxkIHR5cGUgbmFtZSBzYWZlDQoJICoNCgkgKiBAaW5wdXQJc3RyaW5nICAgICAgIFRoZSB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHNhZmUNCgkgKg0KCSAqIEByZXR1cm5zIHN0cmluZyBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqDQoJICogQGRlcHJlY2F0ZWQgIDQuMCAtIFVzZSBUeXBlSGVscGVyOjpzYWZlKCRzdHJpbmcpOw0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2FmZVR5cGVOYW1lKCRzdHJpbmcpDQoJew0KCQkvLyBzZXQgdGhlIGxvY2FsIGNvbXBvbmVudCBvcHRpb24NCgkJc2VsZjo6c2V0Q29tcG9uZW50T3B0aW9uKCk7DQoNCgkJcmV0dXJuIFR5cGVIZWxwZXI6OnNhZmUoJHN0cmluZyk7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIG5hbWVzcGFjZSBzYWZlDQoJICoNCgkgKiBAaW5wdXQJc3RyaW5nICAgICAgIFRoZSB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHNhZmUNCgkgKg0KCSAqIEByZXR1cm5zIHN0cmluZyBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqDQoJICogQGRlcHJlY2F0ZWQgIDQuMCAtIFVzZSBOYW1lc3BhY2VIZWxwZXI6OnNhZmUoJHN0cmluZyk7DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYWZlTmFtZXNwYWNlKCRzdHJpbmcpDQoJew0KCQlyZXR1cm4gTmFtZXNwYWNlSGVscGVyOjpzYWZlKCRzdHJpbmcpOw0KCX0NCg0KCS8qKg0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKiANCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6dHJhbnNsaXRlcmF0ZSgkc3RyaW5nKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRyYW5zbGl0ZXJhdGUoJHN0cmluZykNCgl7DQoJCS8vIHNldCB0aGUgbG9jYWwgY29tcG9uZW50IG9wdGlvbg0KCQlzZWxmOjpzZXRDb21wb25lbnRPcHRpb24oKTsNCg0KCQlyZXR1cm4gU3RyaW5nSGVscGVyOjp0cmFuc2xpdGVyYXRlKCRzdHJpbmcpOw0KCX0NCg0KCS8qKg0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKiANCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6aHRtbCgkdmFyLCAkY2hhcnNldCwgJHNob3J0ZW4sICRsZW5ndGgpOw0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaHRtbEVzY2FwZSgkdmFyLCAkY2hhcnNldCA9ICdVVEYtOCcsICRzaG9ydGVuID0gZmFsc2UsICRsZW5ndGggPSA0MCkNCgl7DQoJCS8vIHNldCB0aGUgbG9jYWwgY29tcG9uZW50Line truncated
|
||||
(1, '', 'Basic shared utilities, a legacy implementation\r\n\r\n@since 3.0.9', '', '', '79d765b3-7319-4988-9730-446c7f347020', '', '', '', '{\"load_selection0\":{\"load\":\"1d929017-a5de-4e0f-9b5a-838934857e26\"}}', 'CS8qKg0KCSAqIFRoZSBNYWluIEFjdGl2ZSBMYW5ndWFnZQ0KCSAqIA0KCSAqIEB2YXIgICAgICBzdHJpbmcNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyAkbGFuZ1RhZzsNCg0KCS8qKg0KCSAqIENoZWNrIGlmIGhhdmUgYSBzdHJpbmcgd2l0aCBhIGxlbmd0aA0KCSAqDQoJICogQGlucHV0ICAgIHN0cmluZyAgJHN0cmluZyBUaGUgc3RyaW5nIHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJucyBib29sIHRydWUgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKg0KCSAqIEBkZXByZWNhdGVkICA0LjAgLSBVc2UgU3RyaW5nSGVscGVyOjpjaGVjaygkc3RyaW5nKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrU3RyaW5nKCRzdHJpbmcpOiBib29sDQoJew0KCQlyZXR1cm4gU3RyaW5nSGVscGVyOjpjaGVjaygkc3RyaW5nKTsNCgl9DQoNCgkvKioNCgkgKiBTaG9ydGVuIGEgc3RyaW5nDQoJICoNCgkgKiBAaW5wdXQgICAgc3RyaW5nICAkc3RyaW5nIFRoYXQgeW91IHdvdWxkIGxpa2UgdG8gc2hvcnRlbg0KCSAqDQoJICogQHJldHVybnMgc3RyaW5nIG9uIHN1Y2Nlc3MNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICoNCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6c2hvcnRlbigkc3RyaW5nLCAkbGVuZ3RoLCAkYWRkVGlwKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNob3J0ZW4oJHN0cmluZywgJGxlbmd0aCA9IDQwLCAkYWRkVGlwID0gdHJ1ZSkNCgl7DQoJCXJldHVybiBTdHJpbmdIZWxwZXI6OnNob3J0ZW4oJHN0cmluZywgJGxlbmd0aCwgJGFkZFRpcCk7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIHN0cmluZ3Mgc2FmZSAodmFyaW91cyB3YXlzKQ0KCSAqDQoJICogQGlucHV0ICAgIHN0cmluZyAgJHN0cmluZyBUaGF0IHlvdSB3b3VsZCBsaWtlIHRvIG1ha2Ugc2FmZQ0KCSAqDQoJICogQHJldHVybnMgc3RyaW5nIG9uIHN1Y2Nlc3MNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICoNCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6c2FmZSgkc3RyaW5nLCAkdHlwZSwgJHNwYWNlciwgJHJlcGxhY2VOdW1iZXJzLCAka2VlcE9ubHlDaGFyYWN0ZXJzKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNhZmVTdHJpbmcoJHN0cmluZywgJHR5cGUgPSAnTCcsICRzcGFjZXIgPSAnXycsICRyZXBsYWNlTnVtYmVycyA9IHRydWUsICRrZWVwT25seUNoYXJhY3RlcnMgPSB0cnVlKQ0KCXsNCgkJLy8gc2V0IHRoZSBsb2NhbCBjb21wb25lbnQgb3B0aW9uDQoJCXNlbGY6OnNldENvbXBvbmVudE9wdGlvbigpOw0KDQoJCXJldHVybiBTdHJpbmdIZWxwZXI6OnNhZmUoJHN0cmluZywgJHR5cGUsICRzcGFjZXIsICRyZXBsYWNlTnVtYmVycywgJGtlZXBPbmx5Q2hhcmFjdGVycyk7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIGNsYXNzIG9yIGZ1bmN0aW9uIG5hbWUgc2FmZQ0KCSAqDQoJICogQGlucHV0CXN0cmluZyAgICAgICBUaGUgbmFtZSB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHNhZmUNCgkgKg0KCSAqIEByZXR1cm5zIHN0cmluZyBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqDQoJICogQGRlcHJlY2F0ZWQgIDQuMCAtIFVzZSBDbGFzc2Z1bmN0aW9uSGVscGVyOjpzYWZlKCRuYW1lKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNhZmVDbGFzc0Z1bmN0aW9uTmFtZSgkbmFtZSkNCgl7DQoJCXJldHVybiBDbGFzc2Z1bmN0aW9uSGVscGVyOjpzYWZlKCRuYW1lKTsNCgl9DQoNCgkvKioNCgkgKiBNYWtpbmcgZmllbGQgbmFtZXMgc2FmZQ0KCSAqDQoJICogQGlucHV0CXN0cmluZyAgICAgICBUaGUgeW91IHdvdWxkIGxpa2UgdG8gbWFrZSBzYWZlDQoJICogQGlucHV0CWJvb2xlYW4gICAgICBUaGUgc3dpdGNoIHRvIHJldHVybiBhbiBBTEwgVVBQRVIgQ0FTRSBzdHJpbmcNCgkgKiBAaW5wdXQJc3RyaW5nICAgICAgIFRoZSBzdHJpbmcgdG8gdXNlIGluIHdoaXRlIHNwYWNlDQoJICoNCgkgKiBAcmV0dXJucyBzdHJpbmcgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKg0KCSAqIEBkZXByZWNhdGVkICA0LjAgLSBVc2UgRmllbGRIZWxwZXI6OnNhZmUoJHN0cmluZywgJGFsbGNhcCwgJHNwYWNlcik7DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYWZlRmllbGROYW1lKCRzdHJpbmcsICRhbGxjYXAgPSBmYWxzZSwgJHNwYWNlciA9ICdfJykNCgl7DQoJCS8vIHNldCB0aGUgbG9jYWwgY29tcG9uZW50IG9wdGlvbg0KCQlzZWxmOjpzZXRDb21wb25lbnRPcHRpb24oKTsNCg0KCQlyZXR1cm4gRmllbGRIZWxwZXI6OnNhZmUoJHN0cmluZywgJGFsbGNhcCwgJHNwYWNlcik7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIGZpZWxkIHR5cGUgbmFtZSBzYWZlDQoJICoNCgkgKiBAaW5wdXQJc3RyaW5nICAgICAgIFRoZSB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHNhZmUNCgkgKg0KCSAqIEByZXR1cm5zIHN0cmluZyBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqDQoJICogQGRlcHJlY2F0ZWQgIDQuMCAtIFVzZSBUeXBlSGVscGVyOjpzYWZlKCRzdHJpbmcpOw0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2FmZVR5cGVOYW1lKCRzdHJpbmcpDQoJew0KCQkvLyBzZXQgdGhlIGxvY2FsIGNvbXBvbmVudCBvcHRpb24NCgkJc2VsZjo6c2V0Q29tcG9uZW50T3B0aW9uKCk7DQoNCgkJcmV0dXJuIFR5cGVIZWxwZXI6OnNhZmUoJHN0cmluZyk7DQoJfQ0KDQoJLyoqDQoJICogTWFraW5nIG5hbWVzcGFjZSBzYWZlDQoJICoNCgkgKiBAaW5wdXQJc3RyaW5nICAgICAgIFRoZSB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHNhZmUNCgkgKg0KCSAqIEByZXR1cm5zIHN0cmluZyBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqDQoJICogQGRlcHJlY2F0ZWQgIDQuMCAtIFVzZSBOYW1lc3BhY2VIZWxwZXI6OnNhZmUoJHN0cmluZyk7DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYWZlTmFtZXNwYWNlKCRzdHJpbmcpDQoJew0KCQlyZXR1cm4gTmFtZXNwYWNlSGVscGVyOjpzYWZlKCRzdHJpbmcpOw0KCX0NCg0KCS8qKg0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKiANCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6dHJhbnNsaXRlcmF0ZSgkc3RyaW5nKTsNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRyYW5zbGl0ZXJhdGUoJHN0cmluZykNCgl7DQoJCS8vIHNldCB0aGUgbG9jYWwgY29tcG9uZW50IG9wdGlvbg0KCQlzZWxmOjpzZXRDb21wb25lbnRPcHRpb24oKTsNCg0KCQlyZXR1cm4gU3RyaW5nSGVscGVyOjp0cmFuc2xpdGVyYXRlKCRzdHJpbmcpOw0KCX0NCg0KCS8qKg0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKiANCgkgKiBAZGVwcmVjYXRlZCAgNC4wIC0gVXNlIFN0cmluZ0hlbHBlcjo6aHRtbCgkdmFyLCAkY2hhcnNldCwgJHNob3J0ZW4sICRsZW5ndGgpOw0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaHRtbEVzY2FwZSgkdmFyLCAkY2hhcnNldCA9ICdVVEYtOCcsICRzaG9ydGVuID0gZLine truncated
|
||||
(2, 1, 'To extrude tables structures from lila', '', '', '050f5a27-3aab-4087-8a3d-e2302fcfd5db', 'dXNlIERpcmVjdG9yeUl0ZXJhdG9yOw0KdXNlIFNwbEZpbGVPYmplY3Q7DQp1c2Ugc3RkQ2xhc3M7DQp1c2UgZnVuY3Rpb24gYXJyYXlfcG9wOw0KdXNlIGZ1bmN0aW9uIGNvdW50Ow0KdXNlIGZ1bmN0aW9uIGV4cGxvZGU7DQp1c2UgZnVuY3Rpb24gZmlsZV9leGlzdHM7DQp1c2UgZnVuY3Rpb24gaXNfbnVsbDsNCnVzZSBmdW5jdGlvbiBhcnJheV9yZXZlcnNlOw0KdXNlIGZ1bmN0aW9uIHN0cl9yZXBsYWNlOw0KdXNlIGZ1bmN0aW9uIHN0cmxlbjsNCnVzZSBmdW5jdGlvbiBzdHJwb3M7DQp1c2UgZnVuY3Rpb24gc3RycnBvczsNCnVzZSBmdW5jdGlvbiBzdWJzdHI7DQp1c2UgZnVuY3Rpb24gdHJpbTsNCg==', '', '', '', 'CS8qKg0KCSAqIEFkZGluZyB0aGUgdXRpbGl0aWVzIHRyYWl0IHRvIHRoaXMgY2xhc3MNCgkgKiBTaW5jZSB3ZSBuZWVkIHNvbWUgb2YgaXRzIGZ1bmN0aW9ucw0KCSAqLw0KCXVzZSBVdGlsOw0KDQoJLyoqDQoJICogVGhlIG1vZHVsZSBuYW1lDQoJICoNCgkgKiBAdmFyIHN0cmluZw0KCSAqLw0KCXByb3RlY3RlZCAkbW9kdWxlOw0KDQoJLyoqDQoJICogVGhlIGFjdGlvbg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKi8NCglwcm90ZWN0ZWQgJGFjdGlvbjsNCg0KCS8qKg0KCSAqIFRoZSB0YWJsZXMgYXJyYXkNCgkgKg0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcm90ZWN0ZWQgJHRhYmxlcyA9IGFycmF5KCk7DQoNCgkvKioNCgkgKiBUaGUgbGlua3MgYXJyYXkNCgkgKg0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcm90ZWN0ZWQgJGxpbmtzID0gYXJyYXkoKTsNCg0KCS8qKg0KCSAqIFRoZSB0bXAgYXJyYXkNCgkgKg0KCSAqIEB2YXIgYXJyYXkNCgkgKi8NCglwcm90ZWN0ZWQgJHRtcCA9IGFycmF5KCk7DQoNCgkvKioNCgkgKiBUaGUgZmllbGQgbGlua2VyDQoJICoNCgkgKiBAdmFyIG1peGVkDQoJICovDQoJcHJvdGVjdGVkICRmaWVsZCA9IG51bGw7DQoNCgkvKioNCgkgKiBUaGUgdGFibGUgbGlua2VyDQoJICoNCgkgKiBAdmFyIG1peGVkDQoJICovDQoJcHJvdGVjdGVkICR0YWJsZSA9IG51bGw7DQoNCgkvKioNCgkgKiBUaGUgaW5kZXhlcg0KCSAqDQoJICogQHZhciBtaXhlZA0KCSAqLw0KCXByb3RlY3RlZCAkaW5kZXggPSBmYWxzZTsNCg0KCS8qKg0KCSAqIFRoZSBkaXJlY3RvcnkNCgkgKg0KCSAqIEB2YXIgRGlyZWN0b3J5SXRlcmF0b3INCgkgKi8NCglwcm90ZWN0ZWQgJGRpcmVjdG9yeTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gICBEaXJlY3RvcnlJdGVyYXRvciAgJGRpciAgVGhlIGRpcmVjdG9yeSBvYmplY3Qgb2YgZGYgZmlsZXMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRGlyZWN0b3J5SXRlcmF0b3IgJGRpcikNCgl7DQoJCS8vIHNldCB0aGUgZGlyZWN0b3J5DQoJCSR0aGlzLT5kaXJlY3RvcnkgPSAkZGlyOw0KCQkvLyBsb2FkIHRoZSBsaW5rYWdlDQoJCSR0aGlzLT5zZXRMaW5rcygpOw0KCQkvLyBidWlsZCB0aGUganNvbiB0YWJsZSBzdHJ1Y3R1cmUNCgkJJHRoaXMtPnNldFRhYmxlcygpOw0KCQkvLyBsaW5lLXVwIHRoZSBpbmRleCBhbmQgbGlua3MNCgkJJHRoaXMtPnNldFJlbGF0aW9uc2hpcHMoKTsNCgl9DQoNCgkvKioNCgkgKiBnZXQgcHJvcGVydHkNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGtleSAgVGhlIGtleSB2YWx1ZSB0byByZXR1cm4NCgkgKg0KCSAqIEByZXR1cm4gbWl4ZWQNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19nZXQoc3RyaW5nICRrZXkpDQoJew0KCQkka2V5ID0gc3RydG9sb3dlcigka2V5KTsNCgkJaWYgKCRrZXkgPT09ICd0YWJsZXMnKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPnRhYmxlczsNCgkJfQ0KCQllbHNlaWYgKCRrZXkgPT09ICdsaW5rcycpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+bGlua3M7DQoJCX0NCgkJLy8ganVzdCB0d28gbGF5ZXJzICh0YWJsZS5tb2R1bGVfbmFtZS50YWJsZV9uYW1lKSBpbiBmb3Igbm93DQoJCWVsc2VpZiAoc3RycG9zKCRrZXksICcuJykgIT09IGZhbHNlKQ0KCQl7DQoJCQkka2V5X2FycmF5ID0gZXhwbG9kZSgnLicsICRrZXkpOw0KCQkJLy8gdGFibGVzDQoJCQlpZiAoJGtleV9hcnJheVswXSA9PT0gJ3RhYmxlJyAmJiBpc3NldCgka2V5X2FycmF5WzFdKSAmJiBpc3NldCgkdGhpcy0+dGFibGVzWyRrZXlfYXJyYXlbMV1dKQ0KCQkJCSYmIGlzc2V0KCRrZXlfYXJyYXlbMl0pICYmIGlzc2V0KCR0aGlzLT50YWJsZXNbJGtleV9hcnJheVsxXV1bJGtleV9hcnJheVsyXV0pKQ0KCQkJew0KCQkJCXJldHVybiAkdGhpcy0+dGFibGVzWyRrZXlfYXJyYXlbMV1dWyRrZXlfYXJyYXlbMl1dOw0KCQkJfQ0KCQkJLy8gbGlua3MNCgkJCWVsc2VpZiAoJGtleV9hcnJheVswXSA9PT0gJ2xpbmsnICYmIGlzc2V0KCRrZXlfYXJyYXlbMV0pICYmIGlzc2V0KCR0aGlzLT5saW5rc1ska2V5X2FycmF5WzFdXSkNCgkJCQkmJiBpc3NldCgka2V5X2FycmF5WzJdKSAmJiBpc3NldCgkdGhpcy0+bGlua3NbJGtleV9hcnJheVsxXV1bJGtleV9hcnJheVsyXV0pKQ0KCQkJew0KCQkJCXJldHVybiAkdGhpcy0+bGlua3NbJGtleV9hcnJheVsxXV1bJGtleV9hcnJheVsyXV07DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogbGluLXVwIHRoZSBsaW5rcyBhbmQgaW5kZXggdmFsdWVzDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFJlbGF0aW9uc2hpcHMoKQ0KCXsNCgkJLy8gbGluZSB1cCBpbmRleCBmaWVsZHMNCgkJZm9yZWFjaCAoJHRoaXMtPnRtcFsnaW5kZXgnXSBhcyAkbW9kID0+ICR0YWJsZXMpDQoJCXsNCgkJCWZvcmVhY2ggKCR0YWJsZXMgYXMgJHRhYmxlID0+ICRpbmRleF9uYW1lcykNCgkJCXsNCgkJCQlmb3JlYWNoICgkaW5kZXhfbmFtZXMgYXMgJGluZGV4ID0+ICRmaWVsZHMpDQoJCQkJew0KCQkJCQkkdGhpcy0+dGFibGVzWyRtb2RdWyR0YWJsZV0tPmluZGV4WyRpbmRleF0tPmluZGV4X2ZpZWxkID0gJGZpZWxkczsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJLy8gY2xlYXIgdGhlIHRtcCBpbmRleA0KCQl1bnNldCgkdGhpcy0+dG1wWydpbmRleCddKTsNCgkJLy8gbGluZSB1cCBsaW5rcyB3aXRoIHRoZSBsaW5rZWQgZGF0YQ0KCQlmb3JlYWNoICgkdGhpcy0+dG1wWydsaW5rcyddIGFzICRwYXJlbnRfbW9kID0+ICRjaGlsZHJlbikNCgkJew0KCQkJLy8gdGhpc19tb2RlbChwYXJlbnRfbW9kKSA9IG90aGVyX3RhYmxlc1tjaGlsZHJlbj1jaGlsZF0gPSB0aGlzX3RhYmxlW3BhcmVudHM9cGFyZW50XSA9IGtleXNbZmllbGRzXQ0KCQkJZm9yZWFjaCAoJGNoaWxkcmVuIGFzICRjaGlsZCA9PiAkcGFyZW50cykNCgkJCXsNCgkJCQlmb3JlYWNoICgkcGFyZW50cyBhcyAkcGFyZW50ID0+ICRmaWVsZHMpDQoJCQkJew0KCQkJCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgbGVnaXRpbWF0ZSBtYXRjaA0KCQkJCQlpZiAoISR0aGlzLT5sZWdpdGltYXRlSW5kZXhMaW5rKCRwYXJlbnRfbW9kLCAkcGFyZW50LCAkZmllbGRzKSkNCgkJCQkJew0KCQkJCQkJY29udGludWU7DQoJCQkJCX0NCgkJCQkJJGNoaWxkX21vZCA9ICR0aGlzLT5nZXRNb2ROYW1lKCRjaGlsZCk7DQoJCQkJCS8vIHNldCB0aGUgbGluaw0KCQkJCQlpZiAoIWlzc2V0KCR0aGlzLT50YWJsZXNbJGNoaWxkX21vZF1bJGNoaWxkXS0+bGlua3MpKQ0KCQkJCQl7DLine truncated
|
||||
(3, '', '', '', '', '7e6e7fe8-725d-411e-889a-4f1618c11840', '', '', '', '', 'Ly8gaGVscA==', '{}', 'TestingInterface', '[[[Component]]]\\Power\\TestingInterface', '1.0.0', '{}', 'Testing Interface', 'interface', '{}', '', 1, '2021-11-07 15:54:41', '2021-11-09 04:37:44', 7, 3),
|
||||
(4, '', 'To store tables structures from lila', '', '', 'c4469632-3914-400e-b861-972b2d463963', '', '', '', '', 'CS8qKg0KCSAqIEFkZGluZyB0aGUgdXRpbGl0aWVzIHRyYWl0IHRvIHRoaXMgY2xhc3MNCgkgKiBTaW5jZSB3ZSBuZWVkIHNvbWUgb2YgaXRzIGZ1bmN0aW9ucw0KCSAqLw0KCXVzZSBVdGlsOw0KDQoJLyoqDQoJICogVGhlIGRhdGENCgkgKg0KCSAqIEB2YXIgRXh0cnVkZQ0KCSAqLw0KCXByb3RlY3RlZCAkZGF0YTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gICBFeHRydWRlICAkZGF0YSAgVGhlIGV4dHJ1ZGVkIGRhdGENCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRXh0cnVkZVRhYmxlcyAkZGF0YSkNCgl7DQoJCSR0aGlzLT5kYXRhID0gJGRhdGE7DQoJfQ0KDQoJLyoqDQoJICogZ2V0IHRoZSBwYXJhbWV0ZXJzIG9mIGVhY2ggYXJlYSBpbiB0aGUgZGF0YSBzZXQNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAkYXJlYSAgVGhlIGFyZWEgb2YgcGFyYW1zDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA9IGFsbA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rcw0KCSAqDQoJICogQHJldHVybiAgYXJyYXkNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyYW1zKCRhcmVhID0gbnVsbCk6IGFycmF5DQoJew0KCQkvLyBsZXRzIGdldCBhbGwgdGhlIHRhYmxlIHBhcmFtcw0KCQkkcGFyYW1zWyd0YWJsZSddID0gYXJyYXkoKTsNCgkJLy8gbGV0cyBnZXQgYWxsIHRoZSBmaWVsZCBwYXJhbXMNCgkJJHBhcmFtc1snZmllbGRzJ10gPSBhcnJheSgpOw0KCQkvLyBsZXRzIGdldCBhbGwgdGhlIGluZGV4IHBhcmFtcw0KCQkkcGFyYW1zWydpbmRleCddID0gYXJyYXkoKTsNCgkJLy8gbGV0cyBnZXQgYWxsIHRoZSBsaW5rcyBwYXJhbXMNCgkJJHBhcmFtc1snbGlua3MnXSA9IGFycmF5KCk7DQoJCS8vIGxvb3Agb3ZlciB0aGUgZnVsbCBkYXRhc2V0DQoJCWZvcmVhY2ggKCR0aGlzLT5kYXRhLT50YWJsZXMgYXMgJG1vZCA9PiAkdGFibGVzKQ0KCQl7DQoJCQlmb3JlYWNoICgkdGFibGVzIGFzICR0YWJsZV92YWx1ZXMpDQoJCQl7DQoJCQkJZm9yZWFjaCAoJHRhYmxlX3ZhbHVlcyBhcyAkdGFibGVfcGFyYW0gPT4gJHZhbHVlcykNCgkJCQl7DQoJCQkJCS8vIGxldHMgZ2V0IGFsbCB0aGUgZmllbGQgcGFyYW1zDQoJCQkJCS8vIGxldHMgZ2V0IGFsbCB0aGUgaW5kZXggcGFyYW1zDQoJCQkJCS8vIGxldHMgZ2V0IGFsbCB0aGUgbGlua3MgcGFyYW1zDQoJCQkJCWlmICgkdGFibGVfcGFyYW0gPT09ICdmaWVsZHMnIHx8ICR0YWJsZV9wYXJhbSA9PT0gJ2luZGV4JyB8fCAkdGFibGVfcGFyYW0gPT09ICdsaW5rcycpDQoJCQkJCXsNCgkJCQkJCWZvcmVhY2ggKCR2YWx1ZXMgYXMgJGZpZWxkcykNCgkJCQkJCXsNCgkJCQkJCQlmb3JlYWNoICgkZmllbGRzIGFzICRwYXJhbSA9PiAkdmFsdWUpDQoJCQkJCQkJew0KCQkJCQkJCQkkcGFyYW1zWyR0YWJsZV9wYXJhbV1bJHBhcmFtXSA9ICRwYXJhbTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJLy8gbGV0cyBnZXQgYWxsIHRoZSB0YWJsZSBwYXJhbXMNCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkkcGFyYW1zWyd0YWJsZSddWyR0YWJsZV9wYXJhbV0gPSAkdGFibGVfcGFyYW07DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJLy8gY2hlY2sgaWYgYW4gYXJlYSBpcyBjYWxsZWQgYW5kIGZvdW5kDQoJCWlmICgkYXJlYSAmJiBpc3NldCgkcGFyYW1zWyRhcmVhXSkpDQoJCXsNCgkJCXJldHVybiAkcGFyYW1zWyRhcmVhXTsNCgkJfQ0KCQkvLyBpZiBhcmVhIGlzIGNhbGxlZCB0aGF0IGRvZXMgbm90IGV4aXN0DQoJCWVsc2VpZiAoJGFyZWEpDQoJCXsNCgkJCXJldHVybiBhcnJheSgpOw0KCQl9DQoJCS8vIHJldHVybiBhbGwgb24gbnVsbCBhcmVhDQoJCXJldHVybiAkcGFyYW1zOw0KCX0NCg==', '{}', 'StoreTables', '[[[COMPANY]]]\\[[[Component]]]\\StoreTables', '1.0.0', '{}', 'Lila Store Tables', 'class', '{\"use_selection0\":{\"use\":\"79d765b3-7319-4988-9730-446c7f347020\"}}', '', 1, '2021-11-13 17:52:23', '2021-11-13 22:21:46', 14, 2),
|
||||
@@ -1995,7 +1995,11 @@ INSERT INTO `#__componentbuilder_power` (`id`, `add_head`, `description`, `exten
|
||||
(26, '', 'Mime Helper\r\n\r\n@since 3.0.11', '', '', 'f11dc790-713e-4706-9a85-a318ed3ad56e', '', '', '', '{}', 'W0VYVEVSTkFMQ09ERT1odHRwczovL2dpc3QuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xsZXdlbGx5bnZkbS83NGJlMzczMzU3ZTEzMWI4Nzc1YTc1ODJjM2RlNTA4Yi9yYXcvbWltZV90eXBlcy5waHBdDQoNCltFWFRFUk5BTENPREU9aHR0cHM6Ly9naXN0LmdpdGh1YnVzZXJjb250ZW50LmNvbS9MbGV3ZWxseW52ZG0vNzRiZTM3MzM1N2UxMzFiODc3NWE3NTgyYzNkZTUwOGIvcmF3L2dldC5waHBdDQoNCltFWFRFUk5BTENPREU9aHR0cHM6Ly9naXN0LmdpdGh1YnVzZXJjb250ZW50LmNvbS9MbGV3ZWxseW52ZG0vNzRiZTM3MzM1N2UxMzFiODc3NWE3NTgyYzNkZTUwOGIvcmF3L2V4dGVuc2lvbnMucGhwXQ==', '{}', 'MimeHelper', 'VDM\\Joomla\\Utilities.MimeHelper', '1.0.0', '{}', 'Utilities MimeHelper', 'abstract class', '{}', '', 1, '2022-05-16 14:27:38', '2022-05-21 13:27:39', 3, 9),
|
||||
(27, '', 'Just to link powers to the power updater component', '', '', '8025e71c-8e21-44cb-b23e-dce2fb5a1ab5', '', '', '', '{\"load_selection0\":{\"load\":\"db4a1e4d-be59-4e87-8b4d-c40512752232\"},\"load_selection1\":{\"load\":\"79d765b3-7319-4988-9730-446c7f347020\"},\"load_selection2\":{\"load\":\"d7600b43-771a-4747-9f5d-952765721799\"},\"load_selection3\":{\"load\":\"962b15d8-915f-4cd7-aea6-7cf82afdc20b\"},\"load_selection4\":{\"load\":\"f11dc790-713e-4706-9a85-a318ed3ad56e\"}}', '', '{}', 'Updater', 'VDM\\Powe\\Updater', '1.0.0', '{}', 'Power Updater', 'class', '{}', '', 1, '2022-05-21 13:15:55', '2022-06-11 16:54:51', 3, 13),
|
||||
(28, 1, 'Start looking here:\r\nhttps://git.vdm.dev/api/swagger#/repository/repoGetContents', 'c65aaf1f-817c-49a2-8202-282e3904f5b1', '', 'ef011ee1-64f0-4048-b013-777473b727dd', 'dXNlIEpvb21sYVxDTVNcSHR0cFxIdHRwOw0KdXNlIEpvb21sYVxSZWdpc3RyeVxSZWdpc3RyeTs=', '', '', '{}', 'CS8qKg0KCSAqIEdldHMgdGhlIG1ldGFkYXRhIGFuZCBjb250ZW50cyAoaWYgYSBmaWxlKSBvZiBhbiBlbnRyeSBpbiBhIHJlcG9zaXRvcnksIG9yIGEgbGlzdCBvZiBlbnRyaWVzIGlmIGEgZGlyDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRvd25lciAgICAgICBSZXBvc2l0b3J5IG93bmVyLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHJlcG8gICAgICAgICBSZXBvc2l0b3J5IG5hbWUuDQoJICogQHBhcmFtICAgc3RyaW5nICAkZmlsZXBhdGggICAgUmVwb3NpdG9yeSBmaWxlIHBhdGguDQoJICoNCgkgKiBAcmV0dXJuICBvYmplY3QNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoJG93bmVyLCAkcmVwbywgJGZpbGVwYXRoKQ0KCXsNCgkJLy8gQnVpbGQgdGhlIHJlcXVlc3QgcGF0aC4NCgkJJHBhdGggPSAnL3JlcG9zLycgLiAkb3duZXIgLiAnLycgLiAkcmVwbyAuICcvY29udGVudHMvJyAuICRmaWxlcGF0aDsNCg0KCQkvLyBTZW5kIHRoZSByZXF1ZXN0Lg0KCQlyZXR1cm4gJHRoaXMtPnByb2Nlc3NSZXNwb25zZSgNCgkJCSR0aGlzLT5jbGllbnQtPmdldCgkdGhpcy0+ZmV0Y2hVcmwoJHBhdGgpKQ0KCQkpOw0KCX0NCg==', '{}', 'File', 'VDM\\Gitea\\Package.Repo.File', '1.0.0', '{}', 'Gitea Repo File', 'class', '{}', '', 1, '2022-05-21 13:40:09', '2022-07-09 10:28:20', 10, 4),
|
||||
(29, 1, 'Start looking here:\r\nhttps://git.vdm.dev/api/swagger#/repository/repoCreateWikiPage', 'c65aaf1f-817c-49a2-8202-282e3904f5b1', '', 'c4a188de-ad78-4a6d-9d5b-01866846d701', 'dXNlIEpvb21sYVxDTVNcSHR0cFxIdHRwOw0KdXNlIEpvb21sYVxSZWdpc3RyeVxSZWdpc3RyeTs=', '', '', '{}', 'CS8qKg0KCSAqIEdldCBhIHJlcG9zaXRvcnkgd2lraSBwYWdlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRvd25lciAgICAgICAgICAgICAgIFRoZSByZXBvc2l0b3J5IG93bmVyDQoJICogQHBhcmFtICAgc3RyaW5nICAkcmVwbyAgICAgICAgICAgICAgICAgVGhlIHJlcG9zaXRvcnkgbmFtZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHBhZ2VOYW1lICAgICAgIFRoZSBwYWdlIG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldChzdHJpbmcgJG93bmVyLCBzdHJpbmcgJHJlcG8sIHN0cmluZyAkcGFnZU5hbWUpDQoJew0KCQkvLyBCdWlsZCB0aGUgcmVxdWVzdCBwYXRoLg0KCQkkcGF0aCA9ICcvcmVwb3MvJyAuICRvd25lciAuICcvJyAuICRyZXBvIC4gJy93aWtpL3BhZ2UvJyAuICRwYWdlTmFtZTsNCg0KCQkvLyBTZW5kIHRoZSByZXF1ZXN0Lg0KCQlyZXR1cm4gJHRoaXMtPnByb2Nlc3NSZXNwb25zZSgNCgkJCSR0aGlzLT5jbGllbnQtPmdldCgkdGhpcy0+ZmV0Y2hVcmwoJHBhdGgpKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBhIHJlcG9zaXRvcnkgd2lraSBodG1sIHBhZ2UNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJG93bmVyICAgICAgICAgICAgICAgVGhlIHJlcG9zaXRvcnkgb3duZXINCgkgKiBAcGFyYW0gICBzdHJpbmcgICRyZXBvICAgICAgICAgICAgICAgICBUaGUgcmVwb3NpdG9yeSBuYW1lDQoJICogQHBhcmFtICAgc3RyaW5nICAkcGFnZU5hbWUgICAgICAgVGhlIHBhZ2UgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0DQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SHRtbChzdHJpbmcgJG93bmVyLCBzdHJpbmcgJHJlcG8sIHN0cmluZyAkcGFnZU5hbWUpDQoJew0KCQkvLyBnZXQgdGhlIGdpdGVhIHdpa2kgcGFnZQ0KCQkkcGFnZSA9ICR0aGlzLT5nZXQoJG93bmVyLCAkcmVwbywgJHBhZ2VOYW1lKTsNCg0KCQlpZiAoZW1wdHkoJHBhZ2UtPmNvbnRlbnQpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEV4Y2VwdGlvbignV2lraSBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZC4nKTsNCgkJfQ0KDQoJCS8vIEJ1aWxkIHRoZSByZXF1ZXN0IHBhdGguDQoJCSRwYXRoID0gJy9tYXJrZG93bic7DQoNCgkJLy8gR2V0IGhlYWRlcnMNCgkJJGhlYWRlcnMgPSAkdGhpcy0+Y2xpZW50LT5nZXRPcHRpb24oJ2hlYWRlcnMnLCBhcnJheSgpKTsNCg0KCQkkaGVhZGVyc1snYWNjZXB0J10gPSAndGV4dC9odG1sJzsNCgkJJGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nOw0KDQoJCS8vIGJ1aWxkIHRoZSBwb3N0IGJvZHkNCgkJJGRhdGEgPSBbDQoJCQknQ29udGV4dCcgPT4gJ3N0cmluZycsDQoJCQknTW9kZScgPT4gJ3N0cmluZycsDQoJCQknVGV4dCcgPT4gJHBhZ2UtPmNvbnRlbnQsDQoJCQknV2lraScgPT4gdHJ1ZQ0KCQldOw0KDQoJCS8vIFBvc3QgdGhlIHJlcXVlc3QuDQoJCXJldHVybiAkdGhpcy0+cHJvY2Vzc1Jlc3BvbnNlKA0KCQkJJHRoaXMtPmNsaWVudC0+cG9zdCgkdGhpcy0+ZmV0Y2hVcmwoJHBhdGgpLCBqc29uX2VuY29kZSgkZGF0YSksICRoZWFkZXJzKQ0KCQkpOw0KCX0NCg==', '{}', 'Wiki', 'VDM\\Gitea\\Package.Repo.Wiki', '1.0.0', '{}', 'Gitea Repo Wiki', 'class', '{}', '', 1, '2022-07-09 10:21:53', '2022-07-09 12:18:07', 9, 4);
|
||||
(29, 1, 'Start looking here:\r\nhttps://git.vdm.dev/api/swagger#/repository/repoCreateWikiPage', 'c65aaf1f-817c-49a2-8202-282e3904f5b1', '', 'c4a188de-ad78-4a6d-9d5b-01866846d701', 'dXNlIEpvb21sYVxDTVNcSHR0cFxIdHRwOw0KdXNlIEpvb21sYVxSZWdpc3RyeVxSZWdpc3RyeTs=', '', '', '{}', 'CS8qKg0KCSAqIEdldCBhIHJlcG9zaXRvcnkgd2lraSBwYWdlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRvd25lciAgICAgICAgICAgICAgIFRoZSByZXBvc2l0b3J5IG93bmVyDQoJICogQHBhcmFtICAgc3RyaW5nICAkcmVwbyAgICAgICAgICAgICAgICAgVGhlIHJlcG9zaXRvcnkgbmFtZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHBhZ2VOYW1lICAgICAgIFRoZSBwYWdlIG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldChzdHJpbmcgJG93bmVyLCBzdHJpbmcgJHJlcG8sIHN0cmluZyAkcGFnZU5hbWUpDQoJew0KCQkvLyBCdWlsZCB0aGUgcmVxdWVzdCBwYXRoLg0KCQkkcGF0aCA9ICcvcmVwb3MvJyAuICRvd25lciAuICcvJyAuICRyZXBvIC4gJy93aWtpL3BhZ2UvJyAuICRwYWdlTmFtZTsNCg0KCQkvLyBTZW5kIHRoZSByZXF1ZXN0Lg0KCQlyZXR1cm4gJHRoaXMtPnByb2Nlc3NSZXNwb25zZSgNCgkJCSR0aGlzLT5jbGllbnQtPmdldCgkdGhpcy0+ZmV0Y2hVcmwoJHBhdGgpKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBhIHJlcG9zaXRvcnkgd2lraSBodG1sIHBhZ2UNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJG93bmVyICAgICAgICAgICAgICAgVGhlIHJlcG9zaXRvcnkgb3duZXINCgkgKiBAcGFyYW0gICBzdHJpbmcgICRyZXBvICAgICAgICAgICAgICAgICBUaGUgcmVwb3NpdG9yeSBuYW1lDQoJICogQHBhcmFtICAgc3RyaW5nICAkcGFnZU5hbWUgICAgICAgVGhlIHBhZ2UgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0DQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SHRtbChzdHJpbmcgJG93bmVyLCBzdHJpbmcgJHJlcG8sIHN0cmluZyAkcGFnZU5hbWUpDQoJew0KCQkvLyBnZXQgdGhlIGdpdGVhIHdpa2kgcGFnZQ0KCQkkcGFnZSA9ICR0aGlzLT5nZXQoJG93bmVyLCAkcmVwbywgJHBhZ2VOYW1lKTsNCg0KCQlpZiAoZW1wdHkoJHBhZ2UtPmNvbnRlbnQpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEV4Y2VwdGlvbignV2lraSBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZC4nKTsNCgkJfQ0KDQoJCS8vIEJ1aWxkIHRoZSByZXF1ZXN0IHBhdGguDQoJCSRwYXRoID0gJy9tYXJrZG93bic7DQoNCgkJLy8gR2V0IGhlYWRlcnMNCgkJJGhlYWRlcnMgPSAkdGhpcy0+Y2xpZW50LT5nZXRPcHRpb24oJ2hlYWRlcnMnLCBhcnJheSgpKTsNCg0KCQkkaGVhZGVyc1snYWNjZXB0J10gPSAndGV4dC9odG1sJzsNCgkJJGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nOw0KDQoJCS8vIGJ1aWxkIHRoZSBwb3N0IGJvZHkNCgkJJGRhdGEgPSBbDQoJCQknQ29udGV4dCcgPT4gJ3N0cmluZycsDQoJCQknTW9kZScgPT4gJ3N0cmluZycsDQoJCQknVGV4dCcgPT4gJHBhZ2UtPmNvbnRlbnQsDQoJCQknV2lraScgPT4gdHJ1ZQ0KCQldOw0KDQoJCS8vIFBvc3QgdGhlIHJlcXVlc3QuDQoJCXJldHVybiAkdGhpcy0+cHJvY2Vzc1Jlc3BvbnNlKA0KCQkJJHRoaXMtPmNsaWVudC0+cG9zdCgkdGhpcy0+ZmV0Y2hVcmwoJHBhdGgpLCBqc29uX2VuY29kZSgkZGF0YSksICRoZWFkZXJzKQ0KCQkpOw0KCX0NCg==', '{}', 'Wiki', 'VDM\\Gitea\\Package.Repo.Wiki', '1.0.0', '{}', 'Gitea Repo Wiki', 'class', '{}', '', 1, '2022-07-09 10:21:53', '2022-07-09 12:18:07', 9, 4),
|
||||
(30, 1, 'Start looking here:\r\nhttps://git.vdm.dev/api/swagger#/repository/repoGetContents', 'c65aaf1f-817c-49a2-8202-282e3904f5b1', '', '6ad3beb1-a769-4a6c-b300-5cda7adc6c0d', 'dXNlIEpvb21sYVxDTVNcSHR0cFxIdHRwOw0KdXNlIEpvb21sYVxSZWdpc3RyeVxSZWdpc3RyeTs=', '', '', '{}', 'CS8qKg0KCSAqIEdldHMgdGhlIG1ldGFkYXRhIGFuZCBjb250ZW50cyAoaWYgYSBmaWxlKSBvZiBhbiBlbnRyeSBpbiBhIHJlcG9zaXRvcnksIG9yIGEgbGlzdCBvZiBlbnRyaWVzIGlmIGEgZGlyDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRvd25lciAgICAgICBSZXBvc2l0b3J5IG93bmVyLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHJlcG8gICAgICAgICBSZXBvc2l0b3J5IG5hbWUuDQoJICogQHBhcmFtICAgc3RyaW5nICAkZmlsZXBhdGggICAgUmVwb3NpdG9yeSBmaWxlIHBhdGguDQoJICoNCgkgKiBAcmV0dXJuICBvYmplY3QNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoJG93bmVyLCAkcmVwbywgJGZpbGVwYXRoKQ0KCXsNCgkJLy8gQnVpbGQgdGhlIHJlcXVlc3QgcGF0aC4NCgkJJHBhdGggPSAnL3JlcG9zLycgLiAkb3duZXIgLiAnLycgLiAkcmVwbyAuICcvY29udGVudHMvJyAuICRmaWxlcGF0aDsNCg0KCQkvLyBTZW5kIHRoZSByZXF1ZXN0Lg0KCQlyZXR1cm4gJHRoaXMtPnByb2Nlc3NSZXNwb25zZSgNCgkJCSR0aGlzLT5jbGllbnQtPmdldCgkdGhpcy0+ZmV0Y2hVcmwoJHBhdGgpKQ0KCQkpOw0KCX0NCg==', '{}', 'File', 'VDM\\Gitea\\Package.Repo.File', '1.0.1', '{}', 'Gitea Repo File', 'class', '{}', '', -2, '2022-07-11 18:35:50', '2022-07-09 10:28:20', 1, 4),
|
||||
(31, '', 'Loading the Extension Installation Script Class\r\n\r\n@since 3.1.5', '', '', '1d929017-a5de-4e0f-9b5a-838934857e26', '', '', '', '{}', 'CS8qKg0KCSAqIFRoZSBMaW5lIG51bWJlcmluZyBNZXRob2RzDQoJICoNCgkgKiBAc2luY2UgMy4xLjUNCgkgKi8NCgl1c2UgTGluZTsNCg0KCS8qKg0KCSAqIFRoZSBUYWIgQWRkaW5nIE1ldGhvZA0KCSAqDQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJdXNlIFRhYjsNCg0KCS8qKg0KCSAqIFRoZSBleHRlbnNpb24NCgkgKg0KCSAqIEB2YXIgICAgIG9iamVjdA0KCSAqIEBzaW5jZSAzLjEuNQ0KCSAqLw0KCXByb3RlY3RlZCBvYmplY3QgJGV4dGVuc2lvbjsNCg0KCS8qKg0KCSAqIFRoZSBtZXRob2RzDQoJICoNCgkgKiBAdmFyICAgICBhcnJheQ0KCSAqIEBzaW5jZSAzLjEuNQ0KCSAqLw0KCXByb3RlY3RlZCBhcnJheSAkbWV0aG9kcyA9IFsncGhwX3NjcmlwdCcsICdwaHBfcHJlZmxpZ2h0JywgJ3BocF9wb3N0ZmxpZ2h0JywgJ3BocF9tZXRob2QnXTsNCg0KCS8qKg0KCSAqIFRoZSB0eXBlcw0KCSAqDQoJICogQHZhciAgICAgYXJyYXkNCgkgKiBAc2luY2UgMy4xLjUNCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJHR5cGVzID0gWydjb25zdHJ1Y3QnLCAnaW5zdGFsbCcsICd1cGRhdGUnLCAndW5pbnN0YWxsJywgJ2Rpc2NvdmVyX2luc3RhbGwnXTsNCg0KCS8qKg0KCSAqIFRoZSBjb25zdHJ1Y3QgYnVja2V0DQoJICoNCgkgKiBAdmFyICAgICBhcnJheQ0KCSAqIEBzaW5jZSAzLjEuNQ0KCSAqLw0KCXByb3RlY3RlZCBhcnJheSAkY29uc3RydWN0ID0gW107DQoNCgkvKioNCgkgKiBUaGUgaW5zdGFsbCBidWNrZXQNCgkgKg0KCSAqIEB2YXIgICAgIGFycmF5DQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHJvdGVjdGVkIGFycmF5ICRpbnN0YWxsID0gW107DQoNCgkvKioNCgkgKiBUaGUgdXBkYXRlIGJ1Y2tldA0KCSAqDQoJICogQHZhciAgICAgYXJyYXkNCgkgKiBAc2luY2UgMy4xLjUNCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJHVwZGF0ZSA9IFtdOw0KDQoJLyoqDQoJICogVGhlIHVuaW5zdGFsbCBidWNrZXQNCgkgKg0KCSAqIEB2YXIgICAgIGFycmF5DQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHJvdGVjdGVkIGFycmF5ICR1bmluc3RhbGwgPSBbXTsNCg0KCS8qKg0KCSAqIFRoZSBwcmVmbGlnaHQgc3dpdGNoDQoJICoNCgkgKiBAdmFyICAgICBib29sDQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHJvdGVjdGVkIGJvb2wgJHByZWZsaWdodEFjdGl2ZSA9IGZhbHNlOw0KDQoJLyoqDQoJICogVGhlIHByZWZsaWdodCBidWNrZXQNCgkgKg0KCSAqIEB2YXIgICAgIGFycmF5DQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHJvdGVjdGVkIGFycmF5ICRwcmVmbGlnaHRCdWNrZXQgPSBbJ2luc3RhbGwnID0+IFtdLCAndW5pbnN0YWxsJyA9PiBbXSwgJ2Rpc2NvdmVyX2luc3RhbGwnID0+IFtdLCAndXBkYXRlJyA9PiBbXV07DQoNCgkvKioNCgkgKiBUaGUgcG9zdGZsaWdodCBzd2l0Y2gNCgkgKg0KCSAqIEB2YXIgICAgIGJvb2wNCgkgKiBAc2luY2UgMy4xLjUNCgkgKi8NCglwcm90ZWN0ZWQgYm9vbCAkcG9zdGZsaWdodEFjdGl2ZSA9IGZhbHNlOw0KDQoJLyoqDQoJICogVGhlIHBvc3RmbGlnaHQgYnVja2V0DQoJICoNCgkgKiBAdmFyICAgICBhcnJheQ0KCSAqIEBzaW5jZSAzLjEuNQ0KCSAqLw0KCXByb3RlY3RlZCBhcnJheSAkcG9zdGZsaWdodEJ1Y2tldCA9IFsnaW5zdGFsbCcgPT4gW10sICd1bmluc3RhbGwnID0+IFtdLCAnZGlzY292ZXJfaW5zdGFsbCcgPT4gW10sICd1cGRhdGUnID0+IFtdXTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KG9iamVjdCAkZXh0ZW5zaW9uKQ0KCXsNCgkJLy8gbG9vcCBvdmVyIG1ldGhvZHMgYW5kIHR5cGVzDQoJCWZvcmVhY2ggKCR0aGlzLT5tZXRob2RzIGFzICRtZXRob2QpDQoJCXsNCgkJCWZvcmVhY2ggKCR0aGlzLT50eXBlcyBhcyAkdHlwZSkNCgkJCXsNCgkJCQlpZiAoaXNzZXQoJGV4dGVuc2lvbi0+eydhZGRfJyAuICRtZXRob2QgLiAnXycgLiAkdHlwZX0pDQoJCQkJCSYmICRleHRlbnNpb24tPnsnYWRkXycgLiAkbWV0aG9kIC4gJ18nIC4gJHR5cGV9ID09IDENCgkJCQkJJiYgU3RyaW5nSGVscGVyOjpjaGVjaygNCgkJCQkJCSRleHRlbnNpb24tPnskbWV0aG9kIC4gJ18nIC4gJHR5cGV9DQoJCQkJCSkpDQoJCQkJew0KCQkJCQkvLyBhZGQgdG8gdGhlIG1haW4gbWV0aG9kcw0KCQkJCQlpZiAoJ3BocF9tZXRob2QnID09PSAkbWV0aG9kIHx8ICdwaHBfc2NyaXB0JyA9PT0gJG1ldGhvZCkNCgkJCQkJew0KCQkJCQkJJHRoaXMtPnskdHlwZX1bXSA9ICRleHRlbnNpb24tPnskbWV0aG9kIC4gJ18nIC4gJHR5cGV9Ow0KCQkJCQl9DQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkJLy8gZ2V0IHRoZSBmbGlnaHQga2V5DQoJCQkJCQkkZmxpZ2h0ID0gc3RyX3JlcGxhY2UoJ3BocF8nLCAnJywgJG1ldGhvZCk7DQoJCQkJCQkvLyBsb2FkIHRoZSBzY3JpcHQgdG8gb3VyIGJ1Y2tldA0KCQkJCQkJJHRoaXMtPnskZmxpZ2h0IC4gJ0J1Y2tldCd9WyR0eXBlXVtdICA9ICRleHRlbnNpb24tPnskbWV0aG9kIC4gJ18nIC4gJHR5cGV9Ow0KCQkJCQkJLy8gc2hvdyB0aGF0IHRoZSBtZXRob2QgaXMgYWN0aXZlDQoJCQkJCQkkdGhpcy0+eyRmbGlnaHQgLiAnQWN0aXZlJ30gPSB0cnVlOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJJHRoaXMtPmV4dGVuc2lvbiA9ICRleHRlbnNpb247DQoJfQ0KDQoJLyoqDQoJICogZ2V0IGluc3RhbGwgc2NyaXB0DQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4xLjUNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0KCk6IHN0cmluZw0KCXsNCgkJLy8gcmV0dXJuIHRoZSBjbGFzcw0KCQlyZXR1cm4gJHRoaXMtPmJ1aWxkKCk7DQoJfQ0KDQoJLyoqDQoJICogYnVpbGQgdGhlIGluc3RhbGwgY2xhc3MNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjEuNQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBidWlsZCgpOiBzdHJpbmcNCgl7DQoJCS8vIHN0YXJ0IGJ1aWxkDQoJCSRzY3JpcHQgPSAkdGhpcy0+aGVhZCgpOw0KDQoJCS8vIGxvYWQgY29uc3RydWN0b3IgaWYgc2V0DQoJCSRzY3JpcHQgLj0gJHRoaXMtPmNvbnN0cnVjdCgpOw0KDQoJCS8vIGxvYWQgaW5zdGFsbCBtZXRob2QgaWYgc2V0DQoJCSRzY3JpcHQgLj0gJHRoaXMtPm1haW4oJ2luc3RhbGwnKTsNCg0KCQkvLyBsb2FkIHVwZGF0ZSBtZXRob2QgaWYgc2V0DQoJCSRzY3JpcHQgLj0gJHRoaXMtPm1haW4oJ3VwZGF0ZScpOw0KDQoJCS8vIGxvYWQgdW5pbnN0YWxsIG1ldGhvZCBpZiBzZXQNCgkJJHNjcmlwdCAuPSAkdGhpcy0+bWFpbigndW5pbnN0YWxsJyk7DQoNCgkJLy8gbG9hZCBwcmVmbGlnaHQgbWV0aG9kIGlmIHNldA0KCQkkc2NyaXB0IC49ICR0aGlzLT5mbGlnaHQoJ3ByZWZsaWdodCcpOw0KDQoJCS8vIGxvYWQgcG9zdGZsaWdodCBtZXRob2QgaWYgc2V0DQoJCSRzY3JpcHQgLj0gJHRoaXMtPmZsaWdodCgncG9zdGZsaWdodCcpOw0KDQoJCS8vIGNsb3NlIHRoZSBjbGFzcw0KCQkkc2NyaXB0IC49IFBIUF9FT0wgLiAnfScgLiBQSFBfRU9MOw0KDQoJCXJldHVybiAkc2NyaXB0Ow0KCX0NCg0KCS8qKg0KCSAqIGdldCBpbnN0YWxsIHNjcmlwdCBoZWFkDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgLine truncated
|
||||
(32, '', 'Adds Tabs\r\n\r\n@since 3.1.5', '', '', 'a68c010b-e92e-47d5-8a44-d23cfddeb6c6', '', '', '', '{}', 'CS8qKg0KCSAqIFRhYi9zcGFjZXIgYnVja2V0ICh0byBzcGVlZC11cCB0aGUgYnVpbGQpDQoJICogDQoJICogQHZhciAgIGFycmF5DQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHJvdGVjdGVkICR0YWJTcGFjZXJCdWNrZXQgPSBhcnJheSgpOw0KDQoJLyoqDQoJICogU2V0IHRhYi9zcGFjZXINCgkgKiANCgkgKiBAdmFyICAgc3RyaW5nDQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHJvdGVjdGVkICR0YWJTcGFjZXIgPSAiXHQiOw0KDQoJLyoqDQoJICogU2V0IHRoZSB0YWIvc3BhY2UNCgkgKiANCgkgKiBAcGFyYW0gICBpbnQgICAkbnIgIFRoZSBudW1iZXIgb2YgdGFnL3NwYWNlDQoJICogDQoJICogQHJldHVybiAgc3RyaW5nDQoJICogQHNpbmNlIDMuMS41DQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF90KGludCAkbnIpIDogc3RyaW5nDQoJew0KCQkvLyBjaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIHN0cmluZw0KCQlpZiAoIWlzc2V0KCR0aGlzLT50YWJTcGFjZXJCdWNrZXRbJG5yXSkpDQoJCXsNCgkJCS8vIGdldCB0aGUgc3RyaW5nDQoJCQkkdGhpcy0+dGFiU3BhY2VyQnVja2V0WyRucl0gPSBzdHJfcmVwZWF0KCR0aGlzLT50YWJTcGFjZXIsIChpbnQpICRucik7DQoJCX0NCgkJLy8gcmV0dXJuIHN0b3JlZCBzdHJpbmcNCgkJcmV0dXJuICR0aGlzLT50YWJTcGFjZXJCdWNrZXRbJG5yXTsNCgl9', '{}', 'Tab', 'VDM\\Joomla\\Componentbuilder.Tab', '1.0.0', '{}', 'Componentbuilder.Tab', 'trait', '{}', '', 1, '2022-08-20 13:55:50', '2022-08-20 15:26:46', 5, 15),
|
||||
(33, '', 'Add line comment\r\n\r\n@since 3.1.5', '', '', '4e6ff11d-bebf-42f5-8fd7-b2f882857222', '', '', '', '{}', 'CS8qKg0KCSAqIFNldCB0aGUgbGluZSBudW1iZXIgaW4gY29tbWVudHMNCgkgKg0KCSAqIEBwYXJhbSAgIGludCAgJG5yICBUaGUgbGluZSBudW1iZXINCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjEuNQ0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gc2V0TGluZShpbnQgJG5yKTogc3RyaW5nDQoJew0KCQlpZiAoJHRoaXMtPmRlYnVnKQ0KCQl7DQoJCQlyZXR1cm4gJyBbJyAuIGdldF9jYWxsZWRfY2xhc3MoKSAuICcgJyAuICRuciAuICddJzsNCgkJfQ0KDQoJCXJldHVybiAnJzsNCgl9', '{}', 'Line', 'VDM\\Joomla\\Componentbuilder.Line', '1.0.0', '{}', 'Componentbuilder.Line', 'trait', '{}', '', 1, '2022-08-20 14:02:09', '2022-08-20 15:26:56', 4, 15);
|
||||
|
||||
--
|
||||
-- Dumping data for table `#__componentbuilder_admin_view`
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="4" method="upgrade">
|
||||
<name>COM_COMPONENTBUILDER</name>
|
||||
<creationDate>9th July, 2022</creationDate>
|
||||
<creationDate>20th August, 2022</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
<authorEmail>joomla@vdm.io</authorEmail>
|
||||
<authorUrl>https://dev.vdm.io</authorUrl>
|
||||
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<version>3.1.4</version>
|
||||
<version>3.1.5</version>
|
||||
<description>< is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
|
||||
|
||||
|
||||
@@ -1079,10 +1079,10 @@
|
||||
<element>pkg_component_builder</element>
|
||||
<type>package</type>
|
||||
<client>site</client>
|
||||
<version>3.1.4</version>
|
||||
<version>3.1.5</version>
|
||||
<infourl title="Component Builder!">https://dev.vdm.io</infourl>
|
||||
<downloads>
|
||||
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.1.4.zip</downloadurl>
|
||||
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.1.5.zip</downloadurl>
|
||||
</downloads>
|
||||
<tags>
|
||||
<tag>stable</tag>
|
||||
|
||||
@@ -0,0 +1,388 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 30th April, 2015
|
||||
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||
* @git Joomla Component Builder <https://git.vdm.dev/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\Extension;
|
||||
|
||||
|
||||
use VDM\Joomla\Utilities\ArrayHelper;
|
||||
use VDM\Joomla\Utilities\StringHelper;
|
||||
use VDM\Joomla\Componentbuilder\Line;
|
||||
use VDM\Joomla\Componentbuilder\Tab;
|
||||
|
||||
|
||||
/**
|
||||
* Loading the Extension Installation Script Class
|
||||
*
|
||||
* @since 3.1.5
|
||||
*/
|
||||
class InstallScript
|
||||
{
|
||||
/**
|
||||
* The Line numbering Methods
|
||||
*
|
||||
* @since 3.1.5
|
||||
*/
|
||||
use Line;
|
||||
|
||||
/**
|
||||
* The Tab Adding Method
|
||||
*
|
||||
* @since 3.1.5
|
||||
*/
|
||||
use Tab;
|
||||
|
||||
/**
|
||||
* The extension
|
||||
*
|
||||
* @var object
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected object $extension;
|
||||
|
||||
/**
|
||||
* The methods
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $methods = ['php_script', 'php_preflight', 'php_postflight', 'php_method'];
|
||||
|
||||
/**
|
||||
* The types
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $types = ['construct', 'install', 'update', 'uninstall', 'discover_install'];
|
||||
|
||||
/**
|
||||
* The construct bucket
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $construct = [];
|
||||
|
||||
/**
|
||||
* The install bucket
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $install = [];
|
||||
|
||||
/**
|
||||
* The update bucket
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $update = [];
|
||||
|
||||
/**
|
||||
* The uninstall bucket
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $uninstall = [];
|
||||
|
||||
/**
|
||||
* The preflight switch
|
||||
*
|
||||
* @var bool
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected bool $preflightActive = false;
|
||||
|
||||
/**
|
||||
* The preflight bucket
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $preflightBucket = ['install' => [], 'uninstall' => [], 'discover_install' => [], 'update' => []];
|
||||
|
||||
/**
|
||||
* The postflight switch
|
||||
*
|
||||
* @var bool
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected bool $postflightActive = false;
|
||||
|
||||
/**
|
||||
* The postflight bucket
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected array $postflightBucket = ['install' => [], 'uninstall' => [], 'discover_install' => [], 'update' => []];
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @since 3.1.5
|
||||
*/
|
||||
public function __construct(object $extension)
|
||||
{
|
||||
// loop over methods and types
|
||||
foreach ($this->methods as $method)
|
||||
{
|
||||
foreach ($this->types as $type)
|
||||
{
|
||||
if (isset($extension->{'add_' . $method . '_' . $type})
|
||||
&& $extension->{'add_' . $method . '_' . $type} == 1
|
||||
&& StringHelper::check(
|
||||
$extension->{$method . '_' . $type}
|
||||
))
|
||||
{
|
||||
// add to the main methods
|
||||
if ('php_method' === $method || 'php_script' === $method)
|
||||
{
|
||||
$this->{$type}[] = $extension->{$method . '_' . $type};
|
||||
}
|
||||
else
|
||||
{
|
||||
// get the flight key
|
||||
$flight = str_replace('php_', '', $method);
|
||||
// load the script to our bucket
|
||||
$this->{$flight . 'Bucket'}[$type][] = $extension->{$method . '_' . $type};
|
||||
// show that the method is active
|
||||
$this->{$flight . 'Active'} = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->extension = $extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* get install script
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
public function get(): string
|
||||
{
|
||||
// return the class
|
||||
return $this->build();
|
||||
}
|
||||
|
||||
/**
|
||||
* build the install class
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected function build(): string
|
||||
{
|
||||
// start build
|
||||
$script = $this->head();
|
||||
|
||||
// load constructor if set
|
||||
$script .= $this->construct();
|
||||
|
||||
// load install method if set
|
||||
$script .= $this->main('install');
|
||||
|
||||
// load update method if set
|
||||
$script .= $this->main('update');
|
||||
|
||||
// load uninstall method if set
|
||||
$script .= $this->main('uninstall');
|
||||
|
||||
// load preflight method if set
|
||||
$script .= $this->flight('preflight');
|
||||
|
||||
// load postflight method if set
|
||||
$script .= $this->flight('postflight');
|
||||
|
||||
// close the class
|
||||
$script .= PHP_EOL . '}' . PHP_EOL;
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
/**
|
||||
* get install script head
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected function head(): string
|
||||
{
|
||||
// get the extension
|
||||
$extension = $this->extension;
|
||||
// start build
|
||||
$script = PHP_EOL . '/**';
|
||||
$script .= PHP_EOL . ' * ' . $extension->official_name
|
||||
. ' script file.';
|
||||
$script .= PHP_EOL . ' *';
|
||||
$script .= PHP_EOL . ' * @package ' . $extension->class_name;
|
||||
$script .= PHP_EOL . ' */';
|
||||
$script .= PHP_EOL . 'class ' . $extension->installer_class_name;
|
||||
$script .= PHP_EOL . '{';
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
/**
|
||||
* get constructor
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected function construct(): string
|
||||
{
|
||||
// return empty string if not set
|
||||
if (!ArrayHelper::check($this->construct))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
// the __construct script
|
||||
$script = PHP_EOL . PHP_EOL . $this->_t(1) . '/**';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' * Constructor';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' */';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. 'public function __construct($adapter)';
|
||||
$script .= PHP_EOL . $this->_t(1) . '{';
|
||||
$script .= PHP_EOL . implode(PHP_EOL . PHP_EOL, $this->construct);
|
||||
// close the function
|
||||
$script .= PHP_EOL . $this->_t(1) . '}';
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
/**
|
||||
* build main methods
|
||||
*
|
||||
* @param string $name the method being called
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected function main(string $name): string
|
||||
{
|
||||
// return empty string if not set
|
||||
if (!ArrayHelper::check($this->{$name}))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
// load the install method
|
||||
$script = PHP_EOL . PHP_EOL . $this->_t(1) . '/**';
|
||||
$script .= PHP_EOL . $this->_t(1) . " * Called on $name";
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @return boolean True on success';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' */';
|
||||
$script .= PHP_EOL . $this->_t(1) . 'public function '
|
||||
. $name . '($adapter)';
|
||||
$script .= PHP_EOL . $this->_t(1) . '{';
|
||||
$script .= PHP_EOL . implode(PHP_EOL . PHP_EOL, $this->{$name});
|
||||
// return true
|
||||
if ('uninstall' !== $name)
|
||||
{
|
||||
$script .= PHP_EOL . $this->_t(2) . 'return true;';
|
||||
}
|
||||
// close the function
|
||||
$script .= PHP_EOL . $this->_t(1) . '}';
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
/**
|
||||
* build flight methods
|
||||
*
|
||||
* @param string $name the method being called
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected function flight(string $name): string
|
||||
{
|
||||
// return empty string if not set
|
||||
if (empty($this->{$name . 'Active'}))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
// the pre/post function types
|
||||
$script = PHP_EOL . PHP_EOL . $this->_t(1) . '/**';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * Called before any type of action';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param string $route Which action is happening (install|uninstall|discover_install|update)';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' *';
|
||||
$script .= PHP_EOL . $this->_t(1)
|
||||
. ' * @return boolean True on success';
|
||||
$script .= PHP_EOL . $this->_t(1) . ' */';
|
||||
$script .= PHP_EOL . $this->_t(1) . 'public function '
|
||||
. $name . '($route, $adapter)';
|
||||
$script .= PHP_EOL . $this->_t(1) . '{';
|
||||
$script .= PHP_EOL . $this->_t(2) . '//' . $this->setLine(
|
||||
__LINE__
|
||||
) . ' get application';
|
||||
$script .= PHP_EOL . $this->_t(2)
|
||||
. '$app = JFactory::getApplication();' . PHP_EOL;
|
||||
|
||||
// add the default version check (TODO) must make this dynamic
|
||||
if ('preflight' === $name)
|
||||
{
|
||||
$script .= PHP_EOL . $this->_t(2) . '//' . $this->setLine(
|
||||
__LINE__
|
||||
) . ' the default for both install and update';
|
||||
$script .= PHP_EOL . $this->_t(2)
|
||||
. '$jversion = new JVersion();';
|
||||
$script .= PHP_EOL . $this->_t(2)
|
||||
. "if (!\$jversion->isCompatible('3.8.0'))";
|
||||
$script .= PHP_EOL . $this->_t(2) . '{';
|
||||
$script .= PHP_EOL . $this->_t(3)
|
||||
. "\$app->enqueueMessage('Please upgrade to at least Joomla! 3.8.0 before continuing!', 'error');";
|
||||
$script .= PHP_EOL . $this->_t(3) . 'return false;';
|
||||
$script .= PHP_EOL . $this->_t(2) . '}' . PHP_EOL;
|
||||
}
|
||||
|
||||
// now add the scripts
|
||||
foreach ($this->{$name . 'Bucket'} as $route => $_script)
|
||||
{
|
||||
if (ArrayHelper::check($_script))
|
||||
{
|
||||
// set the if and script
|
||||
$script .= PHP_EOL . $this->_t(2) . "if ('" . $route
|
||||
. "' === \$route)";
|
||||
$script .= PHP_EOL . $this->_t(2) . '{';
|
||||
$script .= PHP_EOL . implode(
|
||||
PHP_EOL . PHP_EOL, $_script
|
||||
);
|
||||
$script .= PHP_EOL . $this->_t(2) . '}' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
// return true
|
||||
$script .= PHP_EOL . $this->_t(2) . 'return true;';
|
||||
// close the function
|
||||
$script .= PHP_EOL . $this->_t(1) . '}';
|
||||
|
||||
return $script;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<html><body bgcolor="#FFFFFF"></body></html>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 30th April, 2015
|
||||
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||
* @git Joomla Component Builder <https://git.vdm.dev/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;
|
||||
|
||||
|
||||
/**
|
||||
* Add line comment
|
||||
*
|
||||
* @since 3.1.5
|
||||
*/
|
||||
trait Line
|
||||
{
|
||||
/**
|
||||
* Set the line number in comments
|
||||
*
|
||||
* @param int $nr The line number
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
private function setLine(int $nr): string
|
||||
{
|
||||
if ($this->debug)
|
||||
{
|
||||
return ' [' . get_called_class() . ' ' . $nr . ']';
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 30th April, 2015
|
||||
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||
* @git Joomla Component Builder <https://git.vdm.dev/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;
|
||||
|
||||
|
||||
/**
|
||||
* Adds Tabs
|
||||
*
|
||||
* @since 3.1.5
|
||||
*/
|
||||
trait Tab
|
||||
{
|
||||
/**
|
||||
* Tab/spacer bucket (to speed-up the build)
|
||||
*
|
||||
* @var array
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected $tabSpacerBucket = array();
|
||||
|
||||
/**
|
||||
* Set tab/spacer
|
||||
*
|
||||
* @var string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
protected $tabSpacer = "\t";
|
||||
|
||||
/**
|
||||
* Set the tab/space
|
||||
*
|
||||
* @param int $nr The number of tag/space
|
||||
*
|
||||
* @return string
|
||||
* @since 3.1.5
|
||||
*/
|
||||
public function _t(int $nr) : string
|
||||
{
|
||||
// check if we already have the string
|
||||
if (!isset($this->tabSpacerBucket[$nr]))
|
||||
{
|
||||
// get the string
|
||||
$this->tabSpacerBucket[$nr] = str_repeat($this->tabSpacer, (int) $nr);
|
||||
}
|
||||
// return stored string
|
||||
return $this->tabSpacerBucket[$nr];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<html><body bgcolor="#FFFFFF"></body></html>
|
||||
+1
-1
@@ -9422,7 +9422,7 @@ class com_componentbuilderInstallerScript
|
||||
echo '<a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
||||
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
||||
</a>
|
||||
<h3>Upgrade to Version 3.1.4 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||
<h3>Upgrade to Version 3.1.5 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||
|
||||
// Set db if not set already.
|
||||
if (!isset($db))
|
||||
|
||||
Reference in new issue
Block a user