public function ajaxProcessGamificationTasks() { if (!Configuration::get('GF_INSTALL_CALC')) { $this->processRefreshData(); $this->processInstallCalculation(); Configuration::updateGlobalValue('GF_INSTALL_CALC', 1); } $return = array('refresh_data' => $this->processRefreshData(), 'daily_calculation' => $this->processMakeDailyCalculation(), 'advice_validation' => $this->processAdviceValidation()); $return['advices_to_display'] = $this->processGetAdvicesToDisplay(); //get only one random advice by tab if (count($return['advices_to_display']['advices']) > 1) { $rand = rand(0, count($return['advices_to_display']['advices']) - 1); $return['advices_to_display']['advices'] = array($return['advices_to_display']['advices'][$rand]); } if (Tab::getIdFromClassName('AdminDashboard') == Tools::getValue('id_tab')) { $return['advices_premium_to_display'] = $this->processGetAdvicesToDisplay(true); if (count($return['advices_premium_to_display']['advices']) >= 2) { $weighted_advices_array = array(); foreach ($return['advices_premium_to_display']['advices'] as $prem_advice) { $loop_flag = (int) $prem_advice['weight']; if ($loop_flag) { for ($i = 0; $i != $loop_flag; $i++) { $weighted_advices_array[] = $prem_advice; } } else { $weighted_advices_array[] = $prem_advice; } } $rand = rand(0, count($weighted_advices_array) - 1); do { $rand2 = rand(0, count($weighted_advices_array) - 1); } while ($rand == $rand2); $return['advices_premium_to_display']['advices'] = array($weighted_advices_array[$rand], $weighted_advices_array[$rand2]); } else { if (count($return['advices_premium_to_display']['advices']) > 0) { $addons = Advice::getAddonsAdviceByIdTab((int) Tools::getValue('id_tab')); $return['advices_premium_to_display']['advices'][] = $addons[0]; } } } $return['level_badge_validation'] = $this->processLevelAndBadgeValidation(Badge::getIdsBadgesToValidate()); $return['header_notification'] = $this->module->renderHeaderNotification(); die(Tools::jsonEncode($return)); }