<?php
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Installer\InstallerScript;
use Joomla\CMS\Language\Text;
/**
* Installation class to perform additional changes during install/uninstall/update
*
* @since 1.0.6v1
*/
class J51_MayaInstallerScript extends InstallerScript
{
/**
* Ensure the core templates are correctly moved to the new mode.
*
* @return void
*
* @since 4.1.0
*/
protected function fixTemplateMode(): void
{
$db = Factory::getContainer()->get('DatabaseDriver');
$template = 'j51_maya';
$clientId = 0;
$query = $db->getQuery(true)
->update($db->quoteName('#__template_styles'))
->set($db->quoteName('inheritable') . ' = 1')
->where($db->quoteName('template') . ' = ' . $db->quote($template))
->where($db->quoteName('client_id') . ' = ' . $clientId);
try
{
$db->setQuery($query)->execute();
}
catch (Exception $e)
{
echo Text::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $e->getCode(), $e->getMessage()) . '<br>';
return;
}
}
public function postflight($type, $installer)
{
$foldersToDelete = array(
'/templates/j51_maya/html/com_contact',
'/templates/j51_maya/html/com_content/article',
'/templates/j51_maya/html/com_media',
'/templates/j51_maya/html/layout/joomla',
'/templates/j51_maya/html/mod_breadcrumbs',
'/templates/j51_maya/html/mod_custom',
'/templates/j51_maya/html/mod_login',
'/templates/j51_maya/html/mod_search'
);
$filesToDelete = array(
'/templates/j51_maya/html/modules.php'
);
foreach ($foldersToDelete as $folder)
{
if ($folderExists = Folder::exists(JPATH_ROOT . $folder))
{
Folder::delete(JPATH_ROOT . $folder);
}
}
foreach ($filesToDelete as $file)
{
if ($fileExists = File::exists(JPATH_ROOT . $file))
{
File::delete(JPATH_ROOT . $file);
}
}
// Ensure templates are moved to the correct mode
$this->fixTemplateMode();
}
}