diff --git a/htdocs/core/lib/memory.lib.php b/htdocs/core/lib/memory.lib.php index 3be5e902816..d520a144f13 100644 --- a/htdocs/core/lib/memory.lib.php +++ b/htdocs/core/lib/memory.lib.php @@ -148,7 +148,7 @@ function dol_getcache($memoryid) } // Using a memcached server - if (!empty($conf->memcached->enabled) && class_exists('Memcached')) { + if (isModEnabled('memcached') && class_exists('Memcached')) { global $m; if (empty($m) || !is_object($m)) { $m = new Memcached(); @@ -173,7 +173,7 @@ function dol_getcache($memoryid) } else { return -$rescode; } - } elseif (!empty($conf->memcached->enabled) && class_exists('Memcache')) { // This is a really not reliable cache ! Use Memcached instead. + } elseif (isModEnabled('memcached') && class_exists('Memcache')) { // This is a really not reliable cache ! Use Memcached instead. global $m; if (empty($m) || !is_object($m)) { $m = new Memcache(); diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index dd7026a0d60..c289f523bd3 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -230,7 +230,7 @@ function project_prepare_head(Project $project, $moreparam = '') $head[$h][1] = $langs->trans("EventOrganization"); // Enable caching of conf or booth count - $nbConfOrBooth = 0; + $nbConfOrBooth = 0; $nbAttendees = 0; require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php'; $cachekey = 'count_conferenceorbooth_'.$project->id; $dataretrieved = dol_getcache($cachekey); @@ -248,8 +248,30 @@ function project_prepare_head(Project $project, $moreparam = '') } dol_setcache($cachekey, $nbConfOrBooth, 120); // If setting cache fails, this is not a problem, so we do not test result. } - if ($nbConfOrBooth > 0) { - $head[$h][1] .= '' . $nbConfOrBooth . ''; + $cachekey = 'count_attendees_'.$project->id; + $dataretrieved = dol_getcache($cachekey); + if (!is_null($dataretrieved)) { + $nbAttendees = $dataretrieved; + } else { + require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorboothattendee.class.php'; + $conforboothattendee=new ConferenceOrBoothAttendee($db); + $result = $conforboothattendee->fetchAll('', '', 0, 0, array('t.fk_project'=>$project->id)); + //, + if (!is_array($result) && $result<0) { + setEventMessages($conforboothattendee->error, $conforboothattendee->errors, 'errors'); + } else { + $nbAttendees = count($result); + } + dol_setcache($cachekey, $nbAttendees, 120); // If setting cache fails, this is not a problem, so we do not test result. + } + if ($nbConfOrBooth > 0 || $nbAttendees > 0) { + $head[$h][1] .= ''; + $head[$h][1] .= ''.$nbConfOrBooth.''; + if ($nbConfOrBooth > 0 && $nbAttendees > 0) { + $head[$h][1] .= ' / '; + } + $head[$h][1] .= ''.$nbAttendees.''; + $head[$h][1] .= ''; } $head[$h][2] = 'eventorganisation'; $h++;