Stable release of v3.1.19
We fixed #972 so that custom code (in the header) will be added after the power namespaces. We added a message to show when a server move failed. We fixed the BaseConfig to not use '_' as separator. We fixed the footable loading issue. We removed the need for passing placeholders by reference. We added the option to generate a CHANGELOG. We fixed the server class to load new client if server details changed. We fixed the readme placeholder issue #978. We fixed the empty server url issue #978. Fixed Package import to now use the phplibsec version 3.
This commit is contained in:
@@ -31,6 +31,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Model\Sqltweaking;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Adminviews;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Siteviews;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Customadminviews;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Updateserver;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Joomlamodules;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Joomlaplugins;
|
||||
use VDM\Joomla\Utilities\StringHelper;
|
||||
@@ -182,6 +183,14 @@ class Data
|
||||
*/
|
||||
protected Customadminviews $customadminviews;
|
||||
|
||||
/**
|
||||
* The modelling Update Server
|
||||
*
|
||||
* @var Updateserver
|
||||
* @since 3.2.0
|
||||
*/
|
||||
protected Updateserver $updateserver;
|
||||
|
||||
/**
|
||||
* The modelling Joomla Modules
|
||||
*
|
||||
@@ -226,6 +235,7 @@ class Data
|
||||
* @param Adminviews|null $adminviews The modelling adminviews object.
|
||||
* @param Siteviews|null $siteviews The modelling siteviews object.
|
||||
* @param Customadminviews|null $customadminviews The modelling customadminviews object.
|
||||
* @param Updateserver|null $updateserver The modelling update server object.
|
||||
* @param Joomlamodules|null $modules The modelling modules object.
|
||||
* @param Joomlaplugins|null $plugins The modelling plugins object.
|
||||
* @param \JDatabaseDriver|null $db The database object.
|
||||
@@ -238,8 +248,8 @@ class Data
|
||||
?Field $field = null, ?FieldName $fieldName = null, ?UniqueName $uniqueName = null,
|
||||
?Filesfolders $filesFolders = null, ?Historycomponent $history = null, ?Whmcs $whmcs = null,
|
||||
?Sqltweaking $sqltweaking = null, ?Adminviews $adminviews = null, ?Siteviews $siteviews = null,
|
||||
?Customadminviews $customadminviews = null, ?Joomlamodules $modules = null,
|
||||
?Joomlaplugins $plugins = null, ?\JDatabaseDriver $db = null)
|
||||
?Customadminviews $customadminviews = null, ?Updateserver $updateserver = null,
|
||||
?Joomlamodules $modules = null, ?Joomlaplugins $plugins = null, ?\JDatabaseDriver $db = null)
|
||||
{
|
||||
$this->config = $config ?: Compiler::_('Config');
|
||||
$this->event = $event ?: Compiler::_('Event');
|
||||
@@ -258,6 +268,7 @@ class Data
|
||||
$this->adminviews = $adminviews ?: Compiler::_('Model.Adminviews');
|
||||
$this->siteviews = $siteviews ?: Compiler::_('Model.Siteviews');
|
||||
$this->customadminviews = $customadminviews ?: Compiler::_('Model.Customadminviews');
|
||||
$this->updateserver = $updateserver ?: Compiler::_('Model.Updateserver');
|
||||
$this->modules = $modules ?: Compiler::_('Model.Joomlamodules');
|
||||
$this->plugins = $plugins ?: Compiler::_('Model.Joomlaplugins');
|
||||
$this->db = $db ?: Factory::getDbo();
|
||||
@@ -397,10 +408,10 @@ class Data
|
||||
$this->whmcs->set($component);
|
||||
|
||||
// set the footable switch
|
||||
if ($component->addfootable)
|
||||
if ($component->addfootable > 0)
|
||||
{
|
||||
// force add footable
|
||||
$this->config->set('footable ', true);
|
||||
$this->config->set('footable', true);
|
||||
// add the version
|
||||
$this->config->set('footable_version', (3 == $component->addfootable) ? 3 : 2);
|
||||
}
|
||||
@@ -472,15 +483,7 @@ class Data
|
||||
unset($component->addcontributors);
|
||||
|
||||
// set the version updates
|
||||
$component->version_update = (isset($component->version_update)
|
||||
&& JsonHelper::check($component->version_update))
|
||||
? json_decode((string) $component->version_update, true) : null;
|
||||
if (ArrayHelper::check($component->version_update))
|
||||
{
|
||||
$component->version_update = array_values(
|
||||
$component->version_update
|
||||
);
|
||||
}
|
||||
$this->updateserver->set($component);
|
||||
|
||||
// build the build date
|
||||
if ($this->config->get('add_build_date', 1) == 3)
|
||||
@@ -569,11 +572,8 @@ class Data
|
||||
{
|
||||
foreach ($addScriptTypes as $scriptType)
|
||||
{
|
||||
if (isset(
|
||||
$component->{'add_' . $scriptMethod . '_' . $scriptType}
|
||||
)
|
||||
&& $component->{'add_' . $scriptMethod . '_' . $scriptType}
|
||||
== 1
|
||||
if (isset($component->{'add_' . $scriptMethod . '_' . $scriptType})
|
||||
&& $component->{'add_' . $scriptMethod . '_' . $scriptType} == 1
|
||||
&& StringHelper::check(
|
||||
$component->{$scriptMethod . '_' . $scriptType}
|
||||
))
|
||||
@@ -795,14 +795,24 @@ class Data
|
||||
// reset back to now lang
|
||||
$this->config->lang_target = $nowLang;
|
||||
|
||||
// catch empty URL to update server TODO: we need to fix this in better way later
|
||||
if ($component->add_update_server == 1 && $component->update_server_target !== 3
|
||||
&& (
|
||||
!StringHelper::check($component->update_server_url)
|
||||
|| strpos($component->update_server_url, 'http') === false
|
||||
))
|
||||
{
|
||||
// we fall back to other, since we can't work with an empty update server URL
|
||||
$component->add_update_server = 0;
|
||||
$component->update_server_target = 3;
|
||||
}
|
||||
|
||||
// add the update/sales server FTP details if that is the expected protocol
|
||||
$serverArray = array('update_server', 'sales_server');
|
||||
foreach ($serverArray as $server)
|
||||
{
|
||||
if ($component->{'add_' . $server} == 1
|
||||
&& is_numeric(
|
||||
$component->{$server}
|
||||
)
|
||||
&& is_numeric($component->{$server})
|
||||
&& $component->{$server} > 0)
|
||||
{
|
||||
// get the server protocol
|
||||
|
@@ -192,6 +192,9 @@ class Structuresingle
|
||||
// do README check
|
||||
$README = $this->doReadmeCheck();
|
||||
|
||||
// do CHANGELOG check
|
||||
$CHANGELOG = $this->doChangelogCheck();
|
||||
|
||||
// start moving
|
||||
foreach ($this->settings->single() as $target => $details)
|
||||
{
|
||||
@@ -208,6 +211,12 @@ class Structuresingle
|
||||
continue;
|
||||
}
|
||||
|
||||
// if not needed do not add
|
||||
if ($details->naam === 'CHANGELOG.md' && !$CHANGELOG)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// set new name
|
||||
$this->setNewName($details);
|
||||
|
||||
@@ -264,12 +273,18 @@ class Structuresingle
|
||||
*/
|
||||
private function doReadmeCheck(): bool
|
||||
{
|
||||
if ($this->component->get('addreadme', false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (bool) $this->component->get('addreadme', false);
|
||||
}
|
||||
|
||||
return false;
|
||||
/**
|
||||
* Check if changelog must be added
|
||||
*
|
||||
* @return bool
|
||||
* @since 3.2.0
|
||||
*/
|
||||
private function doChangelogCheck(): bool
|
||||
{
|
||||
return (bool) $this->component->get('changelog', false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -213,7 +213,7 @@ interface PlaceholderInterface
|
||||
* @return string
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function update(string $data, array &$placeholder, int $action = 1): string;
|
||||
public function update(string $data, array $placeholder, int $action = 1): string;
|
||||
|
||||
/**
|
||||
* Update the data with the active placeholders
|
||||
|
@@ -813,50 +813,47 @@ class Data
|
||||
$this->libraries->set($module->code_name, $module);
|
||||
|
||||
// add PHP in module install
|
||||
$module->add_install_script = false;
|
||||
$addScriptMethods = array('php_preflight',
|
||||
$module->add_install_script = true;
|
||||
$addScriptMethods = [
|
||||
'php_script',
|
||||
'php_preflight',
|
||||
'php_postflight',
|
||||
'php_method');
|
||||
$addScriptTypes = array('install', 'update',
|
||||
'uninstall');
|
||||
'php_method'
|
||||
];
|
||||
$addScriptTypes = [
|
||||
'install',
|
||||
'update',
|
||||
'uninstall'
|
||||
];
|
||||
// the next are php placeholders
|
||||
$guiMapper['type'] = 'php';
|
||||
foreach ($addScriptMethods as $scriptMethod)
|
||||
{
|
||||
foreach ($addScriptTypes as $scriptType)
|
||||
{
|
||||
if (isset(
|
||||
$module->{'add_' . $scriptMethod . '_'
|
||||
. $scriptType}
|
||||
)
|
||||
&& $module->{'add_' . $scriptMethod . '_'
|
||||
. $scriptType} == 1
|
||||
if (isset($module->{'add_' . $scriptMethod . '_' . $scriptType})
|
||||
&& $module->{'add_' . $scriptMethod . '_' . $scriptType} == 1
|
||||
&& StringHelper::check(
|
||||
$module->{$scriptMethod . '_' . $scriptType}
|
||||
))
|
||||
{
|
||||
// set GUI mapper field
|
||||
$guiMapper['field'] = $scriptMethod . '_'
|
||||
. $scriptType;
|
||||
$guiMapper['field'] = $scriptMethod . '_' . $scriptType;
|
||||
$module->{$scriptMethod . '_' . $scriptType} = $this->gui->set(
|
||||
$this->placeholder->update_(
|
||||
$this->customcode->update(
|
||||
base64_decode(
|
||||
(string) $module->{$scriptMethod . '_'
|
||||
. $scriptType}
|
||||
(string) $module->{$scriptMethod . '_' . $scriptType}
|
||||
)
|
||||
)
|
||||
),
|
||||
$guiMapper
|
||||
);
|
||||
$module->add_install_script = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
unset($module->{$scriptMethod . '_' . $scriptType});
|
||||
$module->{'add_' . $scriptMethod . '_'
|
||||
. $scriptType}
|
||||
= 0;
|
||||
$module->{'add_' . $scriptMethod . '_' . $scriptType} = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -307,19 +307,17 @@ class Structure
|
||||
// set install script if needed
|
||||
if ($module->add_install_script)
|
||||
{
|
||||
$fileDetails = array('path' => $module->folder_path
|
||||
. '/script.php',
|
||||
'name' => 'script.php',
|
||||
'zip' => 'script.php');
|
||||
$fileDetails = [
|
||||
'path' => $module->folder_path . '/script.php',
|
||||
'name' => 'script.php',
|
||||
'zip' => 'script.php'
|
||||
];
|
||||
$this->file->write(
|
||||
$fileDetails['path'],
|
||||
'<?php' . PHP_EOL . '// Script template' .
|
||||
PHP_EOL . Placefix::_h('BOM') . PHP_EOL
|
||||
.
|
||||
PHP_EOL . '// No direct access to this file'
|
||||
. PHP_EOL .
|
||||
"defined('_JEXEC') or die('Restricted access');"
|
||||
. PHP_EOL .
|
||||
PHP_EOL . Placefix::_h('BOM') . PHP_EOL .
|
||||
PHP_EOL . '// No direct access to this file' . PHP_EOL .
|
||||
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL .
|
||||
Placefix::_h('INSTALLCLASS')
|
||||
);
|
||||
$this->files->appendArray($module->key, $fileDetails);
|
||||
@@ -331,10 +329,11 @@ class Structure
|
||||
// set readme if found
|
||||
if ($module->addreadme)
|
||||
{
|
||||
$fileDetails = array('path' => $module->folder_path
|
||||
. '/README.md',
|
||||
'name' => 'README.md',
|
||||
'zip' => 'README.md');
|
||||
$fileDetails = [
|
||||
'path' => $module->folder_path . '/README.md',
|
||||
'name' => 'README.md',
|
||||
'zip' => 'README.md'
|
||||
];
|
||||
$this->file->write($fileDetails['path'], $module->readme);
|
||||
$this->files->appendArray($module->key, $fileDetails);
|
||||
|
||||
@@ -369,10 +368,11 @@ class Structure
|
||||
$this->folder->create($module->folder_path . '/css');
|
||||
|
||||
// add the CSS file
|
||||
$fileDetails = array('path' => $module->folder_path
|
||||
. '/css/mod_admin.css',
|
||||
'name' => 'mod_admin.css',
|
||||
'zip' => 'mod_admin.css');
|
||||
$fileDetails = [
|
||||
'path' => $module->folder_path . '/css/mod_admin.css',
|
||||
'name' => 'mod_admin.css',
|
||||
'zip' => 'mod_admin.css'
|
||||
];
|
||||
$this->file->write(
|
||||
$fileDetails['path'],
|
||||
Placefix::_h('BOM') . PHP_EOL
|
||||
@@ -409,10 +409,11 @@ class Structure
|
||||
$this->folder->create($module->folder_path . '/js');
|
||||
|
||||
// add the CSS file
|
||||
$fileDetails = array('path' => $module->folder_path
|
||||
. '/js/mod_admin.js',
|
||||
'name' => 'mod_admin.js',
|
||||
'zip' => 'mod_admin.js');
|
||||
$fileDetails = [
|
||||
'path' => $module->folder_path . '/js/mod_admin.js',
|
||||
'name' => 'mod_admin.js',
|
||||
'zip' => 'mod_admin.js'
|
||||
];
|
||||
$this->file->write(
|
||||
$fileDetails['path'],
|
||||
Placefix::_h('BOM') . PHP_EOL
|
||||
@@ -484,11 +485,11 @@ class Structure
|
||||
foreach ($module->form_files as $file => $fields)
|
||||
{
|
||||
// set file details
|
||||
$fileDetails = array('path' => $module->folder_path
|
||||
. '/forms/' . $file . '.xml',
|
||||
'name' => $file . '.xml',
|
||||
'zip' => 'forms/' . $file
|
||||
. '.xml');
|
||||
$fileDetails = [
|
||||
'path' => $module->folder_path . '/forms/' . $file . '.xml',
|
||||
'name' => $file . '.xml',
|
||||
'zip' => 'forms/' . $file . '.xml'
|
||||
];
|
||||
|
||||
// build basic XML
|
||||
$xml = '<?xml version="1.0" encoding="utf-8"?>';
|
||||
|
@@ -735,49 +735,44 @@ class Data
|
||||
$this->filesFolders->set($plugin);
|
||||
|
||||
// add PHP in plugin install
|
||||
$plugin->add_install_script = false;
|
||||
$addScriptMethods = array('php_preflight',
|
||||
$plugin->add_install_script = true;
|
||||
$addScriptMethods = [
|
||||
'php_preflight',
|
||||
'php_postflight',
|
||||
'php_method');
|
||||
$addScriptTypes = array('install', 'update',
|
||||
'uninstall');
|
||||
'php_method'
|
||||
];
|
||||
$addScriptTypes = [
|
||||
'install',
|
||||
'update',
|
||||
'uninstall'
|
||||
];
|
||||
foreach ($addScriptMethods as $scriptMethod)
|
||||
{
|
||||
foreach ($addScriptTypes as $scriptType)
|
||||
{
|
||||
if (isset(
|
||||
$plugin->{'add_' . $scriptMethod . '_'
|
||||
. $scriptType}
|
||||
)
|
||||
&& $plugin->{'add_' . $scriptMethod . '_'
|
||||
. $scriptType} == 1
|
||||
if (isset( $plugin->{'add_' . $scriptMethod . '_' . $scriptType})
|
||||
&& $plugin->{'add_' . $scriptMethod . '_' . $scriptType} == 1
|
||||
&& StringHelper::check(
|
||||
$plugin->{$scriptMethod . '_' . $scriptType}
|
||||
))
|
||||
{
|
||||
// set GUI mapper field
|
||||
$guiMapper['field'] = $scriptMethod . '_'
|
||||
. $scriptType;
|
||||
$plugin->{$scriptMethod . '_' . $scriptType}
|
||||
= $this->gui->set(
|
||||
$guiMapper['field'] = $scriptMethod . '_' . $scriptType;
|
||||
$plugin->{$scriptMethod . '_' . $scriptType} = $this->gui->set(
|
||||
$this->placeholder->update_(
|
||||
$this->customcode->update(
|
||||
base64_decode(
|
||||
(string) $plugin->{$scriptMethod . '_'
|
||||
. $scriptType}
|
||||
(string) $plugin->{$scriptMethod . '_' . $scriptType}
|
||||
)
|
||||
)
|
||||
),
|
||||
$guiMapper
|
||||
);
|
||||
$plugin->add_install_script = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
unset($plugin->{$scriptMethod . '_' . $scriptType});
|
||||
$plugin->{'add_' . $scriptMethod . '_'
|
||||
. $scriptType}
|
||||
= 0;
|
||||
$plugin->{'add_' . $scriptMethod . '_' . $scriptType} = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -228,19 +228,17 @@ class Structure
|
||||
// set install script if needed
|
||||
if ($plugin->add_install_script)
|
||||
{
|
||||
$fileDetails = array('path' => $plugin->folder_path
|
||||
. '/script.php',
|
||||
'name' => 'script.php',
|
||||
'zip' => 'script.php');
|
||||
$fileDetails = [
|
||||
'path' => $plugin->folder_path . '/script.php',
|
||||
'name' => 'script.php',
|
||||
'zip' => 'script.php'
|
||||
];
|
||||
$this->file->write(
|
||||
$fileDetails['path'],
|
||||
'<?php' . PHP_EOL . '// Script template' .
|
||||
PHP_EOL . Placefix::_h('BOM') . PHP_EOL
|
||||
.
|
||||
PHP_EOL . '// No direct access to this file'
|
||||
. PHP_EOL .
|
||||
"defined('_JEXEC') or die('Restricted access');"
|
||||
. PHP_EOL .
|
||||
PHP_EOL . Placefix::_h('BOM') . PHP_EOL .
|
||||
PHP_EOL . '// No direct access to this file' . PHP_EOL .
|
||||
"defined('_JEXEC') or die('Restricted access');" . PHP_EOL .
|
||||
Placefix::_h('INSTALLCLASS')
|
||||
);
|
||||
$this->files->appendArray($plugin->key, $fileDetails);
|
||||
@@ -252,10 +250,11 @@ class Structure
|
||||
// set readme if found
|
||||
if ($plugin->addreadme)
|
||||
{
|
||||
$fileDetails = array('path' => $plugin->folder_path
|
||||
. '/README.md',
|
||||
'name' => 'README.md',
|
||||
'zip' => 'README.md');
|
||||
$fileDetails = [
|
||||
'path' => $plugin->folder_path . '/README.md',
|
||||
'name' => 'README.md',
|
||||
'zip' => 'README.md'
|
||||
];
|
||||
$this->file->write($fileDetails['path'], $plugin->readme);
|
||||
$this->files->appendArray($plugin->key, $fileDetails);
|
||||
|
||||
@@ -287,11 +286,11 @@ class Structure
|
||||
foreach ($plugin->form_files as $file => $fields)
|
||||
{
|
||||
// set file details
|
||||
$fileDetails = array('path' => $plugin->folder_path
|
||||
. '/forms/' . $file . '.xml',
|
||||
'name' => $file . '.xml',
|
||||
'zip' => 'forms/' . $file
|
||||
. '.xml');
|
||||
$fileDetails = [
|
||||
'path' => $plugin->folder_path . '/forms/' . $file . '.xml',
|
||||
'name' => $file . '.xml',
|
||||
'zip' => 'forms/' . $file . '.xml'
|
||||
];
|
||||
|
||||
// build basic XML
|
||||
$xml = '<?xml version="1.0" encoding="utf-8"?>';
|
||||
|
@@ -79,7 +79,7 @@ class Loader
|
||||
$this->registry->
|
||||
set('builder.footable_scripts.' . $target . '.' . $key, true);
|
||||
|
||||
$this->config->set('footable ', true);
|
||||
$this->config->set('footable', true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 4th September, 2022
|
||||
* @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\Compiler\Model;
|
||||
|
||||
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Registry;
|
||||
use VDM\Joomla\Utilities\ArrayHelper;
|
||||
use VDM\Joomla\Utilities\JsonHelper;
|
||||
use VDM\Joomla\Utilities\StringHelper;
|
||||
|
||||
|
||||
/**
|
||||
* Model Joomla Update Server Class
|
||||
*
|
||||
* @since 3.2.0
|
||||
*/
|
||||
class Updateserver
|
||||
{
|
||||
/**
|
||||
* Compiler Registry Class
|
||||
*
|
||||
* @var Registry
|
||||
* @since 3.2.0
|
||||
*/
|
||||
protected Registry $registry;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Registry|null $registry The compiler registry object.
|
||||
*
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function __construct(?Registry $registry = null)
|
||||
{
|
||||
$this->registry = $registry ?: Compiler::_('Registry');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set version updates
|
||||
*
|
||||
* @param object $item The item data
|
||||
*
|
||||
* @return void
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function set(object &$item)
|
||||
{
|
||||
// set the version updates
|
||||
$item->version_update = (isset($item->version_update)
|
||||
&& JsonHelper::check($item->version_update))
|
||||
? json_decode((string) $item->version_update, true) : null;
|
||||
if (ArrayHelper::check($item->version_update))
|
||||
{
|
||||
$item->version_update = array_values(
|
||||
$item->version_update
|
||||
);
|
||||
|
||||
// set the change log details
|
||||
$this->changelog($item);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set changelog values to registry
|
||||
*
|
||||
* @param array $updates The update data
|
||||
*
|
||||
* @return void
|
||||
* @since 3.2.0
|
||||
*/
|
||||
protected function changelog(object &$item)
|
||||
{
|
||||
// set the version updates
|
||||
foreach ($item->version_update as $update)
|
||||
{
|
||||
$bucket = [];
|
||||
if (isset($update['change_log']) && StringHelper::check($update['change_log'])
|
||||
&& isset($update['version']) && StringHelper::check($update['version']))
|
||||
{
|
||||
$bucket[] = '# v' . $update['version'] . PHP_EOL . PHP_EOL . $update['change_log'];
|
||||
}
|
||||
}
|
||||
|
||||
if (ArrayHelper::check($bucket))
|
||||
{
|
||||
$item->changelog = implode(PHP_EOL . PHP_EOL, $bucket);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -368,7 +368,7 @@ class Placeholder implements PlaceholderInterface
|
||||
* @return string
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function update(string $data, array &$placeholder, int $action = 1): string
|
||||
public function update(string $data, array $placeholder, int $action = 1): string
|
||||
{
|
||||
// make sure the placeholders is an array
|
||||
if (!ArrayHelper::check($placeholder))
|
||||
|
@@ -162,6 +162,7 @@ class Component implements ServiceProviderInterface
|
||||
$container->get('Model.Adminviews'),
|
||||
$container->get('Model.Siteviews'),
|
||||
$container->get('Model.Customadminviews'),
|
||||
$container->get('Model.Updateserver'),
|
||||
$container->get('Model.Joomlamodules'),
|
||||
$container->get('Model.Joomlaplugins')
|
||||
);
|
||||
|
@@ -52,6 +52,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Model\Whmcs;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Filesfolders;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Modifieddate;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Createdate;
|
||||
use VDM\Joomla\Componentbuilder\Compiler\Model\Updateserver;
|
||||
|
||||
|
||||
/**
|
||||
@@ -173,15 +174,18 @@ class Model implements ServiceProviderInterface
|
||||
$container->alias(Whmcs::class, 'Model.Whmcs')
|
||||
->share('Model.Whmcs', [$this, 'getModelWhmcs'], true);
|
||||
|
||||
$container->alias(Filesfolders::class, 'Model.Filesfolders')
|
||||
->share('Model.Filesfolders', [$this, 'getModelFilesfolders'], true);
|
||||
|
||||
$container->alias(Modifieddate::class, 'Model.Modifieddate')
|
||||
->share('Model.Modifieddate', [$this, 'getModifieddate'], true);
|
||||
|
||||
$container->alias(Createdate::class, 'Model.Createdate')
|
||||
->share('Model.Createdate', [$this, 'getCreatedate'], true);
|
||||
|
||||
$container->alias(Updateserver::class, 'Model.Updateserver')
|
||||
->share('Model.Updateserver', [$this, 'getUpdateserver'], true);
|
||||
|
||||
$container->alias(Filesfolders::class, 'Model.Filesfolders')
|
||||
->share('Model.Filesfolders', [$this, 'getModelFilesfolders'], true);
|
||||
|
||||
$container->alias(ServerLoad::class, 'Model.Server.Load')
|
||||
->share('Model.Server.Load', [$this, 'getServerLoad'], true);
|
||||
}
|
||||
@@ -758,6 +762,21 @@ class Model implements ServiceProviderInterface
|
||||
return new Createdate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the update server Model
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return Updateserver
|
||||
* @since 3.2.0
|
||||
*/
|
||||
public function getUpdateserver(Container $container): Updateserver
|
||||
{
|
||||
return new Updateserver(
|
||||
$container->get('Registry')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the files folders Model
|
||||
*
|
||||
|
Reference in New Issue
Block a user