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

Documentation generated on Sat, 08 Nov 2008 14:51:36 +0100 by phpDocumentor 1.4.1