/** * 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); } } }
$module = CModule::getActive("dPcompteRendu"); $is_admin = $module && $module->canAdmin(); $access_function = $is_admin || CAppUI::conf("compteRendu CAideSaisie access_function"); $access_group = $is_admin || CAppUI::conf("compteRendu CAideSaisie access_group"); $aidebis = new CAideSaisie(); $whereClause = "`class` = '" . $class . "' AND\r\n`field` = '" . $field . "' AND (\r\n user_id = " . $user_id; if ($access_function) { $whereClause .= " OR function_id = " . $user->function_id; } if ($access_group) { $whereClause .= " OR group_id = " . $group->_id; } $whereClause .= ")"; $where[] = $whereClause; $orderby = "name"; $aides = $aidebis->loadList($where, $orderby); $aide = new CAideSaisie(); $aide->load($aide_id); if ($aide->_id) { if ($aide->function_id && !$access_function) { CAppUI::redirect("m=system&a=access_denied"); } if ($aide->group_id && !$access_group) { CAppUI::redirect("m=system&a=access_denied"); } $aide->loadRefUser(); $aide->loadRefFunction(); $aide->loadRefGroup(); } else { // Nouvelle Aide à la saisie $aide->class = $class;