Fix for Fixe for submint var $form_state

  1. <?php
  2.  
  3. function evenements_node_info() {
  4.         return array(
  5.         'evenement' => array(
  6.                 'name' => t('Créer un évènement'),
  7.                 'description' => t("Un évènement organisé."),
  8.                 'module' => 'evenements')
  9.         );
  10. }      
  11.  
  12. function evenements_perm() {
  13.         return array(   'creer un evenement',
  14.                                         'creer un evenement pour sa societe',
  15.                                         'modifier un evenement',
  16.                                         'modifier un evenement de sa societe',
  17.                                         'modifier ses evenements',
  18.                                         'supprimer un evenement',
  19.                                         'supprimer un evenement de sa societe',
  20.                                         'supprimer ses evenements',
  21.                                         'consulter un evenement',
  22.                                         'consulter les evenements de sa societe',
  23.                                         'consulter ses evenements',
  24.                                         'inscription a un evenement',
  25.                                         'inscription de sa societe a un evenement'
  26.         );
  27. }
  28.  
  29. function evenements_access($op, $node, $account){
  30.         $user_societe = user_societe();
  31.         switch($op){
  32.         case 'view' :
  33.                 return (user_access('consulter un evenement') || user_access('consulter les evenements de sa societe') && $user_societe == $node->sid || user_access('consulter ses evenements') && $node->uid == $account->uid );
  34.                 break;
  35.         case 'create' :
  36.                 return ( user_access('creer un evenement') || user_access('creer un evenement pour sa societe'));
  37.                 break;
  38.         case 'update' :
  39.                 if((user_access('modifier ses evenements') && ($account->uid == $node->uid)) || user_access('modifier un evenement') || user_acces('modifier un evenement de sa societe') && $node->sid == $user_societe ){
  40.                         return TRUE;
  41.                 }
  42.                 break;
  43.         case 'delete' :
  44.                 if((user_access('supprimer ses evenements') && ($account->uid == $node->uid)) || user_access('supprimer un evenement') || user_acces('supprimer un evenement de sa societe') && $node->sid == $user_societe){
  45.                         return TRUE;
  46.                 }
  47.                 break;
  48.         default :
  49.                 break;
  50.         }
  51. }
  52.  
  53. function evenements_form(& $node){
  54.         global $user;
  55.         $tab = array();
  56.         $tab[0] = "----AUCUNE----";
  57.         $liste = get_societe_liste(array('sid','title'));
  58.         while($societe = db_fetch_object($liste)){
  59.                 $tab[$societe->sid] = $societe->title;
  60.         }
  61.        
  62.         $user_result = db_query("SELECT uid, name FROM {users} ORDER by name");
  63.         $user_liste = array();
  64.         $user_liste[0] = "----AUCUN----";
  65.         while($item = db_fetch_object($user_result)){
  66.                 $item->uid!=0?$user_liste[$item->uid] = $item->name:'';
  67.         }
  68.        
  69.         if( user_access('creer un evenement pour sa societe') && $user->uid!=1 ){
  70.                 $user_societe = user_societe();
  71.                 $result = get_societe_liste( array('sid','title'), array('sid = '.$user_societe));
  72.                 $societe = db_fetch_object($result);
  73.                 $form['societe'] = array(
  74.                         '#type' => 'item',
  75.                         '#title' => t('Société'),
  76.                         '#value' => $societe->title,
  77.                 );
  78.                 $form['sid'] =array(
  79.                         '#type' => 'hidden',
  80.                         '#value' => $societe->sid
  81.                 );
  82.         }else{
  83.                 $form['sid'] = array(
  84.                         '#type' => 'select',
  85.                         '#title' => t('Société'),
  86.                         '#options' => $tab
  87.                 );
  88.         }
  89.         $form['title'] = array(
  90.                 '#type' => 'textfield',
  91.                 '#title' => t("Nom de l'évènement"),
  92.                 '#required' => TRUE,
  93.         );
  94.         $form['body'] = array(
  95.                 '#type' => 'textarea',
  96.                 '#title' => t("Déscription"),
  97.                 '#required' => TRUE,
  98.         );
  99.         /*$form['invites'] = array(
  100.                         '#type' => 'fieldset',
  101.                         '#title' => t('Invités'),
  102.                         '#collapsible' => TRUE,
  103.                         '#collapsed' => FALSE,
  104.                 );
  105.         $form['invites']['invites_uid'] = array(
  106.                 '#type' => 'select',
  107.                 '#multiple' => TRUE,
  108.                 '#title' => t('Membres à inviter'),
  109.                 '#options' => $user_liste,
  110.                 '#size' => 15
  111.         );
  112.         $form['invites']['invites_sid'] = array(
  113.                 '#type' => 'select',
  114.                 '#multiple' => TRUE,
  115.                 '#title' => t('Société à inviter'),
  116.                 '#options' => $tab,
  117.                 '#size' => 15
  118.         );*/
  119.        
  120.         return $form;
  121. }
  122.  
  123. function evenements_prepare(& $node) {
  124.  
  125.         $path= drupal_get_path('module', 'evenements');
  126.                         drupal_add_css($path . '/default.css');
  127.  $node->title=$node->title?$node->title:"";
  128.  $node->body=$node->body?$node->body:"";
  129. }
  130.  
  131. function evenements_load($node) {
  132.   return db_fetch_object(db_query('SELECT * FROM {node_evenement} WHERE nid = %d', $node->nid));
  133. }
  134.  
  135. function evenements_insert($node) {
  136.         /*$invites_uid;
  137.         $i = 0;
  138.         foreach($node->invites_uid as $key => $value){
  139.                 if($i!=0){
  140.                         $invites_uid.=",".$key;
  141.                 }else{
  142.                         $invites_uid.=$key;
  143.                 }
  144.                 $i++;
  145.         }
  146.         $invites_sid;
  147.         $i = 0;
  148.         foreach($node->invites_sid as $key => $value){
  149.                 if($i!=0){
  150.                         $invites_sid.=",".$key;
  151.                 }else{
  152.                         $invites_sid.=$key;
  153.                 }
  154.                 $i++;
  155.         }*/
  156.   /*db_query("INSERT INTO {node_evenement} (nid,
  157.         sid,
  158.         invites_uid,
  159.         invites_sid
  160.   )
  161.   VALUES (%d,
  162.         %d,
  163.         \"%s\",
  164.         \"%s\")",
  165.   $node->nid,
  166.   $node->sid,
  167.   $invites_uid,
  168.   $invites_sid
  169.   );*/
  170.   db_query("INSERT INTO {node_evenement} (nid,
  171.         sid
  172.  )
  173.  VALUES (%d,
  174.         %d)",
  175.   $node->nid,
  176.   $node->sid
  177.   );
  178.  
  179. }
  180.  
  181. function evenements_update($node) {
  182.         /*$invites_uid;
  183.         $i = 0;
  184.         foreach($node->invites_uid as $key => $value){
  185.                 if($i!=0){
  186.                         $invites_uid.=",".$key;
  187.                 }else{
  188.                         $invites_uid.=$key;
  189.                 }
  190.                 $i++;
  191.         }
  192.         $invites_sid;
  193.         $i = 0;
  194.         foreach($node->invites_sid as $key => $value){
  195.                 if($i!=0){
  196.                         $invites_sid.=",".$key;
  197.                 }else{
  198.                         $invites_sid.=$key;
  199.                 }
  200.                 $i++;
  201.         }*/
  202.   /*db_query("UPDATE {node_evenement} set sid = %d,
  203.                                                                         invites_uid=\"%s\",
  204.                                                                         invites_uid=\"%s\"
  205.         WHERE nid=%d",
  206.   $node->sid,
  207.   $invites_uid,
  208.   $invites_sid,
  209.   $node->nid);*/
  210.   db_query("UPDATE {node_evenement} set sid = %d
  211.         WHERE nid=%d",
  212.   $node->sid,
  213.   $node->nid);
  214. }
  215.  
  216. function evenements_delete(&$node) {
  217.   db_query('DELETE FROM {node_evenement} WHERE nid = %d', $node->nid);
  218. }
  219.  
  220. function evenements_view($node, $teaser = FALSE, $page = FALSE) {
  221.   $node= node_prepare($node, $teaser);
  222.   if ($page) {
  223.     $node->content['Informations'] = array(
  224.         '#value' => theme('evenement_view', $node),
  225.         '#weight' => 1,
  226.     );
  227.   }
  228.   return $node;
  229. }
  230.  
  231. function evenements_theme() {
  232.   return array(
  233.     'evenement_view' => array(
  234.       'arguments' => array('node' => NULL)
  235.     )
  236.   );
  237. }
  238.  
  239. function theme_evenement_view($node){
  240.         $path= drupal_get_path('module', 'evenements');
  241.         drupal_add_css($path . '/default.css');
  242.         $result = "pouet";
  243. }
  244.  
  245. function evenements_menu(){
  246.         $items = array();
  247.         $items['evenements'] = array (
  248.                 'title' => t('Évènements'),
  249.                 'page callback' => 'evenements_callback_menu',
  250.                 'access callback' => 'evenements_callback_menu_access',
  251.                 'expanded' => FALSE
  252.         );
  253.         $items['evenements/liste'] = array(
  254.                 'title' => t('Liste des évènements'),
  255.                 'page callback' => 'evenements_liste_all_callback',
  256.                 'access callback' => 'evenements_liste_access'
  257.         );
  258.         $items['evenements/liste/own'] = array(
  259.                 'title' => t('Mes invitations'),
  260.                 'type' => MENU_LOCAL_TASK,
  261.                 'page callback' => 'evenements_liste_own_callback',
  262.                 'access callback' => 'evenements_liste_access'
  263.         );
  264.         $items['evenements/liste/all'] = array(
  265.                 'title' => t('Tout les évènements'),
  266.                 'type' => MENU_LOCAL_TASK,
  267.                 'page callback' => 'evenements_liste_all_callback',
  268.                 'access callback' => 'evenements_liste_access'
  269.         );
  270.         $items['node/%/inscription/user/%'] = array(
  271.                 'type' => MENU_CALLBACK,
  272.                 'page callback' => 'inscription_user',
  273.                 'access callback' => 'inscription_user_access',
  274.                 'access arguments' => array(1)
  275.         );
  276.         $items['node/%/desinscription/user/%'] = array(
  277.                 'type' => MENU_CALLBACK,
  278.                 'page callback' => 'desinscription_user',
  279.                 'access callback' => 'inscription_user_access',
  280.                 'access arguments' => array(1)
  281.         );
  282.         $items['node/%/inscription/societe/%'] = array(
  283.                 'type' => MENU_CALLBACK,
  284.                 'page callback' => 'inscription_societe',
  285.                 'access callback' => 'inscription_societe_access',
  286.                 'access arguments' => array(1)
  287.         );
  288.         $items['node/%/desinscription/societe/%'] = array(
  289.                 'type' => MENU_CALLBACK,
  290.                 'page callback' => 'desinscription_societe',
  291.                 'access callback' => 'inscription_societe_access',
  292.                 'access arguments' => array(1)
  293.         );
  294.         $items['node/%/societes'] = array(
  295.                 'type' => MENU_LOCAL_TASK,
  296.                 'title' => 'Sociétés invitées',
  297.                 'page callback' => 'liste_societes_invitation',
  298.                 'page arguments' => array(1),
  299.                 'access callback' => 'invitation_gestion_access',
  300.                 'access arguments' => array(1)
  301.         );
  302.         $items['node/%/users'] = array(
  303.                 'type' => MENU_LOCAL_TASK,
  304.                 'title' => 'Membres invités',
  305.                 'page callback' => 'liste_membres_invitation',
  306.                 'page arguments' => array(1),
  307.                 'access callback' => 'invitation_gestion_access',
  308.                 'access arguments' => array(1)
  309.         );
  310.        
  311.         return $items;
  312. }
  313.  
  314. function invitation_gestion_access($nid){
  315.         global $user;
  316.         $cursor = db_fetch_object(db_query("SELECT n.uid, n.type, e.sid FROM {node} n INNER JOIN {node_evenement} e ON n.nid = e.nid WHERE n.nid =%d", $nid));
  317.         if(user_access('modifier un evenement') ||
  318.                 (user_access('modifier un evenement de sa societe') && $cursor->sid == user_societe()) ||
  319.                 (user_access('modifier ses evenements') && $cursor->uid == $user->uid)){
  320.                 return TRUE;
  321.         }
  322. }
  323.  
  324. function inscription_societe_access($nid){
  325.         return user_access('inscription de sa societe a un evenement')&&db_fetch_object(db_query("SELECT type FROM {node} WHERE nid = %d", $nid))->type=="evenement";
  326. }
  327.  
  328. function inscription_user_access($nid){
  329.         return user_access('inscription a un evenement')&&db_fetch_object(db_query("SELECT type FROM {node} WHERE nid = %d", $nid))->type=="evenement";
  330. }
  331.  
  332. function evenements_callback_menu_access(){
  333.         return user_access('creer un evenement')||
  334.                         user_access('creer un evenement pour sa societe')||
  335.                         user_access('modifier un evenement')||
  336.                         user_access('modifier un evenement de sa societe')||
  337.                         user_access('modifier ses evenements')||
  338.                         user_access('supprimer un evenement')||
  339.                         user_access('supprimer un evenement de sa societe')||
  340.                         user_access('supprimer ses evenements')||
  341.                         user_access('consulter un evenement')||
  342.                         user_access('consulter les evenements de sa societe')||
  343.                         user_access('consulter ses evenements')||
  344.                         user_access('inscription a un evenement')||
  345.                         user_access('inscription de sa societe a un evenement');
  346. }
  347.  
  348. function evenements_liste_access(){
  349.         return user_access('consulter les evenements de sa societe')||
  350.                         user_access('consulter ses evenements');
  351. }
  352.  
  353. function evenements_liste_own_callback(){
  354.         global $user;
  355.         variable_set('current_path','evenements/liste/own');
  356.  
  357.         /*$query = db_query("SELECT n.title, n.nid, r.body, e.sid, e.invites_uid, e.uids, e.invites_sid, e.sids FROM {node} n INNER JOIN {node_evenement} e ON n.nid = e.nid INNER JOIN {node_revisions} r ON r.nid = n.nid");*/
  358.         $query = db_query("SELECT n.title, n.nid, r.body, e.sid, e.invites_uid, e.invites_sid FROM {node} n INNER JOIN {node_evenement} e ON n.nid = e.nid INNER JOIN {node_revisions} r ON r.nid = n.nid");
  359.        
  360.         $result = "<table class='liste-mes-evenements'><tr><th>Société</th><th>Évènement</th><th>Actions</th></tr>";
  361.        
  362.         while($item = db_fetch_object($query)){
  363.                 if( user_access('inscription a un evenement') && !user_access('inscription de sa societe a un evenement') ){
  364.                         $invites = get_liste_invites($item->invites_uid);
  365.                         if($item->sid!=0){
  366.                                 $societe_evenement = db_fetch_object(get_societe_liste(array('title'), array('sid='.$item->sid)))->title;
  367.                         }else{
  368.                                 $societe_evenement = "AUCUNE<br/>Évènement AMS";
  369.                         }
  370.                         if( in_array($user->uid, $invites) ){
  371.                                 $result.= "<tr>";
  372.                                         $result.="<td>";
  373.                                                 $result.=$societe_evenement;
  374.                                         $result.="</td>";
  375.                                         $result.="<td>";
  376.                                                 $result.=$item->body;
  377.                                         $result.="</td>";
  378.                                         $result.="<td>";
  379.                                                 /*if( !in_array($user->uid, split(',', $item->uids))){*/
  380.                                                 if( !db_result(db_query("SELECT COUNT(uid) FROM {node_evenement_user_in} WHERE nid = %d AND uid = %d", $item->nid, $user->uid))){
  381.                                                         $result.=l("S'inscrire", "node/".$item->nid."/inscription/user/".$user->uid)."<br/>";
  382.                                                 }else{
  383.                                                         $result.=l("Se désinscrire", "node/".$item->nid."/desinscription/user/".$user->uid)."<br/>";
  384.                                                 }
  385.                                                 $result.=l("Consulter", "node/".$item->nid);
  386.                                         $result.="</td>";
  387.                                 $result.= "</tr>";
  388.                         }
  389.                 }elseif( user_access('inscription de sa societe a un evenement') && !user_access('inscription a un evenement')){
  390.                         $invites = get_liste_invites($item->invites_sid);
  391.                         if($item->sid!=0){
  392.                                 $societe_evenement = db_fetch_object(get_societe_liste(array('title'), array('sid='.$item->sid)))->title;
  393.                         }else{
  394.                                 $societe_evenement = "AUCUNE<br/>Évènement AMS";
  395.                         }
  396.                         $user_societe = user_societe();
  397.                         if( in_array($user_societe, $invites) ){
  398.                                 $result.= "<tr>";
  399.                                         $result.="<td>";
  400.                                                 $result.=$societe_evenement;
  401.                                         $result.="</td>";
  402.                                         $result.="<td>";
  403.                                                 $result.=$item->body;
  404.                                         $result.="</td>";
  405.                                         $result.="<td>";
  406.                                                 /*if( !in_array($user_societe, split(',', $item->sids))){*/
  407.                                                 if( !db_result(db_query("SELECT COUNT(sid) FROM {node_evenement_societe_in} WHERE nid = %d AND sid = %d", $item->nid, $user_societe))){
  408.                                                         $result.=l("Inscrire sa société", "node/".$item->nid."/inscription/societe/".$user_societe)."<br/>";
  409.                                                 }else{
  410.                                                         $result.=l("Désinscrire sa société", "node/".$item->nid."/desinscription/societe/".$user_societe)."<br/>";
  411.                                                 }
  412.                                                 $result.=l("Consulter", "node/".$item->nid);
  413.                                         $result.="</td>";
  414.                                 $result.= "</tr>";
  415.                         }
  416.                 }elseif( user_access('inscription de sa societe a un evenement') && user_access('inscription a un evenement')){
  417.                         $invites_sid = get_liste_invites($item->invites_sid);
  418.                         $invites_uid = get_liste_invites($item->invites_uid);
  419.                         if($item->sid!=0){
  420.                                 $societe_evenement = db_fetch_object(get_societe_liste(array('title'), array('sid='.$item->sid)))->title;
  421.                         }else{
  422.                                 $societe_evenement = "AUCUNE<br/>Évènement AMS";
  423.                         }
  424.                         $user_societe = user_societe();
  425.                         if( in_array($user_societe, $invites_sid) || in_array($user->uid, $invites_uid) ){
  426.                                 $result.= "<tr>";
  427.                                         $result.="<td>";
  428.                                                 $result.=$societe_evenement;
  429.                                         $result.="</td>";
  430.                                         $result.="<td>";
  431.                                                 $result.=$item->body;
  432.                                         $result.="</td>";
  433.                                         $result.="<td>";
  434.                                                 /*if( in_array($user_societe, $invites_sid) && !in_array($user_societe, split(',', $item->sids))){*/
  435.                                                 if( in_array($user_societe, $invites_sid) && !db_result(db_query("SELECT COUNT(sid) FROM {node_evenement_societe_in} WHERE nid = %d AND sid = %d", $item->nid, $user_societe))){
  436.                                                         $result.=l("Inscrire sa société", "node/".$item->nid."/inscription/societe/".$user_societe)."<br/>";
  437.                                                 }else{
  438.                                                         $result.=l("Désinscrire sa société", "node/".$item->nid."/desinscription/societe/".$user_societe)."<br/>";
  439.                                                 }
  440.                                                 /*if( in_array($user->uid, $invites_uid) && !in_array($user->uid, split(',', $item->uids))){*/
  441.                                                 if( in_array($user->uid, $invites_uid) && !db_result(db_query("SELECT COUNT(uid) FROM {node_evenement_user_in} WHERE nid = %d AND uid = %d", $item->nid, $user->uid))){
  442.                                                         $result.=l("S'inscrire", "node/".$item->nid."/inscription/user/".$user->uid)."<br/>";
  443.                                                 }else{
  444.                                                         $result.=l("Se désinscrire", "node/".$item->nid."/desinscription/user/".$user->uid)."<br/>";
  445.                                                 }
  446.                                                 $result.=l("Consulter", "node/".$item->nid);
  447.                                         $result.="</td>";
  448.                                 $result.= "</tr>";
  449.                         }
  450.                 }
  451.         }
  452.        
  453.         $result.="</table>";
  454.         return $result;
  455. }
  456.  
  457. function evenements_liste_all_callback(){
  458.         variable_set('current_path','evenements/liste/all');
  459.         $query = db_query("SELECT n.title, n.nid, r.body, e.sid, e.invites_uid, e.uids, e.invites_sid, e.sids, e.statut FROM {node} n INNER JOIN {node_evenement} e ON n.nid = e.nid INNER JOIN {node_revisions} r ON r.nid = n.nid");
  460.        
  461.         $result = "<table class='liste-mes-evenements'><tr><th>Société</th><th>Évènement</th><th>Actions</th></tr>";
  462.         /* L'évènement s'affiche si :
  463.         1-l'utilisateur à le droit de voir les événements ET
  464.         2-l'évènement est public OU l'utilisateur est invité OU l'utilisateur peut inscrire sa société ET sa société est invitée
  465.         */
  466.         while($item = db_fetch_object($query)){
  467.                 global $user;
  468.                 $invites_sid = get_liste_invites($item->invites_sid);
  469.                 $invites_uid = get_liste_invites($item->invites_uid);
  470.                 if($item->sid!=0){
  471.                         $societe_evenement = db_fetch_object(get_societe_liste(array('title'), array('sid='.$item->sid)))->title;
  472.                 }else{
  473.                         $societe_evenement = "AUCUNE<br/>Évènement AMS";
  474.                 }
  475.                 $user_societe = user_societe();
  476.                 if(user_access('consulter un evenement') && ($item->statut !=1 || in_array($user->uid, $invites_uid) || (user_access('inscription de sa societe a un evenement') && in_array($user_societe, $invites_sid)))){
  477.                         $result.= "<tr>";
  478.                                         $result.="<td>";
  479.                                                 $result.=$societe_evenement;
  480.                                         $result.="</td>";
  481.                                         $result.="<td>";
  482.                                                 $result.=$item->body;
  483.                                         $result.="</td>";
  484.                                         $result.="<td>";
  485.                                                 /*if( in_array($user_societe, $invites_sid) && !in_array($user_societe, split(',', $item->sids))&& user_access('inscription de sa societe a un evenement')){*/
  486.                                                 if( in_array($user_societe, $invites_sid) && !db_result(db_query("SELECT COUNT(sid) FROM {node_evenement_societe_in} WHERE nid = %d AND sid = %d", $item->nid, $user_societe)) && user_access('inscription de sa societe a un evenement')){
  487.                                                         $result.=l("Inscrire sa société", "node/".$item->nid."/inscription/societe/".$user_societe)."<br/>";
  488.                                                 /*}elseif(in_array($user_societe, $invites_sid) && in_array($user_societe, split(',', $item->sids))&& user_access('inscription de sa societe a un evenement')){*/
  489.                                                 }elseif(in_array($user_societe, $invites_sid) && db_result(db_query("SELECT COUNT(sid) FROM {node_evenement_societe_in} WHERE nid = %d AND sid = %d", $item->nid, $user_societe)) && user_access('inscription de sa societe a un evenement')){
  490.                                                         $result.=l("Désinscrire sa société", "node/".$item->nid."/desinscription/societe/".$user_societe)."<br/>";
  491.                                                 }
  492.                                                 /*if( in_array($user->uid, $invites_uid) && !in_array($user->uid, split(',', $item->uids)) && user_access('inscription a un evenement')){*/
  493.                                                 if( in_array($user->uid, $invites_uid) && !db_result(db_query("SELECT COUNT(uid) FROM {node_evenement_user_in} WHERE nid = %d AND uid = %d", $item->nid, $user->uid)) && user_access('inscription a un evenement')){
  494.                                                         $result.=l("S'inscrire", "node/".$item->nid."/inscription/user/".$user->uid)."<br/>";
  495.                                                 /*}elseif(in_array($user->uid, $invites_uid) && in_array($user->uid, split(',', $item->uids)) && user_access('inscription a un evenement')){*/
  496.                                                 }elseif(in_array($user->uid, $invites_uid) && db_result(db_query("SELECT COUNT(uid) FROM {node_evenement_user_in} WHERE nid = %d AND uid = %d", $item->nid, $user->uid)) && user_access('inscription a un evenement')){
  497.                                                         $result.=l("Se désinscrire", "node/".$item->nid."/desinscription/user/".$user->uid)."<br/>";
  498.                                                 }
  499.                                                 $result.=l("Consulter", "node/".$item->nid);
  500.                                         $result.="</td>";
  501.                                 $result.= "</tr>";
  502.                 }
  503.         }
  504.        
  505.         $result.= "</table>";
  506.         return $result;
  507.        
  508. }
  509.  
  510. function inscription_user(){
  511.         $goto_path = variable_get('current_path',"");
  512.         variable_del('current_path');
  513.         $user_uid = arg(4);
  514.         $node_evenement = arg(1);
  515.         /*if($insc = db_fetch_object(db_query("SELECT uids FROM {node_evenement} WHERE nid = %d"))->uids){
  516.                 $insc.=','.$user_uid;
  517.         }else{
  518.                 $insc = (string)$user_uid;
  519.         }
  520.         db_query("UPDATE {node_evenement} set uids = \"%s\"", $insc);*/
  521.         db_query("INSERT INTO {node_evenement_user_in} (nid, uid, visible) VALUES (%d,%d,%d)",$node_evenement, $user_uid, 1);
  522.         drupal_goto($goto_path);
  523. }
  524.  
  525. function desinscription_user(){
  526.         $goto_path = variable_get('current_path',"");
  527.         variable_del('current_path');
  528.         $user_uid = arg(4);
  529.         $node_evenement = arg(1);
  530.         /*$insc = split(',',db_fetch_object(db_query("SELECT uids FROM {node_evenement} WHERE nid = %d"))->uids);
  531.         $insc = implode(',', array_diff($insc, array((string)$user_uid)));
  532.         db_query("UPDATE {node_evenement} set uids = \"%s\"", $insc);*/
  533.         db_query("DELETE FROM {node_evenement_user_in} WHERE uid = %d AND nid = %d", $user_uid, $node_evenement);
  534.         drupal_goto($goto_path);
  535. }
  536. function inscription_societe(){
  537.         $goto_path = variable_get('current_path',"");
  538.         variable_del('current_path');
  539.         $sid = arg(4);
  540.         $node_evenement = arg(1);
  541.         /*if($insc = db_fetch_object(db_query("SELECT sids FROM {node_evenement} WHERE nid = %d"))->sids){
  542.                 $insc.=','.$sid;
  543.         }else{
  544.                 $insc = (string)$sid;
  545.         }
  546.         db_query("UPDATE {node_evenement} set sids = \"%s\"", $insc);*/
  547.         db_query("INSERT INTO {node_evenement_societe_in} (nid, sid, visible) VALUES (%d,%d,%d)",$node_evenement, $sid, 1);
  548.         drupal_goto($goto_path);
  549. }
  550.  
  551. function desinscription_societe(){
  552.         $goto_path = variable_get('current_path',"");
  553.         variable_del('current_path');
  554.         $sid = arg(4);
  555.         $node_evenement = arg(1);
  556.         /*$insc = split(',',db_fetch_object(db_query("SELECT sids FROM {node_evenement} WHERE nid = %d"))->sids);
  557.         $insc = implode(',', array_diff($insc, array((string)$sid)));
  558.         db_query("UPDATE {node_evenement} set sids = \"%s\"", $insc);*/
  559.         db_query("DELETE FROM {node_evenement_societe_in} WHERE sid = %d AND nid = %d", $sid, $node_evenement);
  560.         drupal_goto($goto_path);
  561. }
  562.  
  563. function get_liste_invites($liste){
  564.         return split(',', $liste);
  565. }
  566.  
  567. function liste_membres_invitation($nid){
  568.         return drupal_get_form('liste_membres_form', $nid);
  569. }
  570.  
  571. function liste_societes_invitation($nid){
  572.         return 'liste des membres invités';
  573. }
  574.  
  575. function liste_membres_form(&$form, $nid){
  576.         $query = db_query("SELECT u.uid, u.name, p.field_profile_photo_fid FROM {users} u INNER JOIN {node} n ON n.uid = u.uid INNER JOIN {content_type_profile} p ON p.nid = n.nid");
  577.         $table_inscris = get_liste_invites(db_fetch_object(db_query("SELECT invites_uid FROM {node_evenement} WHERE nid = %d",$nid))->invites_uid);
  578.         $form = array();
  579.         $i = 0;
  580.         while($item = db_fetch_object($query)){
  581.                 /*$form[$item->uid] = array(
  582.                         '#type' => 'fieldset',
  583.                         '#title' => t('Membre'),
  584.                         '#prefix' => '<table><tr>',
  585.                         '#suffix' => '</tr></table>',
  586.                         '#theme' => 'liste_form_table'
  587.                 );*/
  588.                 $form['membre'.$i]['uid'] = array(
  589.                         '#type' => 'hidden',
  590.                         '#value' => $item->uid
  591.                 );
  592.                 if($avatar = db_fetch_object(db_query("SELECT f.filepath FROM {files} f Where fid = %d", $item->field_profile_photo_fid))->filepath){
  593.                         $avatar = str_replace( "users" , "imagefield_thumbs/users", $avatar);
  594.                         $form['membre'.$i]['avatar'] = array(
  595.                                 '#type' => 'item',
  596.                                 '#title' => '',
  597.                                 '#prefix' => '<table><tr><td width = 120>',
  598.                                 '#suffix' => '</td>',
  599.                                 '#value' => '<img src = \'http://ams.topvillage.fr/'.$avatar.'\' />'
  600.                         );
  601.                 }else{
  602.                         $avatar = 'http://ams.topvillage.fr/sites/default/files/imagefield_default_images/no_avatar.png';
  603.                         $form['membre'.$i]['avatar'] = array(
  604.                                 '#type' => 'item',
  605.                                 '#title' => '',
  606.                                 '#prefix' => '<table><tr><td width = 120>',
  607.                                 '#suffix' => '</td>',
  608.                                 '#value' => '<img src = \''.$avatar.'\' />'
  609.                         );
  610.                 }
  611.                 $form['membre'.$i]['name'] = array(
  612.                         '#type' => 'item',
  613.                         '#title' => '',
  614.                         '#prefix' => '<td>',
  615.                         '#suffix' => '</td>',
  616.                         '#value' => $item->name
  617.                 );
  618.                 $value = in_array((string)$item->uid, $table_inscris)?1:0;
  619.                 $uncheckable = FALSE;
  620.                 if(db_result(db_query("SELECT COUNT(uid) FROM {node_evenement_user_in} WHERE uid = %d AND nid = %d", $item->uid, $nid))){
  621.                         $uncheckable = TRUE;
  622.                 }
  623.                 $form['membre'.$i]['check'] = array(
  624.                         '#type' => 'checkbox',
  625.                         '#title' => '',
  626.                         '#disabled' => $uncheckable,
  627.                         '#default_value' => $value,
  628.                         '#prefix' => '<td width = 120>',
  629.                         '#suffix' => '</td></tr><table>',
  630.                         '#return_value' => 1
  631.                 );
  632.                 $i++;
  633.         }
  634.        
  635.         $form['nid'] = array(
  636.                 '#type' => 'hidden',
  637.                 '#value' => $nid
  638.         );
  639.        
  640.         $form['submit'] = array(
  641.                 '#type' => 'submit',
  642.                 '#value' => t('Validate'),
  643.                 '#submit' => array('liste_membres_submit'),
  644.         );
  645.        
  646.         return $form;
  647. }
  648.  
  649. /*function theme_liste_form_table(&$form){
  650.         $content = '<table>';
  651.         foreach ($form as $key => $value) {
  652.                 $tmp = drupal_render($form[$key]);
  653.                 $tmp = preg_replace('|</label>|i', '</label></td><td>', $tmp, 1);
  654.                 $content .= '<tr><td>'.$tmp.'</td></tr>';
  655.         }
  656.         $content .= '</table>';
  657.         return $content;
  658. }*/
  659.  
  660. function liste_membres_submit($form, &$form_state){
  661.         $query = db_query("SELECT u.uid FROM {users} u INNER JOIN {node} n ON n.uid = u.uid INNER JOIN {content_type_profile} p ON p.nid = n.nid");
  662.         $j = 0;
  663.         $i = 0;
  664.         $liste_inscris = '';
  665.         while($item = db_fetch_object($query)->uid){
  666.                 if($form_state['values']['membre'.$i]['check']==1 && $j == 0){
  667.                         $liste_inscris.=$item;
  668.                         $j++;
  669.                 }elseif($form_state['values']['membre'.$i]['check']==1 && $j != 0){
  670.                         $liste_inscris.= ','.$item;
  671.                         $j++;  
  672.                 }
  673.                 $i++;
  674.         }
  675.         drupal_set_message($i.''.$form_state['values']['name']);
  676.         db_query("UPDATE {node_evenement} set invites_uid = '%s'
  677.                 WHERE nid=%d",
  678.                 $liste_inscris,
  679.                 $form_state['values']['nid']);
  680.         return TRUE;
  681. }
  682.  
  683. function liste_societes_form(&$form, $nid){
  684.         return;
  685. }

Submit Fix

Any tags you'd like to associate with your code, delimitered by commas (example: Views, CCK, Module, etc).
Select the syntax highlighting mode to use.