From d6c7d15028d2fa4f057fbeb9b8b7bb56989bb45e Mon Sep 17 00:00:00 2001 From: Benjamin Sonntag Date: Sun, 24 Jun 2018 17:24:36 +0200 Subject: [PATCH] [enh] simplify piwik class to do less things when unused --- bureau/class/m_piwik.php | 50 +++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/bureau/class/m_piwik.php b/bureau/class/m_piwik.php index 7b08002e..c9bd5baf 100644 --- a/bureau/class/m_piwik.php +++ b/bureau/class/m_piwik.php @@ -35,7 +35,6 @@ class m_piwik { $obj = array( 'title' => _("Piwik statistics"), - 'ico' => 'images/piwik.png', 'link' => 'toggle', 'pos' => 115, 'links' => array( @@ -54,8 +53,8 @@ class m_piwik { function m_piwik() { $this->piwik_server_uri=variable_get('piwik_server_uri','','Remote Piwik server uri'); $this->piwik_admin_token=variable_get('piwik_admin_token','','Remote Piwik super-admin token'); - $this->alternc_users = $this->get_alternc_users(); - $this->alternc_sites = $this->get_alternc_sites(); + $this->alternc_users=array(); + $this->alternc_sites=array(); } @@ -147,6 +146,8 @@ class m_piwik { $msg->log("piwik","get_users_access_from_site"); + $this->get_alternc_sites(); + $this->get_alternc_users(); if (!is_numeric($site_id)) { $msg->raise("ERROR", 'piwik', 'site_id must be numeric'); return FALSE; @@ -183,17 +184,26 @@ class m_piwik { } + function get_alternc_sites($force=false) { + global $db, $cuid, $msg; + + if (!count($this->alternc_sites) || $force) { + $db->query("SELECT piwik_id AS site_id FROM piwik_sites WHERE uid= ? ;", array($cuid)); + while ($db->next_record()) + $this->alternc_sites[]=$db->f('site_id'); + } + return $this->alternc_sites; + } + function get_alternc_users() { global $db, $cuid, $msg; - $msg->log("piwik","get_alternc_users"); - - static $alternc_users = array(); - $db->query("SELECT login FROM piwik_users WHERE uid= ?;", array($cuid)); - while ($db->next_record()) - array_push($alternc_users, $db->f('login')); - - return $alternc_users; + if (!count($this->alternc_users)) { + $db->query("SELECT login FROM piwik_users WHERE uid= ?;", array($cuid)); + while ($db->next_record()) + $this->alternc_users[]=$db->f('login'); + } + return $this->alternc_users; } @@ -315,6 +325,7 @@ class m_piwik { $msg->log("piwik","site_list"); + $this->get_alternc_sites(); $api_data = $this->call_privileged_page('API', 'SitesManager.getAllSites'); $data = array(); @@ -351,20 +362,6 @@ class m_piwik { } - function get_alternc_sites() { - global $db, $cuid, $msg; - - $msg->log("piwik","get_alternc_sites"); - - static $alternc_sites = array(); - $db->query("SELECT piwik_id AS site_id FROM piwik_sites WHERE uid= ? ;", array($cuid)); - while ($db->next_record()) - array_push($alternc_sites, $db->f('site_id')); - - return $alternc_sites; - } - - function get_site_list() { return $this->call_privileged_page('API', 'SitesManager.getAllSites'); @@ -376,6 +373,7 @@ class m_piwik { $msg->log("piwik","site_add"); + $this->get_alternc_sites(); $urls = is_array($urls) ? implode(',', $urls) : $urls; $api_data = $this->call_privileged_page('API', 'SitesManager.addSite', array('siteName' => $siteName, 'urls' => $urls)); @@ -391,7 +389,7 @@ class m_piwik { $db->query("INSERT INTO piwik_sites set uid= ? , piwik_id= ? ", array($cuid, $id_site)); // Permet de prendre en compte le site qu'on vient de créer dans la page quis'affiche - $this->alternc_sites = $this->get_alternc_sites(); + $this->alternc_sites = $this->get_alternc_sites(true); return TRUE; } return TRUE;