/** * Charge les listes de choix d'une classe pour un utilisateur, sa fonction et son établissement * * @param int $user_id identifiant de l'utilisateur * @param string $modeleType classe ciblée * @param string $other_function_id autre fonction * * @return void */ function loadHelpers($user_id, $modeleType, $other_function_id = "") { $compte_rendu = new CCompteRendu(); $ds = $compte_rendu->getDS(); // Chargement de l'utilisateur courant $currUser = CMediusers::get($user_id); $order = "name"; // Where user_id $whereUser = array(); $whereUser["user_id"] = $ds->prepare("= %", $user_id); $whereUser["class"] = $ds->prepare("= %", $compte_rendu->_class); // Where function_id $whereFunc = array(); $whereFunc["function_id"] = $other_function_id ? "IN ({$currUser->function_id}, {$other_function_id})" : $ds->prepare("= %", $currUser->function_id); $whereFunc["class"] = $ds->prepare("= %", $compte_rendu->_class); // Where group_id $whereGroup = array(); $group = CGroups::loadCurrent(); $whereGroup["group_id"] = $ds->prepare("= %", $group->_id); $whereGroup["class"] = $ds->prepare("= %", $compte_rendu->_class); // Chargement des aides $aide = new CAideSaisie(); /** @var CAideSaisie $aidesUser */ $aidesUser = $aide->loadList($whereUser, $order, null, "aide_id"); /** @var CAideSaisie $aidesFunc */ $aidesFunc = $aide->loadList($whereFunc, $order, null, "aide_id"); /** @var CAideSaisie $aidesGroup */ $aidesGroup = $aide->loadList($whereGroup, $order, null, "aide_id"); $this->helpers["Aide de l'utilisateur"] = array(); foreach ($aidesUser as $aideUser) { if ($aideUser->depend_value_1 == $modeleType || $aideUser->depend_value_1 == "") { $this->helpers["Aide de l'utilisateur"][CMbString::htmlEntities($aideUser->name)] = CMbString::htmlEntities($aideUser->text); } } $this->helpers["Aide de la fonction"] = array(); foreach ($aidesFunc as $aideFunc) { if ($aideFunc->depend_value_1 == $modeleType || $aideFunc->depend_value_1 == "") { $this->helpers["Aide de la fonction"][CMbString::htmlEntities($aideFunc->name)] = CMbString::htmlEntities($aideFunc->text); } } $this->helpers["Aide de l'établissement"] = array(); foreach ($aidesGroup as $aideGroup) { if ($aideGroup->depend_value_1 == $modeleType || $aideGroup->depend_value_1 == "") { $this->helpers["Aide de l'établissement"][CMbString::htmlEntities($aideGroup->name)] = CMbString::htmlEntities($aideGroup->text); } } }
break; case "body": $links = $compte_rendu->loadBackRefs("pack_links"); $modeles = CMbObject::massLoadFwdRef($links, "pack_id"); break; case "ending": $modeles = $compte_rendu->loadBackRefs("modeles_ended", "nom"); break; case "footer": $modeles = $compte_rendu->loadBackRefs("modeles_footed", "nom", null, null, null, null, null, array("object_id" => "IS NULL")); break; } $counts = array(); $users = array(); if ($compte_rendu->type == "body") { $ds = $compte_rendu->getDS(); $query = "SELECT `author_id`, COUNT(*) AS `total`\n FROM `compte_rendu`\n WHERE `modele_id` = '{$compte_rendu->_id}'\n GROUP BY `author_id`\n ORDER BY `total` DESC\n "; $counts = $ds->loadHashList($query); $user = CMediusers::get(); $users = $user->loadAll(array_keys($counts)); CMbObject::massLoadFwdRef($users, "function_id"); /** @var $_user CMediusers */ foreach ($users as $_user) { $_user->loadRefFunction(); } } $smarty = new CSmartyDP(); $smarty->assign("modeles", $modeles); $smarty->assign("counts", $counts); $smarty->assign("users", $users); $smarty->assign("compte_rendu", $compte_rendu);