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.   protected $dispatcher = null;
  56.  
  57.   public function __construct()
  58.   {
  59.     $this->dispatcher = $GLOBALS['dispatcher'];
  60.   }
  61.  
  62.   public function __call($method$arguments)
  63.   {
  64.     $event $this->dispatcher->notifyUntil(new sfEvent($this'resources.extensible_function'array(
  65.       'method'    => $method,
  66.       'arguments' => $arguments
  67.     )));
  68.     if (!$event->isProcessed())
  69.     {
  70.       throw new Exception(sprintf('Call to undefined method %s::%s.'get_class($this)$method));
  71.     }
  72.  
  73.     return $event->getReturnValue();
  74.   }
  75.  
  76.  
  77.   /**
  78.    * resources::CheckDataIntegrity()
  79.    * vérifie l'integrité d'un ressource avant Insertion
  80.    *
  81.    * @access public
  82.    * @param array $table : contient les composants d'une ressource
  83.    * @param string $type : 'LINK', 'BIBLIO', 'MULTI'
  84.    * @return boolean true
  85.    *  si verifié, sinon string 'message d'erreur'
  86.    */
  87.   function CheckDataIntegrity($table$type)
  88.   {
  89.     if ($type == 'LINK'{
  90.       if (strlen($table[0]2return _t('resources','no_url');
  91.       if (!$this->IsValidProtocol($table[0])) return _t('resources','invalid_protocol');
  92.       if(CHECK_LINK==true{
  93.         if (!$this->CheckOnlineFile($table[0])) return _t('resources','server_noresponse');
  94.       }
  95.     }
  96.     if ($type == 'BIBLIO'{
  97.       if (strlen($table[0]3return _t('resources','biblio_no_author');
  98.       if (strlen($table[1]3return _t('resources','biblio_no_title');
  99.     }
  100.     if ($type == 'MULTI'{
  101.       if (strlen($table[0]3return _t('resources','multi_no_name');
  102.       if (strlen($table[1]5return _t('resources','multi_no_description');
  103.       if (strlen($table[2]2return _t('resources','no_url');
  104.       if(CHECK_LINK==true{
  105.         if (!$this->IsValidProtocol($table[2])) return _t('resources','invalid_protocol');
  106.         if (!$this->CheckOnlineFile($table[2])) return _t('resources','server_noresponse');
  107.       }
  108.     }
  109.  
  110.     return true;
  111.   }
  112.  
  113.   /**
  114.    * resources::CheckOnlineFile()
  115.    * vérifie l'existence d'un fichier en ligne
  116.    *
  117.    * @access public
  118.    * @param  $path 
  119.    * @return boolean 
  120.    */
  121.   function CheckOnlineFile($path)
  122.   {
  123.     $file_pt @fopen($path'r');
  124.     if (!$file_ptreturn false;
  125.     else {
  126.       fclose($file_pt);
  127.       return true;
  128.     }
  129.   }
  130.  
  131.   /**
  132.    * resources::IsValidProtocol()
  133.    * vérifie si une url donnée a un protocole reconnu par un client web standard
  134.    *
  135.    * @access public
  136.    * @param array $url : chemin absolu
  137.    * @return boolean 
  138.    */
  139.   function IsValidProtocol($url)
  140.   {
  141.     if (substr($url07!= 'http://' && substr($url08!= 'https://' && substr($url06!= 'ftp://' && substr($url07!= 'ftps://'return false;
  142.     else return true;
  143.   }
  144.  
  145.   /**
  146.    * resources::_wichType()
  147.    * détermine les tables de la bdd en action
  148.    *
  149.    * @access private
  150.    * @param string $type : type de la ressource Workshop ou publication
  151.    * @param string $resources : type de la ressource
  152.    * @return void 
  153.    */
  154.   function _wichType($type$resources)
  155.   {
  156.     switch ($type{
  157.       case 'WORKSHOP':
  158.         $this->ACTIVE_TYPE = 'W';
  159.         break;
  160.       case 'PUBLICATION':
  161.         $this->ACTIVE_TYPE = 'P';
  162.         break;
  163.       default:
  164.         return "error";
  165.     }
  166.  
  167.     switch ($resources{
  168.       case 'BIBLIO':
  169.         $this->TDB_LIAISON = J_BIBLIO;
  170.         $this->ACTIVE_TABLE = T_BIBLIO_RES;
  171.         break;
  172.       case 'LINK':
  173.         $this->TDB_LIAISON = J_LINK;
  174.         $this->ACTIVE_TABLE = T_LINK_RES;
  175.         break;
  176.       case 'MULTI':
  177.         $this->TDB_LIAISON = J_MULTI;
  178.         $this->ACTIVE_TABLE = T_MULTI_RES;
  179.         break;
  180.       default:
  181.         return "error";
  182.     }
  183.   }
  184.  
  185.  
  186.   /**
  187.    * resources::AddBiblioRes()
  188.    * Ajout d'une nouvelle ressource bibliographique
  189.    *
  190.    * @access public
  191.    * @param array $res_table tableau contenant les infos resources
  192.    * @param int $ID identifiant du père (rattachement)
  193.    * @param string $type 'PUBLICATION' ou 'WORKSHOP'
  194.    * @param object $sql_object 
  195.    * @return integer $last_id
  196.    */
  197.   function AddBiblioRes($ID$res_table$type$sql_object)
  198.   {
  199.     $res_table=$sql_object->DBescape($res_table);
  200.     if ($this->_wichType($type'BIBLIO'== "error"exit();
  201.     $this->B_AUTHOR = strip_input($res_table[0]);
  202.     $this->B_TITLE = strip_input($res_table[1]);
  203.     $this->B_SUBTITLE = strip_input($res_table[2]);
  204.     $this->B_EDITOR = strip_input($res_table[3]);
  205.     $this->B_DATE = strip_input($res_table[4]);
  206.     $this->B_RANGE = $res_table[5];
  207.     $this->B_VALIDITY = 'Y';
  208.     $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 . "');";
  209.     $last_id $sql_object->DBInsert ($requete1);
  210.     if (is_numeric($last_id)) {
  211.       $requete "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  212.       $result $sql_object->DBInsert ($requete);
  213.     }
  214.     return $result;
  215.   }
  216.  
  217.   /**
  218.    * resources::ModifyBiblioRes()
  219.    * modification d'une ressource bibliographique
  220.    *
  221.    * @access public
  222.    * @param int $ID identifiant de la ressource
  223.    * @param object $sql_object 
  224.    * @param array $res_table tableau contenant les infos resources
  225.    * @return bool $result
  226.    */
  227.   function ModifyBiblioRes($ID$res_table$sql_object)
  228.   {
  229.     $res_table=$sql_object->DBescape($res_table);
  230.     $this->B_ID = $ID;
  231.     $this->B_AUTHOR = strip_input($res_table[0]);
  232.     $this->B_TITLE = strip_input($res_table[1]);
  233.     $this->B_SUBTITLE = strip_input($res_table[2]);
  234.     $this->B_EDITOR = strip_input($res_table[3]);
  235.     $this->B_DATE = strip_input($res_table[4]);
  236.     $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 . "';";
  237.     $result $sql_object->DBQuery($requete);
  238.     return $result;
  239.   }
  240.  
  241.   /**
  242.    * resources::DeleteBiblioRes()
  243.    * suppression d'une ressource bibliographique
  244.    *
  245.    * @access public
  246.    * @param int $ID identifiant de la ressource a supprimer
  247.    * @param object $sql_object 
  248.    * @return bool $result
  249.    */
  250.   function DeleteBiblioRes($ID$sql_object)
  251.   {
  252.     if (is_numeric($ID)) {
  253.       $this->B_ID = $ID;
  254.     }
  255.     $requete "UPDATE  " $this->TDB_BIBLIO . " SET bibliores_validity='N' WHERE bibliores_id=" $this->B_ID . ";";
  256.     $result $sql_object->DBQuery($requete);
  257.     return $result;
  258.   }
  259.  
  260.   /**
  261.    * resources::AddLinkRes()
  262.    * Ajout d'une ressource de type lien
  263.    *
  264.    * @access public
  265.    * @param int $ID identifiant du père (rattachement)
  266.    * @param array $res_table tableau contenant les infos ressources
  267.    * @param string $type 'PUBLICATION' ou 'WORKSHOP'
  268.    * @param object $sql_object 
  269.    * @return integer $last_id
  270.    */
  271.   function AddLinkRes($ID$res_table$type$sql_object)
  272.   {
  273.     $res_table=$sql_object->DBescape($res_table);
  274.  
  275.     $notvalidlink _t('resources','invalid_link');
  276.     if ($this->_wichType($type'LINK'== "error"exit;
  277.     $this->L_TEXT = strip_input($res_table[0]);
  278.     if ($res_table[1== ''{
  279.       $this->L_MASK = $this->L_TEXT;
  280.     else {
  281.       $this->L_MASK = strip_input($res_table[1]);
  282.     }
  283.     if (is_numeric($res_table[2])) {
  284.       $this->L_RANGE = $res_table[2];
  285.     }
  286.     $this->L_VALIDITY = 'Y';
  287.     $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 . "');";
  288.     $last_id $sql_object->DBInsert ($requete1);
  289.     if (is_numeric($last_id)) {
  290.       $requete "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  291.       $result $sql_object->DBInsert ($requete);
  292.     }
  293.     return $result;
  294.   }
  295.  
  296.   /**
  297.    * resources::ModifyLinkRes()
  298.    * modification d'une ressource de type lien
  299.    *
  300.    * @access public
  301.    * @param int $ID identifiant de la ressource
  302.    * @param array $res_table tableau contenant les infos ressources
  303.    * @param object $sql_object 
  304.    * @return bool $result
  305.    */
  306.   function ModifyLinkRes($ID$res_table$sql_object)
  307.   {
  308.     $res_table=$sql_object->DBescape($res_table);
  309.  
  310.     $this->L_ID = $ID;
  311.     $this->L_TEXT = strip_input($res_table[0]);
  312.     if ($res_table[1== ''{
  313.       $this->L_MASK = $this->L_TEXT;
  314.     else {
  315.       $this->L_MASK = strip_input($res_table[1]);
  316.     }
  317.     $requete "UPDATE " $this->TDB_LINK . " SET linkres_text='" $this->L_TEXT . "' , linkres_mask='" $this->L_MASK . "' WHERE linkres_id='" $this->L_ID . "';";
  318.     echo $requete;
  319.     $result $sql_object->DBQuery($requete);
  320.     return $result;
  321.   }
  322.  
  323.   /**
  324.    * resources::DeleteLinkRes()
  325.    * suppression d'une ressource de type lien
  326.    *
  327.    * @access public
  328.    * @param int $ID identifiant de la ressource a supprimer
  329.    * @param object $sql_object 
  330.    * @return bool $result
  331.    */
  332.   function DeleteLinkRes($ID$sql_object)
  333.   {
  334.     if (is_numeric($ID)) {
  335.       $this->B_ID = $ID;
  336.     }
  337.     $requete "UPDATE  " $this->TDB_LINK . " SET linkres_validity='N' WHERE linkres_id=" $this->B_ID . ";";
  338.     $result $sql_object->DBQuery($requete);
  339.     return $result;
  340.   }
  341.  
  342.   /**
  343.    * resources::AddMultiRes()
  344.    * Ajout d'une ressource de type multimedia
  345.    *
  346.    * @access public
  347.    * @param int $ID identifiant du père (rattachement)
  348.    * @param array $res_table tableau contenant les infos ressources
  349.    * @param string $type 'PUBLICATION' ou 'WORKSHOP'
  350.    * @param object $sql_object 
  351.    * @return integer $last_id
  352.    */
  353.   function AddMultiRes($ID$res_table$type$sql_object)
  354.   {
  355.     $res_table=$sql_object->DBescape($res_table);
  356.  
  357.     if ($this->_wichType($type'MULTI'== "error"exit;
  358.     $this->M_NAME = strip_input($res_table[0]);
  359.  
  360.     $this->M_DESC = strip_input($res_table[1]);
  361.     $this->M_URI = strip_input($res_table[2]);
  362.     $this->M_RANGE = $res_table[3];
  363.     $this->M_VALIDITY = 'Y';
  364.     $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 . "');";
  365.     $last_id $sql_object->DBInsert ($requete1);
  366.     if (is_numeric($last_id)) {
  367.       $requete "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  368.       $result $sql_object->DBInsert ($requete);
  369.     }
  370.     return $result;
  371.   }
  372.  
  373.   /**
  374.    * resources::ModifyMultiRes()
  375.    * modification d'une ressource de type multimedia
  376.    *
  377.    * @access public
  378.    * @param int $ID identifiant de la ressource
  379.    * @param array $res_table tableau contenant les infos ressources
  380.    * @param object $sql_object 
  381.    * @return bool $result
  382.    */
  383.   function ModifyMultiRes($ID$res_table$sql_object)
  384.   {
  385.     $res_table=$sql_object->DBescape($res_table);
  386.  
  387.     $this->M_ID = $ID;
  388.     $this->M_NAME = strip_input($res_table[0]);
  389.     $this->M_DESC = strip_input($res_table[1]);
  390.     $this->M_URI = strip_input($res_table[2]);
  391.     $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 . "';";
  392.     $result $sql_object->DBQuery($requete);
  393.  
  394.     return $result;
  395.   }
  396.  
  397.   /**
  398.    * resources::changeRanges()
  399.    * changes Resources range
  400.    *
  401.    * @access public
  402.    * @param array : Id (key) and ranges (value)
  403.    * @param object $sql_object 
  404.    * @return bool $result
  405.    */
  406.  
  407.   function changeRanges($array$sql_object$element)
  408.   {
  409.  
  410.     switch ($element{
  411.       case "link":
  412.         $table $this->TDB_LINK;
  413.         break;
  414.       case "biblio":
  415.         $table $this->TDB_BIBLIO;
  416.         break;
  417.       case "multi":
  418.         $table $this->TDB_MULTI;
  419.         break;
  420.     }
  421.     foreach ($array as $key => $value{
  422.       $query "UPDATE " $table " set ".$element."res_range ='".$value."' WHERE ".$element."res_id ='" $key "';";
  423.       $result $sql_object->DBQuery($query);
  424.     }
  425.  
  426.     return $result;
  427.   }
  428.  
  429.   /**
  430.    * resources::DeleteMultiRes()
  431.    * suppression d'une ressource multimedia
  432.    *
  433.    * @access public
  434.    * @param int $ID identifiant de la ressource a supprimer
  435.    * @param object $sql_object 
  436.    * @return bool $result
  437.    */
  438.   function DeleteMultiRes($ID$sql_object)
  439.   {
  440.     if (is_numeric($ID)) {
  441.       $this->M_ID = $ID;
  442.     }
  443.     $requete "UPDATE  " $this->TDB_MULTI . " SET multires_validity='N' WHERE multires_id=" $this->M_ID . ";";
  444.     $result $sql_object->DBQuery($requete);
  445.     return $result;
  446.   }
  447. }
  448.  
  449. ?>

Documentation generated on Thu, 03 May 2012 15:03:01 +0200 by phpDocumentor 1.4.1