';
}
$pluginRow .= '';
+
// Checkbox
- if (in_array($pluginName, $installed_plugins)) {
+ if ($isInstalled) {
$pluginRow .= '';
} else {
$pluginRow .= '';
@@ -295,7 +298,7 @@ function handlePlugins()
$pluginRow .= ' '.get_lang('Author').': '.$plugin_info['author'].' ';
$pluginRow .= '';
- if (in_array($pluginName, $installed_plugins)) {
+ if ($isInstalled) {
$pluginRow .= Display::url(
' '.get_lang('Configure'),
'configure_plugin.php?name='.$pluginName,
@@ -338,7 +341,7 @@ function handlePlugins()
$pluginRow .= ' ';
$pluginRow .= ' |
';
- if (in_array($pluginName, $installed_plugins)) {
+ if ($isInstalled) {
$installed .= $pluginRow;
} else {
$notInstalled .= $pluginRow;
diff --git a/main/admin/settings.php b/main/admin/settings.php
index 5e564e81cd..f19a3ed35f 100755
--- a/main/admin/settings.php
+++ b/main/admin/settings.php
@@ -1,4 +1,5 @@
['status', 'installed', 'Plugins'],
- ]
- );
+
+ if (api_is_multiple_url_enabled()) {
+ $urlId = api_get_current_access_url_id();
+ $plugins = api_get_settings_params(
+ [
+ 'variable = ? AND selected_value = ? AND category = ? AND access_url = ? ' => [
+ 'status',
+ 'installed',
+ 'Plugins',
+ $urlId,
+ ],
+ ]
+ );
+ } else {
+ $plugins = api_get_settings_params(
+ [
+ 'variable = ? AND selected_value = ? AND category = ? ' => ['status', 'installed', 'Plugins'],
+ ]
+ );
+ }
if (!empty($plugins)) {
foreach ($plugins as $row) {
@@ -161,6 +176,26 @@ class AppPlugin
return $installedPlugins;
}
+ public function getInstalledPluginsInCurrentUrl()
+ {
+ $installedPlugins = [];
+ $urlId = api_get_current_access_url_id();
+ $plugins = api_get_settings_params(
+ [
+ 'variable = ? AND selected_value = ? AND category = ? AND access_url = ?' => ['status', 'installed', 'Plugins', $urlId],
+ ]
+ );
+
+ if (!empty($plugins)) {
+ foreach ($plugins as $row) {
+ $installedPlugins[$row['subkey']] = true;
+ }
+ $installedPlugins = array_keys($installedPlugins);
+ }
+
+ return $installedPlugins;
+ }
+
/**
* Returns a list of all official (delivered with the Chamilo package)
* plugins. This list is maintained manually and updated with every new