/
githubmirror
/
joomla-cms
Обзор
Документация
Войти
/
githubmirror
/
joomla-cms
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
5.4-dev
installation/tmpl/remove/default.php
324 строки
15 KB
Benjamin Trenkle
[5.4] Fix issues in language installer (#46403)
08 ноя 2025, 16:31
Не верифицирован
08 ноя 2025, 16:31
7708e3c
Код
Авторство
О чём код?
<?php /** * @package Joomla.Installation * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; HTMLHelper::_('behavior.formvalidator'); $direction = Factory::getLanguage()->isRtl() ? 'left' : 'right'; /** @var \Joomla\CMS\Installation\View\Remove\HtmlView $this */ ?> <div id="installer-view" data-page-name="remove"> <fieldset id="installCongrat" class="j-install-step active"> <legend class="j-install-step-header"> <span class="icon-trophy" aria-hidden="true"></span> <?php echo Text::_('INSTL_COMPLETE_CONGRAT'); ?> </legend> <div id="customInstallation" class="j-install-step-form"> <h2><?php echo Text::_('INSTL_COMPLETE_TITLE'); ?></h2> <div class="mt-4 mb-3"> <button id="installAddFeatures" class="btn btn-primary w-100"> <?php echo Text::_('INSTL_COMPLETE_ADD_EXTRA_LANGUAGE'); ?> <span class="icon-chevron-<?php echo $direction; ?>" aria-hidden="true"></span> </button> </div> </div> <?php if (count($this->installed_languages->administrator) > 1) : ?> <div id="defaultLanguage" class="j-install-step-form flex-column" > <?php else : ?> <div id="defaultLanguage" class="j-install-step-form flex-column d-none" > <?php endif; ?> <table class="table table-sm"> <caption> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_DESC'); ?> </caption> <thead> <tr> <th scope="col"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG'); ?> </th> </tr> </thead> <tbody> <?php foreach ($this->installed_languages->administrator as $i => $lang) : ?> <tr> <td> <input class="form-check-input" id="admin-language-cb<?php echo $i; ?>" type="radio" name="administratorlang" value="<?php echo $lang->language; ?>" <?php if ($lang->published) { echo 'checked="checked"'; } ?> /> </td> <th scope="row"> <label for="admin-language-cb<?php echo $i; ?>"> <?php echo $lang->name; ?> </label> </th> <td> <?php echo $lang->language; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <table class="table table-sm"> <caption> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_DESC_FRONTEND'); ?> </caption> <thead> <tr> <th scope="col"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG'); ?> </th> </tr> </thead> <tbody> <?php foreach ($this->installed_languages->frontend as $i => $lang) : ?> <tr> <td> <input class="form-check-input" id="site-language-cb<?php echo $i; ?>" type="radio" name="frontendlang" value="<?php echo $lang->language; ?>" <?php if ($lang->published) { echo 'checked="checked"'; } ?> /> </td> <th scope="row"> <label for="site-language-cb<?php echo $i; ?>"> <?php echo $lang->name; ?> </label> </th> <td> <?php echo $lang->language; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <button id="defaultLanguagesButton" class="btn btn-primary mt-2 mb-3 w-100"> <?php echo Text::_('INSTL_DEFAULTLANGUAGE_SET_DEFAULT_LANGUAGE'); ?> <span class="icon-chevron-<?php echo $direction; ?>" aria-hidden="true"></span> </button> <?php echo HTMLHelper::_('form.token'); ?> </div> </fieldset> <?php if (empty($this->autoUpdatesDisabled)) : ?> <fieldset id="automatedUpdates" class="j-install-step active"> <legend class="j-install-step-header"> <?php echo Text::_('INSTL_AUTOMATED_UPDATES'); ?> </legend> <div class="j-install-step-form flex-column"> <p><?php echo Text::_('INSTL_AUTOMATED_UPDATES_DESC'); ?></p> <button id="automatedUpdatesDisableButton" class="btn btn-danger mt-2 mb-3 w-100"> <?php echo Text::_('INSTL_AUTOMATED_UPDATES_DISABLE'); ?> <span class="icon-chevron-<?php echo $direction; ?>" aria-hidden="true"></span> </button> </div> </fieldset> <?php endif; ?> <div id="installRecommended" class="j-install-step active"> <div class="j-install-step-form"> <?php $displayTable = false; ?> <?php foreach ($this->phpsettings as $setting) : ?> <?php if ($setting->state !== $setting->recommended) : ?> <?php $displayTable = true; ?> <?php endif; ?> <?php endforeach; ?> <?php if ($displayTable) : ?> <table class="table table-sm"> <caption> <?php echo Text::_('INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC'); ?> </caption> <thead> <tr> <th scope="col"> <?php echo Text::_('INSTL_PRECHECK_DIRECTIVE'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_PRECHECK_RECOMMENDED'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_PRECHECK_ACTUAL'); ?> </th> </tr> </thead> <tbody> <?php foreach ($this->phpsettings as $setting) : ?> <?php if ($setting->state !== $setting->recommended) : ?> <tr> <th scope="row"> <?php echo $setting->label; ?> </th> <td> <span class="badge bg-success disabled"> <?php echo Text::_($setting->recommended ? 'JON' : 'JOFF'); ?> </span> </td> <td> <span class="badge bg-<?php echo ($setting->state === $setting->recommended) ? 'success' : 'warning'; ?>"> <?php echo Text::_($setting->state ? 'JON' : 'JOFF'); ?> </span> </td> </tr> <?php endif; ?> <?php endforeach; ?> </tbody> </table> <?php endif; ?> <?php if ($this->development) : ?> <div id="removeInstallationTab" class="flex-column"> <p class="alert alert-info text-center"><?php echo Text::_('INSTL_SITE_DEVMODE_LABEL'); ?></p> <button id="removeInstallationFolder" class="btn btn-danger w-100"><?php echo Text::sprintf('INSTL_COMPLETE_REMOVE_FOLDER', 'installation'); ?></button> </div> <?php endif; ?> <?php echo HTMLHelper::_('form.token'); ?> <div class="form-group j-install-last-step d-grid gap-2 mt-4 mb-3"> <button type="button" class="complete-installation btn btn-primary w-100" data-href="<?php echo Uri::root(); ?>" <?php if ($this->development) : ?>data-development<?php endif; ?>> <span class="icon-eye" aria-hidden="true"></span> <?php echo Text::_('INSTL_COMPLETE_SITE_BTN'); ?> </button> <button type="button" class="complete-installation btn btn-primary w-100" data-href="<?php echo Uri::root(); ?>administrator/" <?php if ($this->development) : ?>data-development<?php endif; ?>> <span class="icon-lock" aria-hidden="true"></span> <?php echo Text::_('INSTL_COMPLETE_ADMIN_BTN'); ?> </button> </div> </div> </div> <fieldset id="installLanguages" class="j-install-step"> <legend class="j-install-step-header"> <span class="icon-comment-dots" aria-hidden="true"></span> <?php echo Text::_('INSTL_LANGUAGES'); ?> </legend> <div class="j-install-step-form"> <?php if (!$this->items) : ?> <p><?php echo Text::_('INSTL_LANGUAGES_WARNING_NO_INTERNET'); ?></p> <p> <a href="#" class="btn btn-primary w-100" onclick="return Joomla.goToPage('remove');"> <span class="icon-arrow-left icon-white" aria-hidden="true"></span> <?php echo Text::_('INSTL_LANGUAGES_WARNING_BACK_BUTTON'); ?> </a> </p> <p><?php echo Text::_('INSTL_LANGUAGES_WARNING_NO_INTERNET2'); ?></p> <?php else : ?> <form action="index.php" method="post" id="languagesForm" class="form-validate"> <div id="wait_installing" class="hidden"> <?php echo Text::_('INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT'); ?><br> <div id="wait_installing_spinner" class="spinner spinner-img hidden"></div> </div> <table class="table table-sm"> <caption id="install_languages_desc"><?php echo Text::_('INSTL_LANGUAGES_DESC'); ?></caption> <thead> <tr> <th scope="col"> <span class="visually-hidden"><?php echo Text::_('INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT'); ?></span> </th> <th scope="col"> <?php echo Text::_('INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE'); ?> </th> <th scope="col"> <?php echo Text::_('INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG'); ?> </th> <th scope="col" class="text-center"> <?php echo Text::_('INSTL_LANGUAGES_COLUMN_HEADER_VERSION'); ?> </th> </tr> </thead> <tbody> <?php $version = new \Joomla\CMS\Version(); ?> <?php $currentShortVersion = preg_replace('#^([0-9\.]+)(|.*)$#', '$1', $version->getShortVersion()); ?> <?php foreach ($this->items as $i => $language) : ?> <?php // Get language code and language image. ?> <?php preg_match('#^pkg_([a-z]{2,3}-[A-Z]{2})$#', $language->element, $element); ?> <?php $language->code = $element[1]; ?> <tr> <td> <input class="form-check-input" type="checkbox" id="cb<?php echo $i; ?>" name="cid[]" value="<?php echo $language->update_id; ?>"> </td> <th scope="row"> <label for="cb<?php echo $i; ?>"><?php echo $language->name; ?></label> </th> <td> <?php echo $language->code; ?> </td> <td class="text-center"> <?php // Display a Note if language pack version is not equal to Joomla version ?> <?php if (substr($language->version, 0, 3) != $version::MAJOR_VERSION . '.' . $version::MINOR_VERSION || substr($language->version, 0, 5) != $currentShortVersion) : ?> <span class="badge bg-warning hasTooltip" title="<?php echo Text::_('JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM'); ?>"><?php echo $language->version; ?></span> <?php else : ?> <span class="badge bg-success"><?php echo $language->version; ?></span> <?php endif; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php echo HTMLHelper::_('form.token'); ?> <?php endif; ?> <div class="form-group d-grid gap-2 mt-4 mb-3"> <button id="installLanguagesButton" class="btn btn-primary w-100"> <?php echo Text::_('INSTL_LANGUAGES_SELECTED'); ?> </button> <button id="skipLanguages" class="btn btn-secondary w-100"> <?php echo Text::_('JSKIP'); ?> </button> </div> </form> </div> </fieldset> <fieldset id="installFinal" class="j-install-step"> <legend class="j-install-step-header"> <span class="icon-joomla" aria-hidden="true"></span> <?php echo Text::_('INSTL_COMPLETE_FINAL'); ?> </legend> <div class="j-install-step-form"> <p><?php echo Text::_('INSTL_COMPLETE_FINAL_DESC'); ?></p> </div> </fieldset> </div>