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

Source for file class.news.php

Documentation is available at class.news.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage news
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  News Management
  10.  */
  11.  
  12. class news {
  13.   /* @param
  14.    * */
  15.   public $TDB_NEWS = T_NEWS// nom de la table.
  16.   public $ID;
  17.   public $TITLE;
  18.   public $HEADER;
  19.   public $BODY;
  20.   public $THEME;
  21.   public $SCALE;
  22.   public $LEVEL;
  23.   public $RANGE;
  24.   public $POSTED_BY;
  25.   public $POST_DATE;
  26.   public $PUBLISHED_DATE;
  27.   public $PEREMPT_DATE;
  28.   public $IS_NATIONAL;
  29.   public $STATUT;
  30.   protected $dispatcher = null;
  31.  
  32.  
  33.   public function __construct()
  34.   {
  35.     $this->dispatcher = $GLOBALS['dispatcher'];
  36.   }
  37.  
  38.   public function __call($method$arguments)
  39.   {
  40.     $event $this->dispatcher->notifyUntil(new sfEvent($this'news.extensible_function'array(
  41.       'method'    => $method,
  42.       'arguments' => $arguments
  43.     )));
  44.     if (!$event->isProcessed())
  45.     {
  46.       throw new Exception(sprintf('Call to undefined method %s::%s.'get_class($this)$method));
  47.     }
  48.  
  49.     return $event->getReturnValue();
  50.   }
  51.  
  52.  
  53.   /**
  54.    * news::_getDate()
  55.    * date courante et ajout
  56.    *
  57.    * @access private
  58.    * @param int $m chiffre des mois
  59.    * @param int $d chiffre des jours
  60.    * @param int $y chiffre des années
  61.    * @return string $format_date
  62.    * @return 
  63.    */
  64.   private function _getDate($m 0$d 0$y 0)
  65.   {
  66.     $format_date mktime(date("H")date("i")date("s")date("m"$mdate("d"date("Y")-1);
  67.     $format_date strftime('%Y-%m-%d %H:%M:%S'$format_date);
  68.  
  69.     return $format_date;
  70.   }
  71.  
  72.  
  73.   /**
  74.    * news::CheckDataIntegrity()
  75.    * Vérification intégrité des données
  76.    *
  77.    * @access public
  78.    * @param array $table : contient les composants Nécessaires d'une news
  79.    * @return boolean true
  80.    *  si verifié, sinon string 'message d'erreur'
  81.    */
  82.  
  83.   public function CheckDataIntegrity($table)
  84.   {
  85.     $event new sfEvent($this'news.before_data_check');
  86.     $this->dispatcher->filter($event$table);
  87.  
  88.     $table $event->getReturnValue();
  89.  
  90.  
  91.     if (strlen($table[0]3return _t('news','no_title');
  92.     if (strlen($table[1]3return _t('news','no_header');
  93.     if (strlen($table[2]3return _t('news','no_body');
  94.     if ($table[3<= || !is_numeric($table[3])) return _t('news','no_theme');
  95.     if ($table[4<= || !is_numeric($table[4])) return _t('news','no_scale');
  96.  
  97.     $event new sfEvent($this'news.after_data_check'array('data' => $table));
  98.     $this->dispatcher->notify($event);
  99.  
  100.     return true;
  101.   }
  102.  
  103.   /**
  104.    * news::AddNews()
  105.    * Ajout d'une news
  106.    *
  107.    * @access public
  108.    * @param array $table_news : contient les composants d'une news
  109.    * @param object $sql_object 
  110.    * @return integer $last_id
  111.    */
  112.   public function AddNews($table_news$sql_object)
  113.   {
  114.     $table_news=$sql_object->DBescape($table_news);
  115.  
  116.     if ($table_news[0!= ''{
  117.       $this->TITLE = strip_input(trim($table_news[0])true);
  118.     }
  119.     if ($table_news[1!= ''{
  120.       $this->HEADER = strip_input(trim($table_news[1])true);
  121.     }
  122.     if ($table_news[2!= ''{
  123.       $this->BODY = strip_input(trim($table_news[2])true);
  124.     }
  125.     if (is_numeric($table_news[3])) {
  126.       $this->THEME = $table_news[3];
  127.     }
  128.     if (is_numeric($table_news[4])) {
  129.       $this->SCALE = $table_news[4];
  130.     }
  131.     if (is_numeric($table_news[5])) {
  132.       if($table_news[5== -1$table_news[5]=0;
  133.       $this->LEVEL = $table_news[5];
  134.     }
  135.     if (is_numeric($table_news[6])) {
  136.       $this->RANGE = $table_news[6];
  137.     }
  138.     if (is_numeric($table_news[7])) {
  139.       $this->POSTED_BY = $table_news[7];
  140.     }
  141.     if ($table_news[9!= ''{
  142.       $this->IS_NATIONAL = strtoupper($table_news[9]);
  143.     }
  144.     if ($table_news[10!= ''{
  145.       $this->STATUT = strtoupper($table_news[10]);
  146.     }
  147.     if ($this->STATUT == 'P'{
  148.       $this->PUBLISHED_DATE = $this->_getDate();
  149.       if ($table_news[8!= ''{
  150.         $this->PEREMPT_DATE = $table_news[8];
  151.       else {
  152.         $this->PEREMPT_DATE = '0001-01-01';
  153.       }
  154.     else {
  155.       $this->PUBLISHED_DATE = '0001-01-01';
  156.       $this->PEREMPT_DATE = '0001-01-01';
  157.     }
  158.     $requete "INSERT INTO " $this->TDB_NEWS . " (news_title, news_header, news_body, news_theme, news_scale, " "news_level, news_range, news_posted_by, news_published_date, " "news_perempt_date, news_is_national, news_statut, news_date_crea) " "VALUES('" $this->TITLE . "', '" $this->HEADER . "', '" $this->BODY . "', " $this->THEME . ", " $this->SCALE . ", " $this->LEVEL . ", " $this->RANGE . ", " $this->POSTED_BY . ", '" $this->PUBLISHED_DATE . "' , '" $this->PEREMPT_DATE . "', '" $this->IS_NATIONAL . "', '" $this->STATUT . "', now());";
  159.  
  160.     $last_id $sql_object->DBInsert ($requete1);
  161.     return $last_id;
  162.   }
  163.  
  164.   /**
  165.    * news::DeleteNews()
  166.    * suppression d'une news
  167.    *
  168.    * @access public
  169.    * @param int $ID : identifiant de la news
  170.    * @param object $sql_object 
  171.    * @return bool $result
  172.    */
  173.  
  174.   public function DeleteNews($ID$sql_object)
  175.   {
  176.     $this->ID = $ID;
  177.     $requete "UPDATE  " $this->TDB_NEWS . " set news_statut='E', news_last_modify=NOW() WHERE news_id='" $this->ID . "';";
  178.     $result $sql_object->DBQuery($requete);
  179.     return $result;
  180.   }
  181.  
  182.   /**
  183.    * news::ModifyNews()
  184.    * modification d'une news
  185.    *
  186.    * @access public
  187.    * @param integer $ID : identifiant de la news
  188.    * @param object $sql_object 
  189.    * @param array $table_news : contient les composants d'une news
  190.    * @return boolean $result
  191.    */
  192.   public function ModifyNews($ID$table_news$sql_object)
  193.   {
  194.  
  195.     $table_news=$sql_object->DBescape($table_news);
  196.     if (is_numeric($ID)) {
  197.       $this->ID = $ID;
  198.     }
  199.     if ($table_news[0!= ''{
  200.       $this->TITLE = strip_input(trim($table_news[0])true);
  201.     }
  202.     if ($table_news[1!= ''{
  203.       $this->HEADER = strip_input(trim($table_news[1])true);
  204.     }
  205.     if ($table_news[2!= ''{
  206.       $this->BODY = strip_input(trim($table_news[2])true);
  207.     }
  208.     if (is_numeric($table_news[3])) {
  209.       $this->THEME = $table_news[3];
  210.     }
  211.     if (is_numeric($table_news[4])) {
  212.       $this->SCALE = $table_news[4];
  213.     }
  214.     if (is_numeric($table_news[5])) {
  215.       if($table_news[5== -1$table_news[5]=0;
  216.       $this->LEVEL = $table_news[5];
  217.     }
  218.     if ($table_news[6!= ''{
  219.       $this->STATUT = $table_news[6];
  220.     }
  221.  
  222.     $mask $this->_HavePublishedDate($table_news[9]);
  223.  
  224.     $requete "UPDATE  " $this->TDB_NEWS . " set news_title='" $this->TITLE . "', news_header='" $this->HEADER . "', news_body='" $this->BODY . "' , news_theme='" $this->THEME . "', news_scale='" $this->SCALE . "', news_level='" $this->LEVEL . "', news_statut='" $this->STATUT . "', news_last_modify=NOW() " $mask " WHERE news_id='" $this->ID . "';";
  225.     $result $sql_object->DBQuery($requete);
  226.     return $result;
  227.   }
  228.   
  229.   /**
  230.    * news::changeRanges()
  231.    * changes News range
  232.    *
  233.    * @access public
  234.    * @param array : Id (key) and ranges (value)
  235.    * @param object $sql_object 
  236.    * @return bool $result
  237.    */
  238.  
  239.   function changeRanges($array$sql_object)
  240.   {
  241.  
  242.     foreach ($array as $key => $value{
  243.       $query "UPDATE " $this->TDB_NEWS . " set news_range='".$value."' WHERE news_id='" $key "';";
  244.       $result $sql_object->DBQuery($query);
  245.     }
  246.  
  247.     return $result;
  248.   }
  249.  
  250.   /**
  251.    * news::_HavePublishedDate()
  252.    * Détermine la date de publication a inserer dans la bdd
  253.    *
  254.    * @access private
  255.    * @param string $current_status : statut actuel de l'actualité
  256.    * @return string $sql_mask
  257.    */
  258.   private function _HavePublishedDate($current_status)
  259.   {
  260.     switch ($this->STATUT{
  261.       case 'P':
  262.         if ($current_status == 'D'$sql_mask ", news_published_date= NOW()";
  263.         else $sql_mask '';
  264.         break;
  265.       case 'D':
  266.         $sql_mask ", news_published_date= '0001-01-01'";
  267.         break;
  268.       default:
  269.         $sql_mask '';
  270.     }
  271.     return $sql_mask;
  272.   }
  273. }
  274.  
  275. ?>

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