예제 #1
0
 /**
  * Charge toutes les aides à la saisie de l'objet pour un utilisateur donné
  *
  * @param int    $user_id        Utilisateur
  * @param string $keywords       Permet de filtrer les aides commançant par le filtre, si non null
  * @param string $depend_value_1 Valeur de la dépendance 1 lié à l'aide
  * @param string $depend_value_2 Valeur de la dépendance 2 lié à l'aide
  * @param string $object_field   Type d'objet concerné
  * @param string $strict         True or False
  *
  * @return void
  */
 function loadAides($user_id, $keywords = null, $depend_value_1 = null, $depend_value_2 = null, $object_field = null, $strict = "true")
 {
     foreach ($this->_specs as $field => $spec) {
         if (isset($spec->helped)) {
             $this->_aides[$field] = array("no_enum" => null);
         }
     }
     // Chargement de l'utilisateur courant
     $user = new CMediusers();
     $user->load($user_id);
     $user->loadRefFunction();
     // Préparation du chargement des aides
     $ds =& $this->_spec->ds;
     // Construction du Where
     $where = array();
     $where[] = "(user_id = '{$user_id}' OR \n      function_id = '{$user->function_id}' OR \n      group_id = '{$user->_ref_function->group_id}')";
     $where["class"] = $ds->prepare("= %", $this->_class);
     if ($strict == "true") {
         if ($depend_value_1) {
             $where["depend_value_1"] = " = '{$depend_value_1}'";
         }
         if ($depend_value_2) {
             $where["depend_value_2"] = " = '{$depend_value_2}'";
         }
     } else {
         if ($depend_value_1) {
             $where[] = "(depend_value_1 = '{$depend_value_1}' OR depend_value_1 IS NULL)";
         }
         if ($depend_value_2) {
             $where[] = "(depend_value_2 = '{$depend_value_2}' OR depend_value_2 IS NULL)";
         }
     }
     if ($object_field) {
         $where["field"] = " = '{$object_field}'";
     }
     // tri par user puis function puis group (ordre inversé pour avoir ce résultat)
     $order = "group_id, function_id, user_id, depend_value_1, depend_value_2, name, text";
     // Chargement des Aides de l'utilisateur
     $aide = new CAideSaisie();
     // TODO: si on veut ajouter un $limit, il faudrait l'ajouter en argument de la fonction loadAides
     $aides = $aide->seek($keywords, $where, null, null, null, $order);
     $this->orderAides($aides, $depend_value_1, $depend_value_2);
 }
예제 #2
0
foreach ($aides as $owner => $_aides_by_owner) {
    switch ($owner) {
        case "user":
            $key_where = "user_id";
            $where[$key_where] = "= '{$userSel->user_id}'";
            break;
        case "func":
            $key_where = "function_id";
            $where[$key_where] = "= '" . ($function_id ? $function_id : $userSel->function_id) . "'";
            break;
        case "etab":
            $key_where = "group_id";
            $where[$key_where] = "= '" . ($function_id ? $function->_ref_group->_id : $userSel->_ref_function->group_id) . "'";
            break;
    }
    $aides["{$owner}_ids"] = array_keys($_aide->seek($keywords, $where, 1000));
    $aides[$owner] = $_aide->seek($keywords, $where, $start[$owner] . ", 30", true, null, $order_by);
    $aidesCount[$owner] = $_aide->_totalSeek;
    unset($where[$key_where]);
    foreach ($aides[$owner] as $aide) {
        $aide->loadRefUser();
        $aide->loadRefFunction();
        $aide->loadRefGroup();
    }
    CStoredObject::massLoadBackRefs($aides[$owner], 'hypertext_links');
}
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("userSel", $userSel);
$smarty->assign("function", $function);
$smarty->assign("aides", $aides);