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

Source for file class.resources.php

Documentation is available at class.resources.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage resources
  5.  * @see workshop, publication
  6.  * @author linea21 <info@linea21.com>
  7.  * @version $id SVN
  8.  * @access public
  9.  * @license http://opensource.org/licenses/gpl-3.0.html
  10.  *  Resource Management
  11.  */
  12.  
  13. class resources {
  14.   /* @param
  15.    * */
  16.   var $TDB_LIAISON;
  17.   var $ACTIVE_TABLE;
  18.   var $ACTIVE_TYPE// valeur 'P' || 'W'
  19.  
  20.   var $B_ID;
  21.   var $B_AUTHOR;
  22.   var $B_TITLE;
  23.   var $B_SUBTITLE;
  24.   var $B_EDITOR;
  25.   var $B_DATE;
  26.   var $B_RANGE;
  27.   var $B_DATE_CREA;
  28.   var $B_LAST_MODIFY;
  29.   var $B_VALIDITY;
  30.   var $TDB_BIBLIO = T_BIBLIO_RES;
  31.  
  32.   var $L_ID;
  33.   var $L_TEXT;
  34.   var $L_MASK;
  35.   var $L_RANGE;
  36.   var $L_DATE_CREA;
  37.   var $L_LAST_MODIFY;
  38.   var $L_VALIDITY;
  39.   var $TDB_LINK = T_LINK_RES;
  40.  
  41.   var $M_ID;
  42.   var $M_NAME;
  43.   var $M_DESC;
  44.   var $M_URI;
  45.   var $M_RANGE;
  46.   var $M_DATE_CREA;
  47.   var $M_LAST_MODIFY;
  48.   var $M_VALIDITY;
  49.   var $TDB_MULTI = T_MULTI_RES;
  50.   var $M_MAX_PHOTO_MAX_WIDTH = 720;
  51.   var $M_MAX_PHOTO_MIN_WIDTH = 280;
  52.   var $M_UPLOAD_MAX_MO = 1024000// taille maximale d'upload des fichiers en octets
  53.   var $M_URI_INPUT = "multimedia/input/"// dossier racine de stockage des elements multimedias
  54.   var $M_URI_OUTPUT = "multimedia/output/"// dossier racine de diffusion des elements multimedias
  55.   /**
  56.   * resources::CheckDataIntegrity()
  57.   * vérifie l'integrité d'un ressource avant Insertion
  58.   *
  59.   * @access public
  60.   * @param array $table : contient les composants d'une ressource
  61.   * @param string $type : 'LINK', 'BIBLIO', 'MULTI'
  62.   * @return boolean true
  63.   *  si verifié, sinon string 'message d'erreur'
  64.   */
  65.   function CheckDataIntegrity($table$type)
  66.   {
  67.     if ($type == 'LINK'{
  68.       if (strlen($table[0]2return _t('resources','no_url');
  69.       if (!$this->IsValidProtocol($table[0])) return _t('resources','invalid_protocol');
  70.       if(CHECK_LINK==true{
  71.         if (!$this->CheckOnlineFile($table[0])) return _t('resources','server_noresponse');
  72.       }
  73.     }
  74.     if ($type == 'BIBLIO'{
  75.       if (strlen($table[0]3return _t('resources','biblio_no_author');
  76.       if (strlen($table[1]3return _t('resources','biblio_no_title');
  77.     }
  78.     if ($type == 'MULTI'{
  79.       if (strlen($table[0]3return _t('resources','multi_no_name');
  80.       if (strlen($table[1]5return _t('resources','multi_no_description');
  81.       if (strlen($table[2]2return _t('resources','no_url');
  82.       if ($table[4== 'OUT' && !$this->IsValidProtocol($table[2])) return _t('resources','invalid_protocol');
  83.       if ($table[4== 'IN'$table[2SITE_CITY_URL $table[2];
  84.       if(CHECK_LINK==true{
  85.         if (!$this->CheckOnlineFile($table[2])) return _t('resources','server_noresponse');
  86.       }
  87.     }
  88.  
  89.     return true;
  90.   }
  91.  
  92.   /**
  93.    * resources::CheckOnlineFile()
  94.    * vérifie l'existence d'un fichier en ligne
  95.    *
  96.    * @access public
  97.    * @param  $path 
  98.    * @return boolean 
  99.    */
  100.   function CheckOnlineFile($path)
  101.   {
  102.     $file_pt @fopen($path'r');
  103.     if (!$file_ptreturn false;
  104.     else {
  105.       fclose($file_pt);
  106.       return true;
  107.     }
  108.   }
  109.  
  110.   /**
  111.    * resources::IsValidProtocol()
  112.    * vérifie si une url donnée a un protocole reconnu par un client web standard
  113.    *
  114.    * @access public
  115.    * @param array $url : chemin absolu
  116.    * @return boolean 
  117.    */
  118.   function IsValidProtocol($url)
  119.   {
  120.     if (substr($url07!= 'http://' && substr($url08!= 'https://' && substr($url06!= 'ftp://' && substr($url07!= 'ftps://'return false;
  121.     else return true;
  122.   }
  123.  
  124.   /**
  125.    * resources::_wichType()
  126.    * détermine les tables de la bdd en action
  127.    *
  128.    * @access private
  129.    * @param string $type : type de la ressource Workshop ou publication
  130.    * @param string $resources : type de la ressource
  131.    * @return void 
  132.    */
  133.   function _wichType($type$resources)
  134.   {
  135.     switch ($type{
  136.       case 'WORKSHOP':
  137.         $this->ACTIVE_TYPE = 'W';
  138.         break;
  139.       case 'PUBLICATION':
  140.         $this->ACTIVE_TYPE = 'P';
  141.         break;
  142.       default:
  143.         return "error";
  144.     }
  145.  
  146.     switch ($resources{
  147.       case 'BIBLIO':
  148.         $this->TDB_LIAISON = J_BIBLIO;
  149.         $this->ACTIVE_TABLE = T_BIBLIO_RES;
  150.         break;
  151.       case 'LINK':
  152.         $this->TDB_LIAISON = J_LINK;
  153.         $this->ACTIVE_TABLE = T_LINK_RES;
  154.         break;
  155.       case 'MULTI':
  156.         $this->TDB_LIAISON = J_MULTI;
  157.         $this->ACTIVE_TABLE = T_MULTI_RES;
  158.         break;
  159.       default:
  160.         return "error";
  161.     }
  162.   }
  163.  
  164.  
  165.   /**
  166.    * resources::AddBiblioRes()
  167.    * Ajout d'une nouvelle ressource bibliographique
  168.    *
  169.    * @access public
  170.    * @param array $res_table tableau contenant les infos resources
  171.    * @param int $ID identifiant du père (rattachement)
  172.    * @param string $type 'PUBLICATION' ou 'WORKSHOP'
  173.    * @param object $sql_object 
  174.    * @return integer $last_id
  175.    */
  176.   function AddBiblioRes($ID$res_table$type$sql_object)
  177.   {
  178.     $res_table=$sql_object->DBescape($res_table);
  179.     if ($this->_wichType($type'BIBLIO'== "error"exit();
  180.     $this->B_AUTHOR = strip_input($res_table[0]);
  181.     $this->B_TITLE = strip_input($res_table[1]);
  182.     $this->B_SUBTITLE = strip_input($res_table[2]);
  183.     $this->B_EDITOR = strip_input($res_table[3]);
  184.     $this->B_DATE = strip_input($res_table[4]);
  185.     $this->B_RANGE = $res_table[5];
  186.     $this->B_VALIDITY = 'Y';
  187.     $requete "INSERT INTO " $this->ACTIVE_TABLE . " (bibliores_author, bibliores_title, bibliores_sub_title, bibliores_editor, bibliores_date, bibliores_range, bibliores_date_crea, bibliores_validity) " "VALUES('" $this->B_AUTHOR . "', '" $this->B_TITLE . "', '" $this->B_SUBTITLE . "', '" $this->B_EDITOR . "', '" $this->B_DATE . "', " $this->B_RANGE . ", NOW(), '" $this->B_VALIDITY . "');";
  188.     $last_id $sql_object->DBInsert ($requete1);
  189.     if (is_numeric($last_id)) {
  190.       $requete "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  191.       $result $sql_object->DBInsert ($requete);
  192.     }
  193.     return $result;
  194.   }
  195.  
  196.   /**
  197.    * resources::ModifyBiblioRes()
  198.    * modification d'une ressource bibliographique
  199.    *
  200.    * @access public
  201.    * @param int $ID identifiant de la ressource
  202.    * @param object $sql_object 
  203.    * @param array $res_table tableau contenant les infos resources
  204.    * @return bool $result
  205.    */
  206.   function ModifyBiblioRes($ID$res_table$sql_object)
  207.   {
  208.     $res_table=$sql_object->DBescape($res_table);
  209.     $this->B_ID = $ID;
  210.     $this->B_AUTHOR = strip_input($res_table[0]);
  211.     $this->B_TITLE = strip_input($res_table[1]);
  212.     $this->B_SUBTITLE = strip_input($res_table[2]);
  213.     $this->B_EDITOR = strip_input($res_table[3]);
  214.     $this->B_DATE = strip_input($res_table[4]);
  215.     $requete "UPDATE " $this->TDB_BIBLIO . " SET bibliores_author='" $this->B_AUTHOR . "' , bibliores_title='" $this->B_TITLE . "', bibliores_sub_title='" $this->B_SUBTITLE . "', bibliores_editor='" $this->B_EDITOR . "', bibliores_date='" $this->B_DATE . "' WHERE bibliores_id='" $this->B_ID . "';";
  216.     $result $sql_object->DBQuery($requete);
  217.     return $result;
  218.   }
  219.  
  220.   /**
  221.    * resources::DeleteBiblioRes()
  222.    * suppression d'une ressource bibliographique
  223.    *
  224.    * @access public
  225.    * @param int $ID identifiant de la ressource a supprimer
  226.    * @param object $sql_object 
  227.    * @return bool $result
  228.    */
  229.   function DeleteBiblioRes($ID$sql_object)
  230.   {
  231.     if (is_numeric($ID)) {
  232.       $this->B_ID = $ID;
  233.     }
  234.     $requete "UPDATE  " $this->TDB_BIBLIO . " SET bibliores_validity='N' WHERE bibliores_id=" $this->B_ID . ";";
  235.     $result $sql_object->DBQuery($requete);
  236.     return $result;
  237.   }
  238.  
  239.   /**
  240.    * resources::AddLinkRes()
  241.    * Ajout d'une ressource de type lien
  242.    *
  243.    * @access public
  244.    * @param int $ID identifiant du père (rattachement)
  245.    * @param array $res_table tableau contenant les infos ressources
  246.    * @param string $type 'PUBLICATION' ou 'WORKSHOP'
  247.    * @param object $sql_object 
  248.    * @return integer $last_id
  249.    */
  250.   function AddLinkRes($ID$res_table$type$sql_object)
  251.   {
  252.     $res_table=$sql_object->DBescape($res_table);
  253.  
  254.     $notvalidlink _t('resources','invalid_link');
  255.     if ($this->_wichType($type'LINK'== "error"exit;
  256.     $this->L_TEXT = strip_input($res_table[0]);
  257.     if ($res_table[1== ''{
  258.       $this->L_MASK = $this->L_TEXT;
  259.     else {
  260.       $this->L_MASK = strip_input($res_table[1]);
  261.     }
  262.     if (is_numeric($res_table[2])) {
  263.       $this->L_RANGE = $res_table[2];
  264.     }
  265.     $this->L_VALIDITY = 'Y';
  266.     $requete "INSERT INTO " $this->ACTIVE_TABLE . " (linkres_text, linkres_mask, linkres_range, linkres_date_crea, linkres_validity) VALUES('" $this->L_TEXT . "', '" $this->L_MASK . "', " $this->L_RANGE . ", NOW(), '" $this->L_VALIDITY . "');";
  267.     $last_id $sql_object->DBInsert ($requete1);
  268.     if (is_numeric($last_id)) {
  269.       $requete "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  270.       $result $sql_object->DBInsert ($requete);
  271.     }
  272.     return $result;
  273.   }
  274.  
  275.   /**
  276.    * resources::ModifyLinkRes()
  277.    * modification d'une ressource de type lien
  278.    *
  279.    * @access public
  280.    * @param int $ID identifiant de la ressource
  281.    * @param array $res_table tableau contenant les infos ressources
  282.    * @param object $sql_object 
  283.    * @return bool $result
  284.    */
  285.   function ModifyLinkRes($ID$res_table$sql_object)
  286.   {
  287.     $res_table=$sql_object->DBescape($res_table);
  288.  
  289.     $this->L_ID = $ID;
  290.     $this->L_TEXT = strip_input($res_table[0]);
  291.     if ($res_table[1== ''{
  292.       $this->L_MASK = $this->L_TEXT;
  293.     else {
  294.       $this->L_MASK = strip_input($res_table[1]);
  295.     }
  296.     $requete "UPDATE " $this->TDB_LINK . " SET linkres_text='" $this->L_TEXT . "' , linkres_mask='" $this->L_MASK . "' WHERE linkres_id='" $this->L_ID . "';";
  297.     echo $requete;
  298.     $result $sql_object->DBQuery($requete);
  299.     return $result;
  300.   }
  301.  
  302.   /**
  303.    * resources::DeleteLinkRes()
  304.    * suppression d'une ressource de type lien
  305.    *
  306.    * @access public
  307.    * @param int $ID identifiant de la ressource a supprimer
  308.    * @param object $sql_object 
  309.    * @return bool $result
  310.    */
  311.   function DeleteLinkRes($ID$sql_object)
  312.   {
  313.     if (is_numeric($ID)) {
  314.       $this->B_ID = $ID;
  315.     }
  316.     $requete "UPDATE  " $this->TDB_LINK . " SET linkres_validity='N' WHERE linkres_id=" $this->B_ID . ";";
  317.     $result $sql_object->DBQuery($requete);
  318.     return $result;
  319.   }
  320.  
  321.   /**
  322.    * resources::AddMultiRes()
  323.    * Ajout d'une ressource de type multimedia
  324.    *
  325.    * @access public
  326.    * @param int $ID identifiant du père (rattachement)
  327.    * @param array $res_table tableau contenant les infos ressources
  328.    * @param string $type 'PUBLICATION' ou 'WORKSHOP'
  329.    * @param object $sql_object 
  330.    * @return integer $last_id
  331.    */
  332.   function AddMultiRes($ID$res_table$type$sql_object)
  333.   {
  334.     $res_table=$sql_object->DBescape($res_table);
  335.  
  336.     if ($this->_wichType($type'MULTI'== "error"exit;
  337.     $this->M_NAME = strip_input($res_table[0]);
  338.  
  339.     $this->M_DESC = strip_input($res_table[1]);
  340.     $this->M_URI = strip_input($res_table[2]);
  341.     $this->M_RANGE = $res_table[3];
  342.     $this->M_VALIDITY = 'Y';
  343.     $requete "INSERT INTO " $this->ACTIVE_TABLE . " (multires_name, multires_description, multires_media_uri, multires_range, multires_date_crea, multires_validity) VALUES('" $this->M_NAME . "', '" $this->M_DESC . "', '" $this->M_URI . "', " $this->M_RANGE . ", NOW(), '" $this->M_VALIDITY . "');";
  344.     $last_id $sql_object->DBInsert ($requete1);
  345.     if (is_numeric($last_id)) {
  346.       $requete "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  347.       $result $sql_object->DBInsert ($requete);
  348.     }
  349.     return $result;
  350.   }
  351.  
  352.   /**
  353.    * resources::ModifyMultiRes()
  354.    * modification d'une ressource de type multimedia
  355.    *
  356.    * @access public
  357.    * @param int $ID identifiant de la ressource
  358.    * @param array $res_table tableau contenant les infos ressources
  359.    * @param object $sql_object 
  360.    * @return bool $result
  361.    */
  362.   function ModifyMultiRes($ID$res_table$sql_object)
  363.   {
  364.     $res_table=$sql_object->DBescape($res_table);
  365.  
  366.     $this->M_ID = $ID;
  367.     $this->M_NAME = strip_input($res_table[0]);
  368.     $this->M_DESC = strip_input($res_table[1]);
  369.     $this->M_URI = strip_input($res_table[2]);
  370.     $requete "UPDATE " $this->TDB_MULTI . " SET multires_name='" $this->M_NAME . "' , multires_description='" $this->M_DESC . "' , multires_media_uri='" $this->M_URI . "' WHERE multires_id='" $this->M_ID . "';";
  371.     $result $sql_object->DBQuery($requete);
  372.  
  373.     return $result;
  374.   }
  375.  
  376.   /**
  377.    * resources::DeleteMultiRes()
  378.    * suppression d'une ressource multimedia
  379.    *
  380.    * @access public
  381.    * @param int $ID identifiant de la ressource a supprimer
  382.    * @param object $sql_object 
  383.    * @return bool $result
  384.    */
  385.   function DeleteMultiRes($ID$sql_object)
  386.   {
  387.     if (is_numeric($ID)) {
  388.       $this->M_ID = $ID;
  389.     }
  390.     $requete "UPDATE  " $this->TDB_MULTI . " SET multires_validity='N' WHERE multires_id=" $this->M_ID . ";";
  391.     $result $sql_object->DBQuery($requete);
  392.     return $result;
  393.   }
  394. }
  395.  
  396. ?>

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