Skip to content

Commit

Permalink
cleanup folders in install script
Browse files Browse the repository at this point in the history
  • Loading branch information
Ruud68 committed Feb 29, 2024
1 parent b6628c4 commit 15355a7
Showing 1 changed file with 47 additions and 31 deletions.
78 changes: 47 additions & 31 deletions src/script.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
use Joomla\CMS\Cache\CacheControllerFactoryInterface;
use Joomla\CMS\Date\Date;
use Joomla\CMS\Factory;
use Joomla\Filesystem\Folder;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Installer\Adapter\ComponentAdapter;
use Joomla\CMS\Installer\InstallerScript;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Table\Extension;
use Kunena\Forum\Libraries\Forum\KunenaForum;
use Kunena\Forum\Libraries\Install\KunenaInstallerException;
use Joomla\Filesystem\File;
use Joomla\CMS\Filesystem\File;
use Joomla\Database\DatabaseInterface;

/**
Expand Down Expand Up @@ -143,6 +143,38 @@ public function preflight($type, $parent)
File::copy(JPATH_SITE . '/components/com_kunena/template/aurelia/assets/scss/custom.scss', JPATH_SITE . '/tmp/custom.scss');
}

$installedManifest = $this->getItemArray('manifest_cache', '#__extensions', 'element', $parent->getName());
$installedRelease = isset($installedManifest['version']) ? $installedManifest['version'] : false;

if (version_compare($installedRelease, '6.3.0', '<') && version_compare($installedRelease, '6.0.0', '>=')) {
// Set and delete the following folders
$deleteFolders = [];
// Administrator folders
$deleteFolders[] = '/administrator/components/com_kunena/api';
$deleteFolders[] = '/administrator/components/com_kunena/forms';
$deleteFolders[] = '/administrator/components/com_kunena/install';
$deleteFolders[] = '/administrator/components/com_kunena/language';
$deleteFolders[] = '/administrator/components/com_kunena/media';
$deleteFolders[] = '/administrator/components/com_kunena/services';
$deleteFolders[] = '/administrator/components/com_kunena/sql';
$deleteFolders[] = '/administrator/components/com_kunena/src';
$deleteFolders[] = '/administrator/components/com_kunena/tmpl';
// Site folders
$deleteFolders[] = '/components/com_kunena/language';
$deleteFolders[] = '/components/com_kunena/src';
$deleteFolders[] = '/components/com_kunena/template/aurelia';
$deleteFolders[] = '/components/com_kunena/template/system';
$deleteFolders[] = '/components/com_kunena/tmpl';
// Library folders
$deleteFolders[] = '/libraries/kunena/Src';

foreach ($deleteFolders as $folder) {
if (Folder::exists(JPATH_ROOT . $folder) && !Folder::delete(JPATH_ROOT . $folder)) {
echo Text::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $folder) . '<br>';
}
}
}

return parent::preflight($type, $parent);
}

Expand Down Expand Up @@ -219,10 +251,10 @@ protected function checkVersion($name, $version)
*
* @since Kunena 6.2
*/
protected function checkDbVersion( $version )
protected function checkDbVersion($version)
{
if ( preg_match( '/(?:.*-)?(\d+\.\d+\.\d+)-MariaDB.*/', $version, $matches ) ) {
return $this->checkVersion( 'mariaDB', $matches[1] );
if (preg_match('/(?:.*-)?(\d+\.\d+\.\d+)-MariaDB.*/', $version, $matches)) {
return $this->checkVersion('mariaDB', $matches[1]);
}

return $this->checkVersion('MySQL', $version);
Expand Down Expand Up @@ -520,22 +552,6 @@ public function postflight($type, $parent)
File::copy(JPATH_SITE . '/tmp/custom.scss', JPATH_SITE . '/components/com_kunena/template/aurelia/assets/scss/custom.scss');
}

// Delete the language folders except en-GB because they are present in /administrator/omponents/com_kunena/language
$languageFoldersToClean = Folder::folders(JPATH_ADMINISTRATOR . '/components/com_kunena/language');
foreach($languageFoldersToClean as $folder) {
if($folder != 'en-GB'){
Folder::delete(JPATH_ADMINISTRATOR . '/components/com_kunena/language/' . $folder);
}
}

// Delete the language folders except en-GB because they are present in /components/com_kunena/language
$languageFoldersToClean = Folder::folders(JPATH_SITE . '/components/com_kunena/language');
foreach($languageFoldersToClean as $folder) {
if($folder != 'en-GB'){
Folder::delete(JPATH_SITE . '/components/com_kunena/language/' . $folder);
}
}

return true;
}

Expand Down Expand Up @@ -674,22 +690,22 @@ public function install($parent)
$query->insert($db->quoteName('#__mail_templates'))
->columns(
[
$db->quoteName('template_id'),
$db->quoteName('extension'),
$db->quoteName('language'),
$db->quoteName('subject'),
$db->quoteName('body'),
$db->quoteName('htmlbody'),
$db->quoteName('attachments'),
$db->quoteName('params'),
$db->quoteName('template_id'),
$db->quoteName('extension'),
$db->quoteName('language'),
$db->quoteName('subject'),
$db->quoteName('body'),
$db->quoteName('htmlbody'),
$db->quoteName('attachments'),
$db->quoteName('params'),
]
)
->values(implode(', ', $values))
->values(implode(', ', $values2))
->values(implode(', ', $values3));
$db->setQuery($query);
$db->setQuery($query);

$db->execute();
$db->execute();
}

// Notice $parent->getParent() returns JInstaller object
Expand Down

0 comments on commit 15355a7

Please sign in to comment.