/**
  * 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);