diff --git a/libraries/src/Installer/Adapter/TemplateAdapter.php b/libraries/src/Installer/Adapter/TemplateAdapter.php index 677fb7ee2a2b1..c57f1a79d6c87 100644 --- a/libraries/src/Installer/Adapter/TemplateAdapter.php +++ b/libraries/src/Installer/Adapter/TemplateAdapter.php @@ -181,7 +181,8 @@ protected function finaliseInstall() */ protected function finaliseUninstall(): bool { - $db = $this->parent->getDbo(); + $db = $this->parent->getDbo(); + $query = $db->getQuery(true); $element = $this->extension->element; $clientId = $this->extension->client_id; @@ -189,13 +190,19 @@ protected function finaliseUninstall(): bool // Set menu that assigned to the template back to default template $subQuery = $db->getQuery(true) - ->select('s.id') + ->select($db->quoteName('s.id')) ->from($db->quoteName('#__template_styles', 's')) - ->where($db->quoteName('s.template') . ' = ' . $db->quote(strtolower($this->extension->element))) - ->where($db->quoteName('s.client_id') . ' = ' . (int) $this->extension->client_id); + ->where( + [ + $db->quoteName('s.template') . ' = :element', + $db->quoteName('s.client_id') . ' = :clientId', + ] + ); - $query = $db->getQuery(true) - ->update($db->quoteName('#__menu')) + $query->bind(':element', $element) + ->bind(':clientId', $clientId, ParameterType::INTEGER); + + $query->update($db->quoteName('#__menu')) ->set($db->quoteName('template_style_id') . ' = 0') ->where($db->quoteName('template_style_id') . ' IN (' . (string) $subQuery . ')'); @@ -205,8 +212,12 @@ protected function finaliseUninstall(): bool // Remove the template's styles $query = $db->getQuery(true) ->delete($db->quoteName('#__template_styles')) - ->where($db->quoteName('template') . ' = :template') - ->where($db->quoteName('client_id') . ' = :client_id') + ->where( + [ + $db->quoteName('template') . ' = :template', + $db->quoteName('client_id') . ' = :client_id', + ] + ) ->bind(':template', $element) ->bind(':client_id', $clientId, ParameterType::INTEGER); $db->setQuery($query); @@ -214,8 +225,8 @@ protected function finaliseUninstall(): bool // Remove the schema version $query = $db->getQuery(true) - ->delete('#__schemas') - ->where('extension_id = :extension_id') + ->delete($db->quoteName('#__schemas')) + ->where($db->quoteName('extension_id') . ' = :extension_id') ->bind(':extension_id', $extensionId, ParameterType::INTEGER); $db->setQuery($query); $db->execute(); @@ -302,29 +313,38 @@ protected function parseQueries() if (\in_array($this->route, array('install', 'discover_install'))) { $db = $this->db; + $query = $db->getQuery(true); $lang = Factory::getLanguage(); $debug = $lang->setDebug(false); - $columns = array( + $columns = [ $db->quoteName('template'), $db->quoteName('client_id'), $db->quoteName('home'), $db->quoteName('title'), $db->quoteName('params'), - ); - - $values = array( - $db->quote($this->extension->element), - $this->extension->client_id, - $db->quote(0), - $db->quote(Text::sprintf('JLIB_INSTALLER_DEFAULT_STYLE', Text::_($this->extension->name))), - $db->quote($this->extension->params), + ]; + + $values = $query->bindArray( + [ + $this->extension->element, + $this->extension->client_id, + '0', + Text::sprintf('JLIB_INSTALLER_DEFAULT_STYLE', Text::_($this->extension->name)), + $this->extension->params, + ], + [ + ParameterType::STRING, + ParameterType::INTEGER, + ParameterType::STRING, + ParameterType::STRING, + ParameterType::STRING, + ] ); $lang->setDebug($debug); // Insert record in #__template_styles - $query = $db->getQuery(true); $query->insert($db->quoteName('#__template_styles')) ->columns($columns) ->values(implode(',', $values)); @@ -446,9 +466,13 @@ protected function setupUninstall() $db = $this->parent->getDbo(); $query = $db->getQuery(true) ->select('COUNT(*)') - ->from('#__template_styles') - ->where('home = 1') - ->where('template = :template') + ->from($db->quoteName('#__template_styles')) + ->where( + [ + $db->quoteName('home') . ' = ' . $db->quote('1'), + $db->quoteName('template') . ' = :template', + ] + ) ->bind(':template', $name); $db->setQuery($query);