[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/ -> preupdatecheck.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Administrator
   5   * @subpackage  com_joomlaupdate
   6   *
   7   * @copyright   (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
   8   * @license     GNU General Public License version 2 or later; see LICENSE.txt
   9   */
  10  
  11  defined('_JEXEC') or die;
  12  
  13  use Joomla\CMS\Factory;
  14  use Joomla\CMS\HTML\HTMLHelper;
  15  use Joomla\CMS\Language\Text;
  16  use Joomla\CMS\Router\Route;
  17  use Joomla\CMS\Uri\Uri;
  18  use Joomla\CMS\Version;
  19  use Joomla\Component\Joomlaupdate\Administrator\View\Joomlaupdate\HtmlView;
  20  
  21  /** @var HtmlView $this */
  22  
  23  /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */
  24  $wa = $this->document->getWebAssetManager();
  25  $wa->useScript('core')
  26      ->useScript('com_joomlaupdate.default')
  27      ->useScript('bootstrap.popover')
  28      ->useScript('bootstrap.tab');
  29  
  30  // Text::script doesn't have a sprintf equivalent so work around this
  31  $this->document->addScriptOptions('nonCoreCriticalPlugins', $this->nonCoreCriticalPlugins);
  32  
  33  // Push Joomla! Update client-side error messages
  34  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_CONFIRM_MESSAGE');
  35  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION');
  36  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_WARNING_UNKNOWN');
  37  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_SERVER_ERROR');
  38  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION');
  39  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_LESS_COMPATIBILITY_INFORMATION');
  40  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN');
  41  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_DESC');
  42  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_LIST');
  43  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_CONFIRM_MESSAGE');
  44  Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_HELP');
  45  
  46  // Push Joomla! core Joomla.Request error messages
  47  Text::script('JLIB_JS_AJAX_ERROR_CONNECTION_ABORT');
  48  Text::script('JLIB_JS_AJAX_ERROR_NO_CONTENT');
  49  Text::script('JLIB_JS_AJAX_ERROR_OTHER');
  50  Text::script('JLIB_JS_AJAX_ERROR_PARSE');
  51  Text::script('JLIB_JS_AJAX_ERROR_TIMEOUT');
  52  
  53  $compatibilityTypes = array(
  54      'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_RUNNING_PRE_UPDATE_CHECKS' => array(
  55          'class' => 'info',
  56          'icon'  => 'hourglass fa-spin',
  57          'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_RUNNING_PRE_UPDATE_CHECKS_NOTES',
  58          'group' => 0,
  59      ),
  60      'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_REQUIRING_UPDATES_TO_BE_COMPATIBLE' => array(
  61          'class' => 'danger',
  62          'icon'  => 'times',
  63          'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_REQUIRING_UPDATES_TO_BE_COMPATIBLE_NOTES',
  64          'group' => 2,
  65      ),
  66      'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PRE_UPDATE_CHECKS_FAILED' => array(
  67          'class' => 'warning',
  68          'icon'  => 'exclamation-triangle',
  69          'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PRE_UPDATE_CHECKS_FAILED_NOTES',
  70          'group' => 4,
  71      ),
  72      'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_UPDATE_SERVER_OFFERS_NO_COMPATIBLE_VERSION' => array(
  73          'class' => 'warning',
  74          'icon'  => 'exclamation-triangle',
  75          'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_UPDATE_SERVER_OFFERS_NO_COMPATIBLE_VERSION_NOTES',
  76          'group' => 1,
  77      ),
  78      'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PROBABLY_COMPATIBLE' => array(
  79          'class' => 'success',
  80          'icon'  => 'check',
  81          'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PROBABLY_COMPATIBLE_NOTES',
  82          'group' => 3,
  83      ),
  84  );
  85  
  86  $latestJoomlaVersion = $this->updateInfo['latest'];
  87  $currentJoomlaVersion = isset($this->updateInfo['installed']) ? $this->updateInfo['installed'] : JVERSION;
  88  
  89  $updatePossible = true;
  90  
  91  if (version_compare($this->updateInfo['latest'], Version::MAJOR_VERSION + 1, '>=') && $this->isDefaultBackendTemplate === false) {
  92      Factory::getApplication()->enqueueMessage(
  93          Text::sprintf(
  94              'COM_JOOMLAUPDATE_VIEW_DEFAULT_NON_CORE_BACKEND_TEMPLATE_USED_NOTICE',
  95              ucfirst($this->defaultBackendTemplate)
  96          ),
  97          'info'
  98      );
  99  }
 100  ?>
 101  
 102  <div id="joomlaupdate-wrapper" class="main-card p-3 mt-3" data-joomla-target-version="<?php echo $latestJoomlaVersion; ?>" data-joomla-current-version="<?php echo $currentJoomlaVersion; ?>">
 103  
 104      <h2 class="my-3">
 105          <?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_PREUPDATE_CHECK', '&#x200E;' . $this->updateInfo['latest']); ?>
 106      </h2>
 107      <p>
 108          <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXPLANATION_AND_LINK_TO_DOCS'); ?>
 109      </p>
 110  
 111      <div class="d-flex flex-wrap flex-lg-nowrap align-items-start my-4" id="preupdatecheck">
 112          <div class="nav flex-column text-nowrap nav-pills me-3 mb-4" role="tablist" aria-orientation="vertical">
 113              <button class="nav-link d-flex justify-content-between align-items-center active" id="joomlaupdate-precheck-required-tab" data-bs-toggle="pill" data-bs-target="#joomlaupdate-precheck-required-content" type="button" role="tab" aria-controls="joomlaupdate-precheck-required-content" aria-selected="true">
 114                  <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_REQUIRED_SETTINGS'); ?>
 115                  <?php $labelClass = 'success'; ?>
 116                  <?php foreach ($this->phpOptions as $option) : ?>
 117                      <?php if (!$option->state) : ?>
 118                          <?php $labelClass = 'danger'; ?>
 119                          <?php $updatePossible = false; ?>
 120                          <?php break; ?>
 121                      <?php endif; ?>
 122                  <?php endforeach; ?>
 123                  <span class="fa fa-<?php echo $labelClass == 'danger' ? 'times' : 'check'; ?> fa-fw py-1 bg-white text-<?php echo $labelClass; ?>" aria-hidden="true"></span>
 124              </button>
 125              <button class="nav-link d-flex justify-content-between align-items-center" id="joomlaupdate-precheck-recommended-tab" data-bs-toggle="pill" data-bs-target="#joomlaupdate-precheck-recommended-content" type="button" role="tab" aria-controls="joomlaupdate-precheck-recommended-content" aria-selected="false">
 126                  <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_RECOMMENDED_SETTINGS'); ?>
 127                  <?php $labelClass = 'success'; ?>
 128                  <?php foreach ($this->phpSettings as $setting) : ?>
 129                      <?php if ($setting->state !== $setting->recommended) : ?>
 130                          <?php $labelClass = 'warning'; ?>
 131                          <?php break; ?>
 132                      <?php endif; ?>
 133                  <?php endforeach; ?>
 134                  <span class="fa fa-<?php echo $labelClass == 'warning' ? 'exclamation-triangle' : 'check'; ?> fa-fw py-1 bg-white text-<?php echo $labelClass; ?>" aria-hidden="true"></span>
 135              </button>
 136              <button class="nav-link d-flex justify-content-between align-items-center" id="joomlaupdate-precheck-extensions-tab" data-bs-toggle="pill" data-bs-target="#joomlaupdate-precheck-extensions-content" type="button" role="tab" aria-controls="joomlaupdate-precheck-extensions-content" aria-selected="false">
 137                  <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_EXTENSIONS'); ?>
 138                  <?php $labelClass = 'success'; ?>
 139                  <span class="fa fa-spinner fa-spin fa-fw py-1" aria-hidden="true"></span>
 140              </button>
 141          </div>
 142  
 143          <div class="tab-content w-100">
 144              <div class="tab-pane fade show active" id="joomlaupdate-precheck-required-content" role="tabpanel" aria-labelledby="joomlaupdate-precheck-required-tab">
 145                  <h3>
 146                      <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_REQUIRED_SETTINGS'); ?>
 147                  </h3>
 148                  <div class="table-responsive">
 149                      <table class="table table-striped" id="preupdatecheck">
 150                          <caption class="visually-hidden">
 151                              <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_CHECK_CAPTION'); ?>
 152                          </caption>
 153                          <thead>
 154                              <tr>
 155                                  <th scope="col">
 156                                      <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_HEADING_REQUIREMENT'); ?>
 157                                  </th>
 158                                  <th scope="col">
 159                                      <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_HEADING_CHECKED'); ?>
 160                                  </th>
 161                              </tr>
 162                          </thead>
 163                          <tbody>
 164                          <?php foreach ($this->phpOptions as $option) : ?>
 165                              <tr>
 166                                  <th scope="row">
 167                                      <?php echo $option->label; ?>
 168                                      <?php if ($option->notice) : ?>
 169                                      <div class="small">
 170                                          <?php echo $option->notice; ?>
 171                                      </div>
 172                                      <?php endif; ?>
 173                                  </th>
 174                                  <td>
 175                                      <span class="badge bg-<?php echo $option->state ? 'success' : 'danger'; ?>">
 176                                          <?php echo Text::_($option->state ? 'JYES' : 'JNO'); ?>
 177                                      </span>
 178                                  </td>
 179                              </tr>
 180                          <?php endforeach; ?>
 181                          </tbody>
 182                      </table>
 183                  </div>
 184              </div>
 185              <div class="tab-pane fade show" id="joomlaupdate-precheck-recommended-content" role="tabpanel" aria-labelledby="joomlaupdate-precheck-recommended-tab">
 186                  <h3>
 187                      <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_RECOMMENDED_SETTINGS'); ?>
 188                  </h3>
 189                  <div class="table-responsive">
 190                      <table class="table table-striped" id="preupdatecheckphp">
 191                          <caption>
 192                              <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_RECOMMENDED_SETTINGS_DESC'); ?>
 193                          </caption>
 194                          <thead>
 195                              <tr>
 196                                  <th scope="col">
 197                                      <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_DIRECTIVE'); ?>
 198                                  </th>
 199                                  <th scope="col">
 200                                      <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_RECOMMENDED'); ?>
 201                                  </th>
 202                                  <th scope="col">
 203                                      <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_ACTUAL'); ?>
 204                                  </th>
 205                              </tr>
 206                          </thead>
 207                          <tbody>
 208                              <?php foreach ($this->phpSettings as $setting) : ?>
 209                                  <tr>
 210                                      <th scope="row">
 211                                          <?php echo $setting->label; ?>
 212                                      </th>
 213                                      <td>
 214                                          <?php echo Text::_($setting->recommended ? 'JON' : 'JOFF'); ?>
 215                                      </td>
 216                                      <td>
 217                                          <span class="badge bg-<?php echo ($setting->state === $setting->recommended) ? 'success' : 'warning'; ?>">
 218                                              <?php echo Text::_($setting->state ? 'JON' : 'JOFF'); ?>
 219                                          </span>
 220                                      </td>
 221                                  </tr>
 222                              <?php endforeach; ?>
 223                          </tbody>
 224                      </table>
 225                  </div>
 226              </div>
 227              <div class="tab-pane fade show" id="joomlaupdate-precheck-extensions-content" role="tabpanel" aria-labelledby="joomlaupdate-precheck-extensions-tab">
 228                  <h3>
 229                      <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS'); ?>
 230                  </h3>
 231                  <div id="preupdateCheckWarning">
 232                      <div class="alert alert-warning">
 233                          <h4 class="alert-heading">
 234                              <?php echo Text::_('WARNING'); ?>
 235                          </h4>
 236                          <div class="alert-message">
 237                              <div class="preupdateCheckIncomplete">
 238                                  <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_CHECK_NOT_COMPLETE'); ?>
 239                              </div>
 240                          </div>
 241                      </div>
 242                  </div>
 243  
 244                  <div id="preupdateCheckCompleteProblems" class="hidden">
 245                      <div class="alert alert-warning">
 246                          <h4 class="alert-heading">
 247                              <?php echo Text::_('WARNING'); ?>
 248                          </h4>
 249                          <div class="alert-message">
 250                              <div class="preupdateCheckComplete">
 251                                  <?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_CHECK_COMPLETED_YOU_HAVE_DANGEROUS_PLUGINS'); ?>
 252                              </div>
 253                          </div>
 254                      </div>
 255                  </div>
 256  
 257              <?php if (!empty($this->nonCoreExtensions)) : ?>
 258                  <div class="w-100">
 259                      <?php foreach ($compatibilityTypes as $compatibilityType => $data) : ?>
 260                      <div class="<?php echo $data['group'] > 0 ? 'hidden' : ''; ?> compatibilityTable" id="compatibilityTable<?php echo (int) $data['group']; ?>">
 261                          <h4 class="text-<?php echo $data['class']; ?> align-items-center">
 262                              <span class="fa fa-<?php echo $data['icon']; ?> me-2"></span>
 263                              <?php echo Text::_($compatibilityType); ?>
 264                              <?php if ($data['group'] > 0) : ?>
 265                                  <button type="button" class="btn btn-primary btn-sm ms-3 compatibilitytoggle" data-state="closed">
 266                                      <?php echo Text::_(
 267                                          'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION'
 268                                      ); ?>
 269                                  </button>
 270                              <?php endif; ?>
 271                          </h4>
 272  
 273                          <div class="table-responsive mb-5">
 274                              <table class="table table-striped">
 275                                  <caption>
 276                                  <?php echo Text::_($data['notes']); ?>
 277                                  </caption>
 278                                  <thead class="row-fluid">
 279                                      <tr>
 280                                          <th class="exname" scope="col">
 281                                              <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NAME'); ?>
 282                                          </th>
 283                                          <th class="extype" scope="col">
 284                                              <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_TYPE'); ?>
 285                                          </th>
 286                                          <th class="instver hidden" scope="col">
 287                                              <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_INSTALLED_VERSION'); ?>
 288                                          </th>
 289                                          <th class="currcomp hidden" scope="col">
 290                                              <?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_COMPATIBLE_WITH_JOOMLA_VERSION', isset($this->updateInfo['installed']) ? $this->escape($this->updateInfo['installed']) : JVERSION); ?>
 291                                          </th>
 292                                          <th class="upcomp hidden" scope="col">
 293                                              <?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_COMPATIBLE_WITH_JOOMLA_VERSION', $this->escape($this->updateInfo['latest'])); ?>
 294                                          </th>
 295                                      </tr>
 296                                  </thead>
 297                                  <tbody class="row-fluid">
 298                                  <?php // Only include this row once since the javascript moves the results into the right place ?>
 299                                  <?php if ($data['group'] == 0) : ?>
 300                                      <?php foreach ($this->nonCoreExtensions as $extension) : ?>
 301                                          <tr>
 302                                              <th class="exname" scope="row">
 303                                                  <?php echo $extension->name; ?>
 304                                              </th>
 305                                              <td class="extype">
 306                                                  <?php echo Text::_('COM_INSTALLER_TYPE_' . strtoupper($extension->type)); ?>
 307                                              </td>
 308                                              <td class="instver hidden">
 309                                                  <?php echo $extension->version; ?>
 310                                              </td>
 311                                              <td id="available-version-<?php echo $extension->extension_id; ?>" class="currcomp hidden"></td>
 312                                              <td id="preUpdateCheck_<?php echo $extension->extension_id; ?>"
 313                                                  class="extension-check upcomp hidden"
 314                                                  data-extension-id="<?php echo $extension->extension_id; ?>"
 315                                                  data-extension-current-version="<?php echo $extension->version; ?>"
 316                                              >
 317                                                  <img src="<?php echo Uri::root(true); ?>/media/system/images/ajax-loader.gif">
 318                                              </td>
 319                                          </tr>
 320                                      <?php endforeach; ?>
 321                                  <?php endif; ?>
 322                                  </tbody>
 323                              </table>
 324                          </div>
 325                      </div>
 326                      <?php endforeach; ?>
 327                  </div>
 328              <?php else : ?>
 329                  <div class="alert alert-info">
 330                      <span class="icon-info-circle" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('INFO'); ?></span>
 331                      <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_NONE'); ?>
 332                  </div>
 333              <?php endif; ?>
 334              </div>
 335          </div>
 336      </div>
 337  
 338      <?php if ($updatePossible) : ?>
 339      <form action="<?php echo Route::_('index.php?option=com_joomlaupdate&layout=update'); ?>" method="post" class="d-flex flex-column mb-5">
 340  
 341          <?php if (!$this->noVersionCheck) : ?>
 342          <div id="preupdatecheckbox">
 343              <div class="form-check d-flex justify-content-center mb-3">
 344                  <input type="checkbox" class="form-check-input me-3" id="noncoreplugins" name="noncoreplugins" value="1" required />
 345                  <label class="form-check-label" for="noncoreplugins">
 346                      <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_NON_CORE_PLUGIN_CONFIRMATION'); ?>
 347                  </label>
 348              </div>
 349          </div>
 350          <?php endif; ?>
 351  
 352          <button class="btn btn-lg btn-warning <?php echo $this->noVersionCheck ? '' : 'disabled' ?> submitupdate mx-auto"
 353                  type="submit" <?php echo $this->noVersionCheck ? '' : 'disabled' ?>>
 354              <?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_INSTALLUPDATE'); ?>
 355          </button>
 356      </form>
 357      <?php endif; ?>
 358  
 359      <form action="<?php echo Route::_('index.php?option=com_joomlaupdate&layout=update'); ?>" method="post" name="adminForm" id="adminForm">
 360          <input type="hidden" name="task" value="">
 361          <?php echo HTMLHelper::_('form.token'); ?>
 362      </form>
 363  
 364      <?php if (Factory::getUser()->authorise('core.admin')) : ?>
 365          <div class="text-center">
 366              <a href="<?php echo Route::_('index.php?option=com_joomlaupdate&view=upload'); ?>" class="btn btn-sm btn-outline-secondary">
 367                  <?php echo Text::_('COM_JOOMLAUPDATE_EMPTYSTATE_APPEND'); ?>
 368              </a>
 369          </div>
 370      <?php endif; ?>
 371  </div>


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer