Skip to content

Commit

Permalink
Merge commit '60260bb' into 4.0-dev
Browse files Browse the repository at this point in the history
  • Loading branch information
wilsonge committed May 1, 2021
2 parents 7b9449d + 60260bb commit 964d90f
Show file tree
Hide file tree
Showing 7 changed files with 456 additions and 43 deletions.
Expand Up @@ -1405,6 +1405,78 @@ public function getNonCoreExtensions()
$extension->version
= isset($decode->version) ? $decode->version : Text::_('COM_JOOMLAUPDATE_PREUPDATE_UNKNOWN_EXTENSION_MANIFESTCACHE_VERSION');
unset($extension->manifest_cache);
$extension->manifest_cache = $decode;
}

return $rows;
}

/**
<<<<<<< HEAD:administrator/components/com_joomlaupdate/src/Model/UpdateModel.php
=======
* Checks if extension is non core extension.
*
* @param object $extension The extension to be checked
*
* @return bool true if extension is not a core extension
*
* @since 3.10.0
*/
private static function isNonCoreExtension($extension)
{
return !ExtensionHelper::checkIfCoreExtension($extension->type, $extension->element, $extension->client_id, $extension->folder);
}

/**
* Gets an array containing all installed and enabled plugins, that are not core plugins.
*
* @param array $folderFilter Limit the list of plugins to a specific set of folder values
*
* @return array name,version,updateserver
*
* @since __DEPLOY_VERSION__
*/
public function getNonCorePlugins($folderFilter = array())
{
$db = $this->getDbo();
$query = $db->getQuery(true);

$query->select(
$db->qn('ex.name') . ', ' .
$db->qn('ex.extension_id') . ', ' .
$db->qn('ex.manifest_cache') . ', ' .
$db->qn('ex.type') . ', ' .
$db->qn('ex.folder') . ', ' .
$db->qn('ex.element') . ', ' .
$db->qn('ex.client_id') . ', ' .
$db->qn('ex.package_id')
)->from(
$db->qn('#__extensions', 'ex')
)->where(
$db->qn('ex.type') . ' = ' . $db->quote('plugin')
)->where(
$db->qn('ex.enabled') . ' = 1'
)->whereNotIn(
$db->quoteName('ex.extension_id'), ExtensionHelper::getCoreExtensionIds()
);

if (count($folderFilter) > 0)
{
$folderFilter = array_map(array($db, 'quote'), $folderFilter);

$query->where($db->qn('folder') . ' IN (' . implode(',', $folderFilter) . ')');
}

$db->setQuery($query);
$rows = $db->loadObjectList();

foreach ($rows as $plugin)
{
$decode = json_decode($plugin->manifest_cache);
$this->translateExtensionName($plugin);
$plugin->version = $decode->version ?? Text::_('COM_JOOMLAUPDATE_PREUPDATE_UNKNOWN_EXTENSION_MANIFESTCACHE_VERSION');
unset($plugin->manifest_cache);
$plugin->manifest_cache = $decode;
}

return $rows;
Expand Down
Expand Up @@ -126,9 +126,10 @@ public function display($tpl = null)
$this->methodSelectUpload = JoomlaupdateHelperSelect::getMethods($defaultMethod, 'method', 'upload_method');

// Get results of pre update check evaluations
$this->phpOptions = $model->getPhpOptions();
$this->phpSettings = $model->getPhpSettings();
$this->nonCoreExtensions = $model->getNonCoreExtensions();
$this->phpOptions = $model->getPhpOptions();
$this->phpSettings = $model->getPhpSettings();
$this->nonCoreExtensions = $model->getNonCoreExtensions();
$this->nonCoreCriticalPlugins = $model->getNonCorePlugins(array('system','user','authentication','actionlog','twofactorauth'));

// Set the toolbar information.
ToolbarHelper::title(Text::_('COM_JOOMLAUPDATE_OVERVIEW'), 'joomla install');
Expand Down
Expand Up @@ -20,14 +20,20 @@
/** @var WebAssetManager $wa */
$wa = $this->document->getWebAssetManager();
$wa->useScript('core')
->useScript('com_joomlaupdate.default');
->useScript('com_joomlaupdate.default')
->useScript('bootstrap.popover');

Text::script('COM_INSTALLER_MSG_INSTALL_PLEASE_SELECT_A_PACKAGE', true);
Text::script('JYES');
Text::script('JNO');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_NO_COMPATIBILITY_INFORMATION');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_WARNING_UNKNOWN');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_SERVER_ERROR');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_DESC');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_LIST');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_POTENTIALLY_DANGEROUS_PLUGIN_CONFIRM_MESSAGE');
Text::script('COM_JOOMLAUPDATE_VIEW_DEFAULT_HELP');

$latestJoomlaVersion = $this->updateInfo['latest'];
$currentJoomlaVersion = isset($this->updateInfo['current']) ? $this->updateInfo['current'] : JVERSION;
Expand Down
Expand Up @@ -17,25 +17,35 @@
/** @var HtmlView $this */

// JText::script doesn't have a sprintf equivalent so work around this
Factory::getDocument()->addScriptDeclaration("var COM_JOOMLAUPDATE_VIEW_DEFAULT_SHOW_MORE_EXTENSION_COMPATIBILITY_INFORMATION = '" . JText::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_SHOW_MORE_EXTENSION_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-right large-icon" style="font-size:0.85rem"></span>', true) . "';");
Factory::getDocument()->addScriptDeclaration("var COM_JOOMLAUPDATE_VIEW_DEFAULT_SHOW_LESS_EXTENSION_COMPATIBILITY_INFORMATION = '" . JText::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_SHOW_LESS_EXTENSION_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-up large-icon" style="font-size:0.85rem"></span>', true) . "';");
Factory::getDocument()->addScriptDeclaration("var COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION = '" . Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-right large-icon" style="font-size:0.85rem"></span>', true) . "';");
Factory::getDocument()->addScriptDeclaration("var COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_LESS_COMPATIBILITY_INFORMATION = '" . Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_LESS_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-up large-icon" style="font-size:0.85rem"></span>', true) . "';");
Factory::getDocument()->addScriptDeclaration("var nonCoreCriticalPlugins = '" . json_encode($this->nonCoreCriticalPlugins) . "';");

$compatibilityTypes = array(
'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_RUNNING_PRE_UPDATE_CHECKS' => array(
'class' => 'alert-default',
'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_RUNNING_PRE_UPDATE_CHECKS_NOTES',
'group' => 0,
),
'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PRE_UPDATE_CHECKS_FAILED' => array(
'class' => 'label-important',
'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PRE_UPDATE_CHECKS_FAILED_NOTES',
'group' => 4
),
'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_UPDATE_SERVER_OFFERS_NO_COMPATIBLE_VERSION' => array(
'class' => 'alert-danger',
'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_UPDATE_SERVER_OFFERS_NO_COMPATIBLE_VERSION_NOTES',
'group' => 1,
),
'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_REQUIRING_UPDATES_TO_BE_COMPATIBLE' => array(
'class' => 'alert-warning',
'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_REQUIRING_UPDATES_TO_BE_COMPATIBLE_NOTES',
'group' => 2,
),
'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PROBABLY_COMPATIBLE' => array(
'class' => 'alert-success',
'notes' => 'COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_PROBABLY_COMPATIBLE_NOTES',
'group' => 3,
),
);
?>
Expand All @@ -50,9 +60,25 @@
<div class="row">
<div class="col-md-6">
<fieldset class="options-form">
<legend>
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_REQUIRED_SETTINGS'); ?>
<?php
$labelClass = 'success';
foreach ($this->phpOptions as $option) :
if (!$option->state)
{
$labelClass = 'important';
break;
}
endforeach;
?>
<legend class="label label-<?php echo $labelClass;?>">
<h3>
<?php
echo $labelClass === 'important' ? Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_REQUIRED_SETTINGS_WARNING') : JText::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_REQUIRED_SETTINGS_PASSED');
?>
<div class="settingstoggle" data-state="closed"><?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-right large-icon" style="font-size:0.85rem"></span>'); ?></div>
</h3>
</legend>
<div class="settingsInfo hidden">
<table class="table" id="preupdatecheck">
<caption class="visually-hidden">
<?php echo Text::_('COM_JOOMLAUPDATE_PREUPDATE_CHECK_CAPTION'); ?>
Expand Down Expand Up @@ -85,14 +111,32 @@
<?php endforeach; ?>
</tbody>
</table>
</div>
</fieldset>
</div>

<div class="col-md-6">
<fieldset class="options-form">
<legend>
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_RECOMMENDED_SETTINGS'); ?>
<?php
$labelClass = 'success';
foreach ($this->phpSettings as $setting) :
if ($setting->state !== $setting->recommended)
{
$labelClass = 'warning';
break;
}
endforeach;
?>

<legend class="label label-<?php echo $labelClass;?>">
<h3>
<?php
echo $labelClass === 'warning' ? Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_RECOMMENDED_SETTINGS_WARNING') : Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_RECOMMENDED_SETTINGS_PASSED');
?>
<div class="settingstoggle" data-state="closed"><?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-right large-icon" style="font-size:0.85rem"></span>'); ?></div>
</h3>
</legend>
<div class="settingsInfo hidden">
<table class="table" id="preupdatecheckphp">
<caption>
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_RECOMMENDED_SETTINGS_DESC'); ?>
Expand Down Expand Up @@ -128,6 +172,7 @@
<?php endforeach; ?>
</tbody>
</table>
</div>
</fieldset>
</div>
</div>
Expand All @@ -137,15 +182,15 @@
<h3>
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS'); ?>
</h3>
<?php $compatibilityTypeCount = 0; ?>
<?php foreach ($compatibilityTypes as $compatibilityType => $compatibilityData) : ?>
<?php $compatibilityDisplayClass = $compatibilityData['class']; ?>
<?php $compatibilityDisplayNotes = $compatibilityData['notes']; ?>
<fieldset id="compatibilitytype<?php echo $compatibilityTypeCount;?>" class="col-md-12 compatibilitytypes">
<?php $compatibilityTypeGroup = $compatibilityData['group']; ?>
<fieldset id="compatibilitytype<?php echo $compatibilityTypeGroup;?>" class="col-md-12 compatibilitytypes">
<legend class="alert <?php echo $compatibilityDisplayClass;?>">
<h3>
<?php if ($compatibilityType !== "COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_RUNNING_PRE_UPDATE_CHECKS") : ?>
<div class="compatibilitytoggle" data-state="closed"><?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_SHOW_MORE_EXTENSION_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-right large-icon" style="font-size:0.85rem"></span>'); ?></div>
<div class="compatibilitytoggle" data-state="closed"><?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSIONS_SHOW_MORE_COMPATIBILITY_INFORMATION', '<span class="icon-chevron-right large-icon" style="font-size:0.85rem"></span>'); ?></div>
<?php endif; ?>
<?php echo Text::_($compatibilityType); ?>
</h3>
Expand All @@ -162,14 +207,14 @@
<th class="extype col-md-4">
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_TYPE'); ?>
</th>
<th class="instver hidden">
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_INSTALLED_VERSION'); ?>
</th>
<th class="upcomp hidden">
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_UPDATE_COMPATIBLE'); ?>
<?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_COMPATIBLE_WITH_JOOMLA_VERSION', isset($this->updateInfo['current']) ? $this->updateInfo['current'] : JVERSION); ?>
</th>
<th class="currcomp hidden">
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_CURRENTLY_COMPATIBLE'); ?>
</th>
<th class="instver hidden">
<?php echo Text::_('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_INSTALLED_VERSION'); ?>
<?php echo Text::sprintf('COM_JOOMLAUPDATE_VIEW_DEFAULT_EXTENSION_COMPATIBLE_WITH_JOOMLA_VERSION', $this->updateInfo['latest']); ?>
</th>
</tr>
</thead>
Expand All @@ -184,6 +229,10 @@
<td class="extype col-md-4">
<?php echo Text::_('COM_INSTALLER_TYPE_' . strtoupper($extension->type)); ?>
</td>
<td class="instver hidden">
<?php echo $extension->version; ?>
</td>
<td id="available-version-<?php echo $extension->extension_id; ?>" class="currcomp hidden" />
<td
class="extension-check upcomp hidden"
data-extension-id="<?php echo $extension->extension_id; ?>"
Expand All @@ -192,17 +241,12 @@ class="extension-check upcomp hidden"
<img src="<?php echo Uri::root(true); ?>/media/system/images/ajax-loader.gif">

</td>
<td id="available-version-<?php echo $extension->extension_id; ?>" class="currcomp hidden" />
<td class="instver hidden">
<?php echo $extension->version; ?>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
</fieldset>
<?php $compatibilityTypeCount ++;?>
<?php endforeach; ?>
</div>
<?php else: ?>
Expand Down

0 comments on commit 964d90f

Please sign in to comment.