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

Source for file class.newsletter.php

Documentation is available at class.newsletter.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage newsletter
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  Newsletter Management
  10.  */
  11.  
  12. class newsletter {
  13.   /* @param
  14.    * */
  15.   var $TDB_NEWSLETTERT_NEWSLETTER// nom de la table.
  16.   var $TDB_COLLECTOR = T_EMAIL_COL// nom de la table.
  17.   var $URI_TEMPLATE = "../newsletter/input/template"// chemin du template de mail
  18.   var $URI_ELEMENTS = "elements/"// repertoire stockage élements newsletter
  19.   var $ID;
  20.   var $TITLE;
  21.   var $BODY;
  22.   var $POSTED_BY;
  23.   var $DATE_CREA;
  24.   var $LAST_MODIFY;
  25.   var $PUBLISHED_DATE;
  26.   var $STATUT;
  27.  
  28.   var $E_ID;
  29.   var $E_EMAIL;
  30.   var $E_STATUT;
  31.   var $E_DATE_CREA;
  32.   var $E_LAST_MODIFY;
  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'newsletter.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.   /**
  55.    * news::CheckDataIntegrity()
  56.    * Vérification intégrité des données
  57.    *
  58.    * @access public
  59.    * @param array $table : contient les composants Nécessaires d'une newsletter
  60.    * @return boolean true
  61.    *  si verifié, sinon string 'message d'erreur'
  62.    */
  63.  
  64.   function CheckDataIntegrity($table)
  65.   {
  66.     if (strlen($table[0]3return _t('newsletter','no_title');
  67.     if (strlen($table[1]50return _t('newsletter','no_body')
  68.  
  69.     return true;
  70.   }
  71.  
  72.   /**
  73.    * newsletter::_checkEmailValidity()
  74.    * Vérification de la validité d'un email
  75.    *
  76.    * @access private
  77.    * @param string $email 
  78.    * @return bool true ou string ( erreur )
  79.    */
  80.   function _checkEmailValidity($email)
  81.   {
  82.  
  83.     $is_valid validEmail($email);
  84.  
  85.     if(!$is_valid{
  86.       return _t('newsletter','invalid_mail'" :'" $email "'";
  87.     else {
  88.       return true;
  89.     }
  90.   }
  91.  
  92.   /**
  93.    * newsletter::AddNewsletter()
  94.    * Ajout d'une newsletter
  95.    *
  96.    * @access public
  97.    * @param array $table_newsletter : contient les composants d'une newsletter
  98.    * @param object $sql_object 
  99.    * @return integer $last_id
  100.    */
  101.   function AddNewsletter($table_newsletter$sql_object)
  102.   {
  103.     $table_newsletter=$sql_object->DBescape($table_newsletter);
  104.     if ($table_newsletter[0!= ''{
  105.       $this->TITLE = strip_input(trim($table_newsletter[0]));
  106.     }
  107.     if ($table_newsletter[1!= ''{
  108.       $this->BODY = strip_input(trim($table_newsletter[1])true);
  109.     }
  110.     if (is_numeric($table_newsletter[2])) {
  111.       $this->POSTED_BY = $table_newsletter[2];
  112.     }
  113.     $this->STATUT = $table_newsletter[3];
  114.      
  115.     $requete "INSERT INTO " $this->TDB_NEWSLETTER . " (newsletter_title, newsletter_body, newsletter_posted_by, newsletter_date_crea , newsletter_last_modify, newsletter_statut) VALUES('" $this->TITLE . "', '" $this->BODY . "', '" $this->POSTED_BY . "', NOW() , NOW(), '" $this->STATUT . "');";
  116.  
  117.     $last_id $sql_object->DBInsert ($requete1);
  118.     return $last_id;
  119.   }
  120.  
  121.   /**
  122.    * newsletter::DeleteNewsletter()
  123.    * suppression d'une newsletter
  124.    *
  125.    * @access public
  126.    * @param int $ID : identifiant de la newsletter
  127.    * @param object $sql_object 
  128.    * @return bool $result
  129.    */
  130.  
  131.   function DeleteNewsletter($ID$sql_object)
  132.   {
  133.     $this->ID = $ID;
  134.     $requete "UPDATE  " $this->TDB_NEWSLETTER . " set newsletter_statut='E', newsletter_last_modify=NOW() WHERE newsletter_id='" $this->ID . "';";
  135.     $result $sql_object->DBQuery($requete);
  136.     return $result;
  137.   }
  138.  
  139.   /**
  140.    * newsletter::SetNewsletterPublished()
  141.    * rend une newsletter publié
  142.    *
  143.    * @access public
  144.    * @param int $ID : identifiant de la newsletter
  145.    * @param object $sql_object 
  146.    * @return bool $result
  147.    */
  148.  
  149.   function SetNewsletterPublished($ID$sql_object)
  150.   {
  151.     $this->ID = $ID;
  152.     $requete "UPDATE " $this->TDB_NEWSLETTER . " set newsletter_statut='P', newsletter_published_date=NOW() WHERE newsletter_id='" $this->ID . "' LIMIT 1;";
  153.     $result $sql_object->DBQuery($requete);
  154.     return $result;
  155.   }
  156.  
  157.   /**
  158.    * newsletter::ModifyNewsletter()
  159.    * modification d'une newsletter
  160.    *
  161.    * @access public
  162.    * @param integer $ID : identifiant de la news
  163.    * @param object $sql_object 
  164.    * @param array $table_newsletter : contient les composants d'une newsletter
  165.    * @return boolean $result
  166.    */
  167.   function ModifyNewsletter($ID$table_newsletter$sql_object)
  168.   {
  169.     $table_newsletter=$sql_object->DBescape($table_newsletter);
  170.     if (is_numeric($ID)) {
  171.       $this->ID = $ID;
  172.     }
  173.     if ($table_newsletter[0!= ''{
  174.       $this->TITLE = strip_input(trim($table_newsletter[0]));
  175.     }
  176.     if ($table_newsletter[1!= ''{
  177.       $this->BODY = strip_input(trim($table_newsletter[1])true);
  178.     }
  179.     $this->STATUT = $table_newsletter[2];
  180.  
  181.     $requete "UPDATE  " $this->TDB_NEWSLETTER . " set newsletter_title='" $this->TITLE . "', newsletter_body='" $this->BODY . "' , newsletter_statut='" $this->STATUT . "', newsletter_last_modify=NOW() WHERE newsletter_id='" $this->ID . "';";
  182.     $result $sql_object->DBQuery($requete);
  183.     return $result;
  184.   }
  185.  
  186.  
  187.   /**
  188.    * newsletter::AddEmail()
  189.    * Ajout d'un email dans le collecteur
  190.    * @access public
  191.    * @param  string $email email a ajouter
  192.    * @param object $sql_object 
  193.    * @return string $result
  194.    ***/
  195.   function AddEmail($email$sql_object)
  196.   {
  197.     $result $this -> _checkEmailValidity($email);
  198.     if (is_string($result)) return  array('code' => 'error''string' => $result);
  199.     $this -> E_EMAIL = strtolower($email);
  200.     $requete "SELECT emailcol_id, emailcol_validity FROM " $this -> TDB_COLLECTOR . " WHERE emailcol_email='" $this -> E_EMAIL . "';";
  201.     $data $sql_object -> DBSelect($requete);
  202.     if ($data!=&& count($data== 1{
  203.       $this -> E_ID = $data[0]['emailcol_id'];
  204.       if ($data[0]['emailcol_validity']== "Y"{
  205.         return array('code' => 'info''string' => _t('newsletter','subscribe_yet'));
  206.       else {
  207.         $requete "UPDATE " $this -> TDB_COLLECTOR . " SET emailcol_validity='Y' WHERE emailcol_id=" $this -> E_ID . ";";
  208.         if ($sql_object -> DBQuery($requete)) return array('code' => 'confirm''string' => _t('newsletter','confirm_subscribe'));
  209.       }
  210.     else {
  211.       $requete "INSERT INTO " $this -> TDB_COLLECTOR . " (emailcol_email,  emailcol_validity, emailcol_date_crea) " "VALUES('" $this -> E_EMAIL . "', 'Y', NOW());";
  212.       $last_id $sql_object -> DBInsert ($requete1);
  213.       if (is_numeric($last_id)) return array('code' => 'confirm''string' => _t('newsletter','confirm_subscribe'));
  214.     }
  215.   }
  216.  
  217.  
  218.   /**
  219.    * newsletter::DeleteEmail()
  220.    * Suppression d'un email du collecteur
  221.    * @access public
  222.    * @param  string $email email a supprimer
  223.    * @param object $sql_object 
  224.    * @return string $result
  225.    ***/
  226.   function DeleteEmail($email$sql_object)
  227.   {
  228.     $result $this -> _checkEmailValidity($email);
  229.     if (is_string($result)) return  array('code' => 'error''string' => $result);
  230.     $this -> E_EMAIL = strtolower($email);
  231.     $requete "SELECT emailcol_id FROM " $this -> TDB_COLLECTOR . " WHERE emailcol_email='" $this -> E_EMAIL . "' AND emailcol_validity='Y';";
  232.     $data$sql_object -> DBSelect($requete);
  233.     if ($data!=&& count($data== 1{
  234.       $this -> E_ID = $data[0]['emailcol_id'];
  235.       $requete "UPDATE " $this -> TDB_COLLECTOR . " SET emailcol_validity='N' WHERE emailcol_id=" $this -> E_ID . ";";
  236.       if ($sql_object -> DBQuery($requete)) return array('code' => 'confirm''string' => _t('newsletter','confirm_del'));
  237.     else {
  238.       return array'code' => 'info''string' => _t('newsletter','no_suscribe'));
  239.     }
  240.   }
  241.  
  242. }
  243.  
  244. ?>

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