linea21-modules
[ class tree: linea21-modules ] [ index: linea21-modules ] [ all elements ]

Source for file class.workshop.php

Documentation is available at class.workshop.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage workshop
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  Work group Management
  10.  */
  11.  
  12. class workshop {
  13.   /* @param
  14.    * */
  15.   var $TDB_WORKSHOP = T_WORK// nom de la table.
  16.   var $ID;
  17.   var $DENOMINATION;
  18.   var $RESUME;
  19.   var $THEME;
  20.   var $COMMENT;
  21.   var $LEVEL;
  22.   var $DATE_CREA;
  23.   var $LAST_MODIFY;
  24.   var $STATUT;
  25.  
  26.   /**
  27.    * workshop::CheckDataIntegrity()
  28.    * Vérification intégrité des données
  29.    *
  30.    * @access public
  31.    * @param array $table contient les composants d'un groupe de travail
  32.    * @return boolean true
  33.    *  si verifié, sinon string 'message d'erreur'
  34.    */
  35.   function CheckDataIntegrity($table$sql_object)
  36.   {
  37.     if (strlen($table[0]3return _t('workshop','no_title');
  38.     if (strlen($table[1]3return _t('workshop','no_resume');
  39.     if ($table[2== -1return _t('workshop','no_theme');
  40.  
  41.     if (substr($table[6]-1== MAIL_SEPARATOR{
  42.       $table[6substr($table[6]0-1);
  43.     }
  44.     $table_organizer @explode(MAIL_SEPARATOR$table[6]);
  45.     for ($i 0;$i count($table_organizer);$i++{
  46.       $table_organizer[$istr_replace(" """$table_organizer[$i]);
  47.       if (strlen(trim($table_organizer[$i])) 2$return _t('workshop','no_author');
  48.       $result $this->_CheckUserValidity($table_organizer[$i]$sql_object);
  49.       if (!is_numeric($result)) $return _t('workshop','author_not_valid'" : " $table_organizer[$i];
  50.       else $return $result;
  51.       $result_admin $this->_CheckAdmin($sql_object-1$table_organizer[$i]);
  52.       if ($result_admin == false$return _t('workshop','author_not_admin'" : " $table_organizer[$i];
  53.       if (!is_numeric($return)) return $return;
  54.     }
  55.     return $return;
  56.   }
  57.  
  58.   /**
  59.    * workshop::_CheckAdmin()
  60.    * Vérification droits d'utilisation avancé Admin ou Animateur
  61.    *
  62.    * @access private
  63.    * @param object $sql_object 
  64.    * @return integer $user_id (option)
  65.    * @param string $user_login (option)
  66.    * @return integer id de l'utilisateur si verifié, sinon false
  67.    */
  68.   function _CheckAdmin($sql_object$user_id = -1$user_login = -1)
  69.   {
  70.     if ($user_id <> -1{
  71.       $requete "SELECT rights_workshop, U.user_id FROM " T_USER " AS U LEFT OUTER JOIN " T_RIGHT " AS R on U.user_rights=R.rights_id  WHERE user_id='" $user_id "' AND user_validity='Y';";
  72.     }
  73.     if ($user_login <> -1{
  74.       $requete "SELECT rights_workshop, U.user_id FROM " T_USER " AS U LEFT OUTER JOIN " T_RIGHT " AS R on U.user_rights=R.rights_id  WHERE lower(user_login)= '" strtolower($user_login"' AND user_validity='Y';";
  75.     }
  76.     $result $sql_object->DBSelect($requete);
  77.     if ($result[0]['rights_workshop'== 'A' || $result[0]['rights_workshop'== 'O'return $result[0]['user_id'];
  78.     else return false;
  79.   }
  80.  
  81.   /**
  82.    * workshop::_CheckUserValidity()
  83.    * Vérification validité de l'utilisateur
  84.    *
  85.    * @access private
  86.    * @param string $login 
  87.    * @param object $sql_object 
  88.    * @return integer si $login existe
  89.    *  sinon renvoie false
  90.    */
  91.   function _CheckUserValidity($login$sql_object)
  92.   {
  93.     $requete "SELECT user_id FROM " T_USER " WHERE lower(user_login)= '" strtolower($login"' AND user_validity='Y';";
  94.     $result $sql_object->DBSelect($requete);
  95.     if ($result == 0return false;
  96.     if (count($result1exit();
  97.     else return (int)$result[0]['user_id'];
  98.   }
  99.  
  100.   /**
  101.    * workshop::CheckUserIntegrity()
  102.    * Vérification pour ajout de l'utilisateur
  103.    *
  104.    * @access public
  105.    * @param string $login 
  106.    * @param integer $id 
  107.    * @param object $sql_object 
  108.    * @param string $statut 
  109.    * @return string $result
  110.    */
  111.   function CheckUserIntegrity($login$id$sql_object$statut)
  112.   {
  113.  
  114.     if (strlen(trim($login)) 2return _t('workshop','no_author');
  115.     $result $this->_CheckUserValidity($login$sql_object);
  116.     if ($statut == 'O'{
  117.       $result_admin $this->_CheckAdmin($sql_object-1$login);
  118.       if ($result_admin == falsereturn _t('workshop','author_not_admin'" : " $login;
  119.     }
  120.     if (!is_numeric($result)) return _t('workshop','author_not_valid'" : " $login;
  121.     $requete_yetuser "SELECT user_id FROM " T_USER " WHERE lower(user_login)= '" strtolower($login"' AND user_validity='Y';";
  122.     $result_yetuser $sql_object->DBSelect($requete_yetuser);
  123.  
  124.     $requete_yetuser2 "SELECT COUNT(jwu_id) AS nb FROM " J_WORK_USERS " WHERE jwu_user_id=" $result_yetuser[0]['user_id'" AND jwu_workshop_id=" $id ";";
  125.     $result_yetuser2 $sql_object->DBSelect($requete_yetuser2'OBJECT');
  126.  
  127.     if ($result_yetuser2[0]->nb != 0return _t('workshop','yet_author');
  128.  
  129.     return $result;
  130.   }
  131.  
  132.   /**
  133.    * workshop::AddWorkshop()
  134.    * Ajout d'un groupe de travail
  135.    *
  136.    * @access public
  137.    * @param array $table_workshop contient les composants d'un workshop
  138.    * @param object $sql_object 
  139.    * @return integer $last_id
  140.    */
  141.   function AddWorkshop($table_workshop$sql_object)
  142.   {
  143.     $table_workshop=$sql_object->DBescape($table_workshop);
  144.     
  145.     if($table_workshop[4== -1$table_workshop[4]=0;
  146.  
  147.     $this->DENOMINATION = strip_input(trim($table_workshop[0]));
  148.     $this->RESUME = strip_input(trim($table_workshop[1])true);
  149.     $this->THEME = $table_workshop[2];
  150.     $this->COMMENT = strip_input(trim($table_workshop[3])true);
  151.     $this->LEVEL = $table_workshop[4];
  152.     $this->STATUT = $table_workshop[5];
  153.  
  154.     $requete "INSERT INTO " $this->TDB_WORKSHOP . " (workshop_denomination, workshop_resume, workshop_theme, workshop_comment, workshop_level, workshop_statut, workshop_date_crea) VALUES('" $this->DENOMINATION . "', '" $this->RESUME . "', " $this->THEME . ", '" $this->COMMENT . "', " $this->LEVEL . ", '" $this->STATUT . "', NOW());";
  155.     $last_id $sql_object->DBInsert ($requete1);
  156.     return $last_id;
  157.   }
  158.  
  159.   /**
  160.    * workshop::ModifyWorkshop()
  161.    * modification d'un workshop
  162.    *
  163.    * @access public
  164.    * @param int $ID identifiant d'un workshop
  165.    * @param array $table_workshop contient les composants d'un workshop
  166.    * @param object $sql_object 
  167.    * @return bool $result
  168.    */
  169.   function ModifyWorkshop($ID$table_workshop$sql_object)
  170.   {
  171.     $table_workshop=$sql_object->DBescape($table_workshop);
  172.     
  173.     if($table_workshop[4== -1$table_workshop[4]=0;
  174.  
  175.     if (is_numeric($ID)) {
  176.       $this->ID = $ID;
  177.     }
  178.  
  179.     $this->DENOMINATION = strip_input(trim($table_workshop[0]));
  180.     $this->RESUME = strip_input(trim($table_workshop[1]true));
  181.     $this->THEME = $table_workshop[2];
  182.     $this->COMMENT = strip_input(trim($table_workshop[3]true));
  183.     $this->LEVEL = $table_workshop[4];
  184.  
  185.     $requete "UPDATE  " $this->TDB_WORKSHOP . " set workshop_denomination='" $this->DENOMINATION . "', workshop_resume='" $this->RESUME . "' , workshop_theme=" $this->THEME . ", workshop_level=" $this->LEVEL . ", workshop_comment='" $this->COMMENT . "' WHERE workshop_id=" $this->ID . ";";
  186.     $result $sql_object->DBQuery($requete);
  187.     return $result;
  188.   }
  189.  
  190.   /**
  191.    * modification du statut d'un workshop
  192.    *
  193.    * @access public
  194.    * @param int $id identifiant du workshop
  195.    * @param string $state (facultatif) 'P' Public/'D' Draft/'AA' AdminArchive/'PA' PublicArchive/'E' Erase
  196.    * @param object $sql_object 
  197.    * @return bool $result
  198.    */
  199.  
  200.   function StateWorkshop($ID$state$sql_object)
  201.   {
  202.     if (is_numeric($ID)) {
  203.       $this->ID = $ID;
  204.     }
  205.     if ($state != ''{
  206.       strtoupper($state);
  207.       switch ($state{
  208.         case 'P':
  209.           $this->STATUT = $state;
  210.           break;
  211.         case 'D':
  212.           $this->STATUT = $state;
  213.           break;
  214.         case 'AA':
  215.           $this->STATUT = $state;
  216.           break;
  217.         case 'PA':
  218.           $this->STATUT = $state;
  219.           break;
  220.         case 'E':
  221.           $this->STATUT = $state;
  222.           break;
  223.         default:
  224.           $this->STATUT = 'D';
  225.           break;
  226.       }
  227.     else $this->STATUT = 'D';
  228.     $requete "UPDATE  " $this->TDB_WORKSHOP . " set workshop_statut='" $this->STATUT . "' WHERE workshop_id=" $this->ID . ";";
  229.     $result $sql_object->DBQuery($requete);
  230.     return $result;
  231.   }
  232.  
  233.   /**
  234.    * suppression d'un workshop
  235.    *
  236.    * @access public
  237.    * @param int $id identifiant du workshop a supprimer
  238.    * @param object $sql_object 
  239.    * @return bool $result
  240.    */
  241.  
  242.   function DeleteWorkshop($ID$sql_object)
  243.   {
  244.     if (is_numeric($ID)) {
  245.       $this->ID = $ID;
  246.     }
  247.     $result $this->StateWorkshop($this->ID'E'$sql_object);
  248.  
  249.     return $result;
  250.   }
  251.  
  252.   /**
  253.    * workshop::AddUserWorkshop()
  254.    * Ajout d'un utilisateur au workshop
  255.    *
  256.    * @access public
  257.    * @param int $work_id identifiant du workshop
  258.    * @param string $user_login login de l'utilisateur
  259.    * @param array $user_right droit confié a l'utilisateur sur le workshop
  260.    * @param object $sql_object 
  261.    * @return integer $last_id
  262.    */
  263.   function AddUserWorkshop($work_id$user_login$user_right $sql_object)
  264.   {
  265.     if (is_numeric($work_id)) {
  266.       $this->ID = $work_id;
  267.     else return false;
  268.     if (strlen($user_login>= 3{
  269.       $requete "SELECT user_id FROM " T_USER " WHERE lower(user_login) = '" strtolower($user_login"' AND user_validity='Y';";
  270.       $data $sql_object->DBSelect($requete);
  271.  
  272.       $user_id $data[0]['user_id'];
  273.     }
  274.     $requete "INSERT INTO " J_WORK_USERS " (jwu_workshop_id, jwu_user_id, jwu_user_right) VALUES(" $this->ID . ", " $user_id ",'" $user_right "');";
  275.     $last_id $sql_object->DBInsert ($requete1);
  276.     return $last_id;
  277.   }
  278.  
  279.   /**
  280.    * workshop::DeleteUserWorkshop()
  281.    * suppression d'un utilisateur au workshop
  282.    *
  283.    * @access public
  284.    * @param int $user_id identifiant du workshop
  285.    * @param string $work_id login de l'utilisateur
  286.    * @param object $sql_object 
  287.    * @return bool $result
  288.    */
  289.   function DeleteUserWorkshop($user_id$work_id$sql_object)
  290.   {
  291.     if (is_numeric($work_id&& is_numeric($user_id)) {
  292.       $requete "DELETE FROM " J_WORK_USERS " WHERE jwu_workshop_id=" $work_id " AND jwu_user_id=" $user_id ";";
  293.       $result $sql_object->DBQuery($requete);
  294.       return $result;
  295.     else return false;
  296.   }
  297.  
  298.   /**
  299.    * workshop::ModifyUserWorkshop()
  300.    * modification d'un utilisateur au workshop
  301.    *
  302.    * @access public
  303.    * @param int $work_id identifiant du workshop
  304.    * @param string $user_login login de l'utilisateur
  305.    * @param object $sql_object 
  306.    * @return bool $result
  307.    */
  308.   function ModifyUserWorkshop($work_id$user_login$sql_object)
  309.   {
  310.     if (is_numeric($work_id)) {
  311.       $user_id $this->_CheckUserValidity($user_login$sql_object);
  312.       $requete "UPDATE " J_WORK_USERS " SET jwu_user_id=" $user_id " WHERE jwu_user_right='O'  AND jwu_workshop_id=" $work_id " ;";
  313.       $result $sql_object->DBQuery($requete);
  314.       return $result;
  315.     else return false;
  316.   }
  317.  
  318.   /**
  319.    * workshop::ModifyOrganizerWorkshop()
  320.    * modification des organisateurs d'un workshop
  321.    *
  322.    * @access public
  323.    * @param int $work_id identifiant du workshop
  324.    * @param string $table_login string des organisateurs séparés par ';'
  325.    * @param object $sql_object 
  326.    * @return int $last_id
  327.    */
  328.   function ModifyOrganizerWorkshop($work_id$table_login$sql_object)
  329.   {
  330.     $table_login str_replace(" """$table_login);
  331.     if (substr($table_login-1== MAIL_SEPARATOR{
  332.       $table_login substr($table_login0-1);
  333.     }
  334.     $table_login @explode(MAIL_SEPARATOR$table_login);
  335.     $requete "DELETE FROM " J_WORK_USERS " WHERE jwu_workshop_id=" $work_id " AND jwu_user_right='O';";
  336.     $result $sql_object->DBQuery($requete);
  337.     for ($i 0;$i count($table_login);$i++{
  338.       $user_id $this->_CheckUserValidity($table_login[$i]$sql_object);
  339.       $requete2 "DELETE FROM " J_WORK_USERS " WHERE jwu_workshop_id=" $work_id " AND jwu_user_id=" $user_id ";";
  340.       $result2 $sql_object->DBQuery($requete2);
  341.       $requete3 "INSERT INTO " J_WORK_USERS " (jwu_workshop_id, jwu_user_id, jwu_user_right) VALUES(" $work_id ", " $user_id ",'O');";
  342.       $last_id $sql_object->DBInsert ($requete31);
  343.     }
  344.     return $last_id;
  345.   }
  346.  
  347. }
  348.  
  349. ?>

Documentation generated on Fri, 16 Oct 2009 09:30:39 +0200 by phpDocumentor 1.4.1