Файловый менеджер - Редактировать - /var/www/html/installer.script.php
Ðазад
<?php use Joomla\CMS\Factory; use Joomla\CMS\Filesystem\Folder; use Joomla\CMS\Installer\Installer; /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2021 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined ('_JEXEC') or die(); /** * Installer class of the Helix Ultimate Template * * @since 1.0.0 */ class plgSystemTmp_helixultInstallerScript { /** * Post Flight hook * * @param string $type * @param object $parent * * @return void * @since 1.0.0 */ public function postflight($type, $parent) { $src = $parent->getParent()->getPath('source'); $manifest = $parent->getParent()->manifest; $plugins = $manifest->xpath('plugins/plugin'); foreach ($plugins as $key => $plugin) { $name = (string) $plugin->attributes()->plugin; $group = (string) $plugin->attributes()->group; $installer = new Installer; $path = $src.'/plugins/'.$group; if (Folder::exists($src.'/plugins/'.$group.'/'.$name)) { $path = $src.'/plugins/'.$group.'/'.$name; } $plugin_info = $this->getPluginInfoByName($name, $group); if($plugin_info) { $manifest_cache = json_decode($plugin_info->manifest_cache); $cache_version = $manifest_cache->version; $plg_manifest = $installer->parseXMLInstallFile($path.'/'.$name.'.xml'); $version = $plg_manifest['version']; if (version_compare($version, $cache_version, '<')) { continue; } // Check if directory "/overrides/com_finder/search" exists then deletes it if (JVERSION >= 4) { if ($version == '2.0.11') { $plg_path = JPATH_PLUGINS; $dir = $plg_path.'/'.$group.'/'.$name.'/overrides/com_finder/search'; if (Folder::exists($dir)) { Folder::delete($dir); } } } } $result = $installer->install($path); if ($result) { $this->activeInstalledPlugin($name, $group); } } $template_path = $src . '/template'; $plugin_path = $src . '/plugins/system'; if (Folder::exists( $template_path )) { $installer = new Installer; $result = $installer->install($template_path); } $templates = $manifest->xpath('template'); foreach($templates as $key => $template) { $tmpl_name = (string) $template->attributes()->name; $tmpl_info = $this->getTemplateInfoByName($tmpl_name); $params = json_decode($tmpl_info->params); $params_array = (array) $params; if(empty($params_array)) { $options_default = file_get_contents($template_path .'/options.json'); $db = Factory::getDBO(); $query = $db->getQuery(true); $fields = array( $db->quoteName('params') . ' = ' . $db->quote($options_default) ); $conditions = array( $db->quoteName('client_id') . ' = 0', $db->quoteName('template') . ' = ' . $db->quote($tmpl_name) ); $query->update($db->quoteName('#__template_styles'))->set($fields)->where($conditions); $db->setQuery($query); $db->execute(); } } $conf = Factory::getConfig(); $conf->set('debug', false); $parent->getParent()->abort(); } /** * Get template information by name * * @param string $name Template name * * @return object * @since 1.0.0 */ private function getTemplateInfoByName($name) { $db = Factory::getDbo(); $query = $db->getQuery(true); $query->select('*'); $query->from($db->quoteName('#__template_styles')); $query->where($db->quoteName('client_id') . ' = 0'); $query->where($db->quoteName('template') . ' = ' . $db->quote( $name )); $db->setQuery($query); return $db->loadObject(); } /** * Activate the installed plugin * * @param string $name Plugin name * @param string $group Plugin group * * @return void * @since 1.0.0 */ private function activeInstalledPlugin($name, $group) { $db = Factory::getDBO(); $query = $db->getQuery(true); $fields = array( $db->quoteName('enabled') . ' = 1' ); $conditions = array( $db->quoteName('type') . ' = ' . $db->quote('plugin'), $db->quoteName('element') . ' = ' . $db->quote($name), $db->quoteName('folder') . ' = ' . $db->quote($group) ); $query->update($db->quoteName('#__extensions'))->set($fields)->where($conditions); $db->setQuery($query); $db->execute(); } /** * Get plugins information by name * * @param string $name Plugin name * @param string $group Plugin group * * @return object * @since 1.0.0 */ private function getPluginInfoByName($name, $group) { $db = Factory::getDbo(); $query = $db->getQuery(true); $query->select('*'); $query->from($db->quoteName('#__extensions')); $query->where($db->quoteName('type') . ' = ' . $db->quote('plugin')); $query->where($db->quoteName('element') . ' = ' . $db->quote( $name )); $query->where($db->quoteName('folder') . ' = ' . $db->quote( $group )); $db->setQuery($query); return $db->loadObject(); } /** * Abort installation * * @param string $msg Abortion message * @param string $type * * @return void * @since 1.0.0 */ public function abort($msg = null, $type = null){ if ($msg) { //JError::raiseWarning(100, $msg); Factory::getApplication()->enqueueMessage($msg, 100); } foreach ($this->packages as $package) { $package['installer']->abort(null, $type); } } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка