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 = "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.  
  34.   /**
  35.    * news::CheckDataIntegrity()
  36.    * Vérification intégrité des données
  37.    *
  38.    * @access public
  39.    * @param array $table : contient les composants Nécessaires d'une newsletter
  40.    * @return boolean true
  41.    *  si verifié, sinon string 'message d'erreur'
  42.    */
  43.  
  44.   function CheckDataIntegrity($table)
  45.   {
  46.     if (strlen($table[0]3return _t('newsletter','no_title');
  47.     if (strlen($table[1]3return _t('newsletter','no_body');
  48.  
  49.     return true;
  50.   }
  51.  
  52.   /**
  53.    * newsletter::_checkEmailValidity()
  54.    * Vérification de la validité d'un email
  55.    *
  56.    * @access private
  57.    * @param string $email 
  58.    * @return bool true ou string ( erreur )
  59.    */
  60.   function _checkEmailValidity($email)
  61.   {
  62.     $email strtolower($email);
  63.     $emailinvalide _t('newsletter','invalid_mail'" :'" $email "'";
  64.     if (strlen($email|| !ereg("@"$email|| preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i"$email$trouve|| !preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i"$email)) {
  65.       return $emailinvalide;
  66.     }
  67.     return true;
  68.   }
  69.  
  70.   /**
  71.    * newsletter::AddNewsletter()
  72.    * Ajout d'une newsletter
  73.    *
  74.    * @access public
  75.    * @param array $table_newsletter : contient les composants d'une newsletter
  76.    * @param object $sql_object 
  77.    * @return integer $last_id
  78.    */
  79.   function AddNewsletter($table_newsletter$sql_object)
  80.   {
  81.     $table_newsletter=$sql_object->DBescape($table_newsletter);
  82.     if ($table_newsletter[0!= ''{
  83.       $this->TITLE = strip_input(trim($table_newsletter[0]));
  84.     }
  85.     if ($table_newsletter[1!= ''{
  86.       $this->BODY = strip_input(trim($table_newsletter[1])true);
  87.     }
  88.     if (is_numeric($table_newsletter[2])) {
  89.       $this->POSTED_BY = $table_newsletter[2];
  90.     }
  91.     $this->STATUT = $table_newsletter[3];
  92.      
  93.     $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 . "');";
  94.     
  95.     $last_id $sql_object->DBInsert ($requete1);
  96.     return $last_id;
  97.   }
  98.  
  99.   /**
  100.    * newsletter::DeleteNewsletter()
  101.    * suppression d'une newsletter
  102.    *
  103.    * @access public
  104.    * @param int $ID : identifiant de la newsletter
  105.    * @param object $sql_object 
  106.    * @return bool $result
  107.    */
  108.  
  109.   function DeleteNewsletter($ID$sql_object)
  110.   {
  111.     $this->ID = $ID;
  112.     $requete "UPDATE  " $this->TDB_NEWSLETTER . " set newsletter_statut='E', newsletter_last_modify=NOW() WHERE newsletter_id='" $this->ID . "';";
  113.     $result $sql_object->DBQuery($requete);
  114.     return $result;
  115.   }
  116.  
  117.   /**
  118.    * newsletter::SetNewsletterPublished()
  119.    * rend une newsletter publié
  120.    *
  121.    * @access public
  122.    * @param int $ID : identifiant de la newsletter
  123.    * @param object $sql_object 
  124.    * @return bool $result
  125.    */
  126.  
  127.   function SetNewsletterPublished($ID$sql_object)
  128.   {
  129.     $this->ID = $ID;
  130.     $requete "UPDATE " $this->TDB_NEWSLETTER . " set newsletter_statut='P', newsletter_published_date=NOW() WHERE newsletter_id='" $this->ID . "' LIMIT 1;";
  131.     $result $sql_object->DBQuery($requete);
  132.     return $result;
  133.   }
  134.  
  135.   /**
  136.    * newsletter::ModifyNewsletter()
  137.    * modification d'une newsletter
  138.    *
  139.    * @access public
  140.    * @param integer $ID : identifiant de la news
  141.    * @param object $sql_object 
  142.    * @param array $table_newsletter : contient les composants d'une newsletter
  143.    * @return boolean $result
  144.    */
  145.   function ModifyNewsletter($ID$table_newsletter$sql_object)
  146.   {
  147.     $table_newsletter=$sql_object->DBescape($table_newsletter);
  148.     if (is_numeric($ID)) {
  149.       $this->ID = $ID;
  150.     }
  151.     if ($table_newsletter[0!= ''{
  152.       $this->TITLE = strip_input(trim($table_newsletter[0]));
  153.     }
  154.     if ($table_newsletter[1!= ''{
  155.       $this->BODY = strip_input(trim($table_newsletter[1])true);
  156.     }
  157.     $this->STATUT = $table_newsletter[2];
  158.  
  159.     $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 . "';";
  160.     $result $sql_object->DBQuery($requete);
  161.     return $result;
  162.   }
  163.  
  164.  
  165.   /**
  166.    * newsletter::AddEmail()
  167.    * Ajout d'un email dans le collecteur
  168.    * @access public
  169.    * @param  string $email email a ajouter
  170.    * @param object $sql_object 
  171.    * @return string $result
  172.    ***/
  173.   function AddEmail($email$sql_object)
  174.   {
  175.     $result $this -> _checkEmailValidity($email);
  176.     if (is_string($result)) return  array('code' => 'error''string' => $result);
  177.     $this -> E_EMAIL = strtolower($email);
  178.     $requete "SELECT emailcol_id, emailcol_validity FROM " $this -> TDB_COLLECTOR . " WHERE emailcol_email='" $this -> E_EMAIL . "';";
  179.     $data $sql_object -> DBSelect($requete);
  180.     if ($data!=&& count($data== 1{
  181.       $this -> E_ID = $data[0]['emailcol_id'];
  182.       if ($data[0]['emailcol_validity']== "Y"{
  183.         return array('code' => 'info''string' => _t('newsletter','subscribe_yet'));
  184.       else {
  185.         $requete "UPDATE " $this -> TDB_COLLECTOR . " SET emailcol_validity='Y' WHERE emailcol_id=" $this -> E_ID . ";";
  186.         if ($sql_object -> DBQuery($requete)) return array('code' => 'confirm''string' => _t('newsletter','confirm_subscribe'));
  187.       }
  188.     else {
  189.       $requete "INSERT INTO " $this -> TDB_COLLECTOR . " (emailcol_email,  emailcol_validity, emailcol_date_crea) " "VALUES('" $this -> E_EMAIL . "', 'Y', NOW());";
  190.       $last_id $sql_object -> DBInsert ($requete1);
  191.       if (is_numeric($last_id)) return array('code' => 'confirm''string' => _t('newsletter','confirm_subscribe'));
  192.     }
  193.   }
  194.  
  195.  
  196.   /**
  197.    * newsletter::DeleteEmail()
  198.    * Suppression d'un email du collecteur
  199.    * @access public
  200.    * @param  string $email email a supprimer
  201.    * @param object $sql_object 
  202.    * @return string $result
  203.    ***/
  204.   function DeleteEmail($email$sql_object)
  205.   {
  206.     $result $this -> _checkEmailValidity($email);
  207.     if (is_string($result)) return  array('code' => 'error''string' => $result);
  208.     $this -> E_EMAIL = strtolower($email);
  209.     $requete "SELECT emailcol_id FROM " $this -> TDB_COLLECTOR . " WHERE emailcol_email='" $this -> E_EMAIL . "' AND emailcol_validity='Y';";
  210.     $data$sql_object -> DBSelect($requete);
  211.     if ($data!=&& count($data== 1{
  212.       $this -> E_ID = $data[0]['emailcol_id'];
  213.       $requete "UPDATE " $this -> TDB_COLLECTOR . " SET emailcol_validity='N' WHERE emailcol_id=" $this -> E_ID . ";";
  214.       if ($sql_object -> DBQuery($requete)) return array('code' => 'confirm''string' => _t('newsletter','confirm_del'));
  215.     else {
  216.       return array'code' => 'info''string' => _t('newsletter','no_suscribe'));
  217.     }
  218.   }
  219.  
  220. }
  221.  
  222. ?>

Documentation generated on Fri, 16 Oct 2009 09:29:31 +0200 by phpDocumentor 1.4.1