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

Source for file class.contents.php

Documentation is available at class.contents.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage content
  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.  *  Content Management
  11.  */
  12.  
  13. class contents {
  14.   /* @param
  15.    * */
  16.   var $TDB_LIAISON = J_PARTS;
  17.   var $ACTIVE_TABLE;
  18.   var $ACTIVE_TYPE// valeur 'P' || 'W'
  19.   var $WR_ID;
  20.   var $WR_TITLE;
  21.   var $WR_BODY;
  22.   var $WR_DATE_CREA;
  23.   var $WR_LAST_MODIFY;
  24.   var $WR_TABLE = T_WORK_REP_CONT;
  25.  
  26.   var $P_ID;
  27.   var $P_TITLE;
  28.   var $P_BODY;
  29.   var $P_DATE_CREA;
  30.   var $P_LAST_MODIFY;
  31.   var $P_TABLE = T_PUBLI_CONT;
  32.  
  33.   protected $dispatcher = null;
  34.  
  35.   public function __construct()
  36.   {
  37.     $this->dispatcher = $GLOBALS['dispatcher'];
  38.   }
  39.  
  40.   public function __call($method$arguments)
  41.   {
  42.     $event $this->dispatcher->notifyUntil(new sfEvent($this'contents.extensible_function'array(
  43.       'method'    => $method,
  44.       'arguments' => $arguments
  45.     )));
  46.     if (!$event->isProcessed())
  47.     {
  48.       throw new Exception(sprintf('Call to undefined method %s::%s.'get_class($this)$method));
  49.     }
  50.  
  51.     return $event->getReturnValue();
  52.   }
  53.   /**
  54.    * contents::CheckDataIntegrity()
  55.    * vérifie l'integrité d'un partie avant Insertion
  56.    *
  57.    * @access public
  58.    * @param array $table contient les composants d'une partie
  59.    * @param string $type 'P', 'W'
  60.    * @return boolean true
  61.    *  si verifié, sinon string 'message d'erreur'
  62.    */
  63.   function CheckDataIntegrity($table$type)
  64.   {
  65.     if (strlen($table[0]2return _t('contents','no_title');
  66.     if (strlen($table[1]10return _t('contents','no_body');
  67.  
  68.     return true;
  69.   }
  70.  
  71.  
  72.   /**
  73.    * contents::_wichType()
  74.    * initialisation des tables SQL
  75.    *
  76.    * @access private
  77.    * @param string $type : type du CONTENU 'WORKSHOP' ou 'PUBLICATION'
  78.    * @return string -void
  79.    */
  80.   function _wichType($type)
  81.   {
  82.     switch ($type{
  83.       case 'WORKSHOP':
  84.         $this->ACTIVE_TABLE = $this->WR_TABLE;
  85.         $this->ACTIVE_TYPE = 'W';
  86.         break;
  87.       case 'PUBLICATION':
  88.         $this->ACTIVE_TABLE = $this->P_TABLE;
  89.         $this->ACTIVE_TYPE = 'P';
  90.         break;
  91.       default:
  92.         return "error";
  93.     }
  94.   }
  95.  
  96.   /**
  97.    * contents::AddContents()
  98.    * ajout d'une partie de contenu
  99.    *
  100.    * @access public
  101.    * @param integer $ID identifiant du père (rattachement)
  102.    * @param array $contents_table tableau contenant les infos ressources
  103.    * @param string $type 'WORKSHOP' ou 'PUBLICATION'
  104.    * @param object 
  105.    * @return integer $last_id
  106.    */
  107.   function AddContents($ID$contents_table$type$sql_object)
  108.   {
  109.     $contents_table=$sql_object->DBescape($contents_table);
  110.     if ($this->_wichType($type== "error"exit;
  111.     $q "INSERT INTO " $this->ACTIVE_TABLE ;
  112.     if ($type == "WORKSHOP"{
  113.       $this->WR_TITLE = strip_input($contents_table[0]);
  114.       $this->WR_BODY = strip_input($contents_table[1]true);
  115.       $q.= " (workrepcon_title, workrepcon_body, workrepcon_date_crea, workrepcon_last_modify, workrepcon_validity)";
  116.       $q .= " VALUES('" $this->WR_TITLE . "', '" $this->WR_BODY . "', NOW(),NOW(), 'Y');";
  117.     }
  118.     if ($type == "PUBLICATION"{
  119.       $this->P_TITLE = strip_input($contents_table[0]);
  120.       $this->P_BODY = strip_input($contents_table[1]true);
  121.       
  122.       $q.= " (publicon_title, publicon_body, publicon_date_crea, publicon_last_modify, publicon_validity)";
  123.       $q .= " VALUES('" $this->P_TITLE . "', '" $this->P_BODY . "', NOW(),NOW(), 'Y');";
  124.     }
  125.     $last_id $sql_object->DBInsert ($q1);
  126.  
  127.     if (is_numeric($last_id)) {
  128.       $q "INSERT INTO " $this->TDB_LIAISON . " VALUES(" $ID "," $last_id ", '" $this->ACTIVE_TYPE . "');";
  129.       $result $sql_object->DBInsert ($q);
  130.     }
  131.     return $result;
  132.   }
  133.  
  134.   /**
  135.    * contents::ModifyContents()
  136.    * modification d'une partie de contenu
  137.    *
  138.    * @access public
  139.    * @param integer $ID : identifiant de la partie à modifier
  140.    * @param array $contents_table : tableau contenant les infos ressources
  141.    * @param string $type 'WORKSHOP' ou 'PUBLICATION'
  142.    * @param object $sql_object 
  143.    * @return boolean $result
  144.    */
  145.   function ModifyContents($ID$contents_table$type$sql_object)
  146.   {
  147.     $contents_table=$sql_object->DBescape($contents_table);
  148.     if ($this->_wichType($type== "error"exit;
  149.     if (!is_numeric($ID)) return false;
  150.     if ($type == "WORKSHOP"$this->WR_ID = $ID;
  151.     if ($type == "PUBLICATION"$this->P_ID = $ID;
  152.  
  153.     $q "UPDATE " $this->ACTIVE_TABLE . " SET ";
  154.     if ($type == "WORKSHOP"{
  155.       $this->WR_TITLE = strip_input($contents_table[0]);
  156.       $this->WR_BODY = strip_input($contents_table[1]true);
  157.       $q .= "workrepcon_title='" $this->WR_TITLE . "', workrepcon_body='" $this->WR_BODY . "', workrepcon_last_modify=NOW() WHERE workrepcon_id='" $this->WR_ID . "';";
  158.     }
  159.     if ($type == "PUBLICATION"{
  160.       $this->P_TITLE = strip_input($contents_table[0]);
  161.       $this->P_BODY = strip_input($contents_table[1]true);
  162.  
  163.       $q .= "publicon_title='" $this->P_TITLE . "', publicon_body='" $this->P_BODY . "', publicon_last_modify=NOW() WHERE publicon_id='" $this->P_ID . "';";
  164.     }
  165.     $result $sql_object->DBQuery($q);
  166.  
  167.     return $result;
  168.   }
  169.  
  170.   /**
  171.    * contents::changeRanges()
  172.    * changes contents range
  173.    *
  174.    * @access public
  175.    * @param array : Id (key) and ranges (value)
  176.    * @param object $sql_object 
  177.    * @return bool $result
  178.    */
  179.  
  180.   function changeRanges($array$sql_object$element)
  181.   {
  182.  
  183.     switch ($element{
  184.       case "publication":
  185.         $table $this->P_TABLE;
  186.         $field_id 'publicon_id';
  187.         $field_range 'publicon_range';
  188.         break;
  189.       case "workshop":
  190.         $table $this->WR_TABLE;
  191.         $field_id 'workrepcon_id';
  192.         $field_range 'workrepcon_range';
  193.         break;
  194.     }
  195.     foreach ($array as $key => $value{
  196.       $query "UPDATE " $table " set ".$field_range." ='".$value."' WHERE ".$field_id." ='" $key "';";
  197.       $result $sql_object->DBQuery($query);
  198.     }
  199.  
  200.     return $result;
  201.   }
  202.  
  203.   /**
  204.    * contents::DeleteContents()
  205.    * suppression d'une partie
  206.    *
  207.    * @access public
  208.    * @param integer $ID : identifiant du contents a supprimer
  209.    * @param string $type :  'WORKSHOP' ou 'PUBLICATION'
  210.    * @param object $sql_object 
  211.    * @return boolean $result
  212.    */
  213.   function DeleteContents($ID$type$sql_object)
  214.   {
  215.     if (is_numeric($ID)) {
  216.       if ($type == "WORKSHOP"{
  217.         $champ1 "workrepcon_id";
  218.         $champ2 "jwp_contents_id";
  219.         $champ3 "workrepcon_validity";
  220.         $champ4 "workrepcon_last_modify";
  221.       }
  222.       if ($type == "PUBLICATION"{
  223.         $champ1 "publicon_id";
  224.         $champ2 "jpp_contents_id";
  225.         $champ3 "publicon_validity";
  226.         $champ4 "publicon_last_modify";
  227.       }
  228.     else return false;
  229.     if ($this->_wichType($type== "error"return false;
  230.     $q "UPDATE " $this->ACTIVE_TABLE . " SET " $champ3 "='N', ".$champ4."=NOW()  WHERE " $champ1 "='" $ID "';";
  231.     $result $sql_object->DBQuery($q);
  232.  
  233.     return $result;
  234.   }
  235. }
  236.  
  237. ?>

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