Speed performance: Use static to avoid querying the database.

pull/3023/head
Julio Montoya 6 years ago
parent e0a3f60e6a
commit c6e0fccdf3
  1. 2
      main/admin/configure_plugin.php
  2. 6
      main/admin/settings.lib.php
  3. 2
      main/document/document.php
  4. 53
      main/inc/lib/plugin.lib.php
  5. 2
      main/inc/lib/template.lib.php
  6. 2
      plugin/jcapture/plugin_applet.php
  7. 2
      plugin/jcapture/upload.php
  8. 2
      plugin/redirection/RedirectionPlugin.php

@ -15,7 +15,7 @@ api_protect_admin_script();
$pluginName = $_GET['name'];
$appPlugin = new AppPlugin();
$installedPlugins = $appPlugin->get_installed_plugins();
$installedPlugins = $appPlugin->getInstalledPlugins();
$pluginInfo = $appPlugin->getPluginInfo($pluginName, true);
if (!in_array($pluginName, $installedPlugins) || empty($pluginInfo)) {

@ -41,7 +41,7 @@ function handleRegions()
}
$plugin_obj = new AppPlugin();
$installed_plugins = $plugin_obj->get_installed_plugins();
$installed_plugins = $plugin_obj->getInstalledPlugins();
echo '<form name="plugins" method="post" action="'.api_get_self().'?category='.Security::remove_XSS($_GET['category']).'">';
echo '<table class="data_table">';
@ -146,7 +146,7 @@ function handlePlugins()
}
$all_plugins = $plugin_obj->read_plugins_from_path();
$installed_plugins = $plugin_obj->get_installed_plugins();
$installed_plugins = $plugin_obj->getInstalledPlugins();
// Plugins NOT installed
echo Display::page_subheader(get_lang('Plugins'));
@ -646,7 +646,7 @@ function storeRegions()
$plugin_obj = new AppPlugin();
// Get a list of all current 'Plugins' settings
$installed_plugins = $plugin_obj->get_installed_plugins();
$installed_plugins = $plugin_obj->getInstalledPlugins();
$shortlist_installed = [];
if (!empty($installed_plugins)) {
foreach ($installed_plugins as $plugin) {

@ -93,7 +93,7 @@ Session::erase('paint_dir');
Session::erase('temp_audio_nanogong');
$plugin = new AppPlugin();
$pluginList = $plugin->get_installed_plugins();
$pluginList = $plugin->getInstalledPlugins();
$capturePluginInstalled = in_array('jcapture', $pluginList);
if ($capturePluginInstalled) {

@ -61,30 +61,13 @@ class AppPlugin
return $plugins;
}
/**
* @return array
*/
public function get_installed_plugins_by_region()
{
$plugins = [];
/* We retrieve all the active plugins. */
$result = api_get_settings('Plugins');
if (!empty($result)) {
foreach ($result as $row) {
$plugins[$row['variable']][] = $row['selected_value'];
}
}
return $plugins;
}
/**
* @return array
*/
public function getInstalledPluginListName()
{
if (empty($this->installedPluginListName)) {
$this->installedPluginListName = $this->get_installed_plugins();
$this->installedPluginListName = $this->getInstalledPlugins();
}
return $this->installedPluginListName;
@ -118,22 +101,34 @@ class AppPlugin
}
/**
* @param bool $fromDatabase
*
* @return array
*/
public function get_installed_plugins()
public function getInstalledPlugins($fromDatabase = true)
{
$installedPlugins = [];
$plugins = api_get_settings_params(
[
"variable = ? AND selected_value = ? AND category = ? " => ['status', 'installed', 'Plugins'],
]
);
static $installedPlugins = null;
if ($fromDatabase === false) {
if (is_array($installedPlugins)) {
return $installedPlugins;
}
}
if (!empty($plugins)) {
foreach ($plugins as $row) {
$installedPlugins[$row['subkey']] = true;
if ($fromDatabase || $installedPlugins === null) {
$installedPlugins = [];
$plugins = api_get_settings_params(
[
'variable = ? AND selected_value = ? AND category = ? ' => ['status', 'installed', 'Plugins'],
]
);
if (!empty($plugins)) {
foreach ($plugins as $row) {
$installedPlugins[$row['subkey']] = true;
}
$installedPlugins = array_keys($installedPlugins);
}
$installedPlugins = array_keys($installedPlugins);
}
return $installedPlugins;

@ -902,7 +902,7 @@ class Template
$this->force_plugin_load
);
$pluginList = $this->plugin->get_installed_plugins();
$pluginList = $this->plugin->getInstalledPlugins(false);
foreach ($pluginList as $plugin_name) {
// The plugin_info variable is available inside the plugin index
$pluginInfo = $this->plugin->getPluginInfo($plugin_name);

@ -4,7 +4,7 @@
require_once __DIR__.'/../../main/inc/global.inc.php';
$plugin = new AppPlugin();
$pluginList = $plugin->get_installed_plugins();
$pluginList = $plugin->getInstalledPlugins();
$capturePluginInstalled = in_array('jcapture', $pluginList);
if (!$capturePluginInstalled) {
exit;

@ -6,7 +6,7 @@ require_once __DIR__.'/../../main/inc/global.inc.php';
api_protect_course_script();
$plugin = new AppPlugin();
$pluginList = $plugin->get_installed_plugins();
$pluginList = $plugin->getInstalledPlugins();
$capturePluginInstalled = in_array('jcapture', $pluginList);
if (!$capturePluginInstalled) {
exit;

@ -162,7 +162,7 @@ class RedirectionPlugin extends Plugin
{
// Check redirection plugin
$plugin = new AppPlugin();
$pluginList = $plugin->get_installed_plugins();
$pluginList = $plugin->getInstalledPlugins();
$redirectionInstalled = in_array('redirection', $pluginList);
if ($redirectionInstalled) {
$pluginInfo = $plugin->getPluginInfo('redirection');

Loading…
Cancel
Save