[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
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', '‎' . $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>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |