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

Source for file class.yellowpages.php

Documentation is available at class.yellowpages.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage yellowpages
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  Yellowpages Management
  10.  */
  11.  
  12. class yellowpages {
  13.   /* @param
  14.    * */
  15.   var $TDB_YELLOWPAGES = T_YELLOWPAGES// nom de la table.
  16.   var $ID;
  17.   var $NAME;
  18.   var $ACTIVITY;
  19.   var $THEME;
  20.   var $STREET;
  21.   var $POSTAL_CODE;
  22.   var $CITY;
  23.   var $COUNTRY;
  24.   var $PHONE;
  25.   var $FAX;
  26.   var $EMAIL;
  27.   var $WEBSITE;
  28.   var $LONG = 0;
  29.   var $LAT = 0;
  30.   var $DATE_CREA;
  31.   var $LAST_MODIFY;
  32.   var $STATUT;
  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'yellowpages.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.    * yellowpages::CheckDataIntegrity()
  56.    * Vérification des données d'une entreprise
  57.    *
  58.    * @access public
  59.    * @param array $table_yp : contient les composants d'une entreprise
  60.    * @return boolean si ok renvoie true sinon message d'erreurs (string)
  61.    */
  62.   function CheckDataIntegrity($table)
  63.   {
  64.  
  65.     if (strlen($table[0]2return _t('yp','object_notname');
  66.     if (strlen($table[1]2return _t('yp','object_notactivity');
  67.     if (strlen($table[3]2return _t('yp','object_notstreet');
  68.     if (strlen($table[4]2return _t('yp','object_notpostal_code');
  69.     if (strlen($table[5]2return _t('yp','object_notcity');
  70.     //if (strlen($table[6]) < 2) return $notcountry;
  71.     $testmail $this->_checkEmailValidity($table[9]);
  72.     if ($testmail===falsereturn _t('yp','object_notemail');
  73.  
  74.     if (strlen($table[10]10{
  75.       if (!$this->IsValidProtocol($table[10])) return _t('yp','invalid_protocol');
  76.     }
  77.  
  78.     if (trim($table[7]!= '' && !is_numeric($table[7])) return _t('yp','object_notphone');
  79.     if (trim($table[8]!= '' && !is_numeric($table[8])) return _t('yp','object_notfax');
  80.     return true;
  81.   }
  82.  
  83.   /**
  84.    * yellowpages::_checkEmailValidity()
  85.    * Vérification de la grammaire du mail
  86.    *
  87.    * @access private
  88.    * @param string $email 
  89.    * @return int 1 ou 0
  90.    */
  91.   function _checkEmailValidity($email)
  92.   {
  93.     return validEmail($email);
  94.   }
  95.  
  96.   /**
  97.    * resources::IsValidProtocol()
  98.    * vérifie si une url donnée a un protocole reconnu par un client web standard
  99.    *
  100.    * @access public
  101.    * @param array $url : chemin absolu
  102.    * @return boolean 
  103.    */
  104.   function IsValidProtocol($url)
  105.   {
  106.     if (substr($url07!= 'http://' && substr($url08!= 'https://' && substr($url06!= 'ftp://' && substr($url07!= 'ftps://'return false;
  107.     else return true;
  108.   }
  109.  
  110.   /**
  111.    * yellowpages::AddYellowPages()
  112.    * Ajout d'une nouvelle entreprise dans l'annuaire
  113.    *
  114.    * @access public
  115.    * @param array $table contient les composants d'une organisation
  116.    * @param object $sql_object 
  117.    * @return integer $last_id
  118.    */
  119.   function AddYellowPages($table$sql_object)
  120.   {
  121.     $table=$sql_object->DBescape($table);
  122.  
  123.     $this->NAME = strip_input($table[0]);
  124.     $this->ACTIVITY = strip_input($table[1]);
  125.     $this->THEME = $table[2];
  126.     $this->STREET = strip_input($table[3]);
  127.     $this->POSTAL_CODE = strip_input($table[4]);
  128.     $this->CITY = strip_input($table[5]);
  129.     $this->COUNTRY = strip_input($table[6]);
  130.     $this->PHONE = strip_input($table[7]);
  131.     $this->FAX = strip_input($table[8]);
  132.     $this->EMAIL = strip_input($table[9]);
  133.     $this->WEBSITE = strip_input($table[10]);
  134.  
  135.     if ($table[11!= ''{
  136.       $table[11strtoupper($table[11]);
  137.       switch ($table[11]{
  138.         case 'P':
  139.           $this->STATUT = $table[11];
  140.           break;
  141.         case 'AA':
  142.           $this->STATUT = $table[11];
  143.           break;
  144.         case 'D':
  145.           $this->STATUT = $table[11];
  146.           break;
  147.         default:
  148.           $this->STATUT = 'AA';
  149.           break;
  150.       }
  151.     else $this->STATUT = 'AA';
  152.  
  153.     $this->_geocode();
  154.  
  155.     $requete "INSERT INTO " $this->TDB_YELLOWPAGES . " (yellowp_name, yellowp_activity, yellowp_theme, yellowp_street, " "yellowp_postal_code, yellowp_city, yellowp_country, yellowp_phone, yellowp_fax, yellowp_email, " "yellowp_website, yellowp_longitude, yellowp_latitude,  yellowp_statut, yellowp_date_crea) " "VALUES('" $this->NAME . "', '" $this->ACTIVITY . "', " $this->THEME . ", '" $this->STREET . "', '" $this->POSTAL_CODE . "', '" $this->CITY . "', '" $this->COUNTRY . "', '" $this->PHONE . "', '" $this->FAX . "', '" $this->EMAIL . "', '" $this->WEBSITE . "', '" $this->LONG"', '" $this->LAT"', '" $this->STATUT . "', NOW());";
  156.     $last_id $sql_object->DBInsert ($requete1);
  157.     return $last_id;
  158.   }
  159.  
  160.   /**
  161.    * yellowpages::StateYellowPages()
  162.    * modification du statut d'une organisation
  163.    *
  164.    * @access public
  165.    * @param int $ID identifiant de l'organisation
  166.    * @param string $state (facultatif) 'P' Public/'D' Draft/'AA' AdminArchive/'PA' PublicArchive
  167.    * @param object $sql_object 
  168.    * @return bool $result
  169.    */
  170.  
  171.   function StateYellowPages($ID$state$sql_object)
  172.   {
  173.     if (is_numeric($ID)) {
  174.       $this->ID = $ID;
  175.     }
  176.     $this->STATUT = $state;
  177.  
  178.     $requete "UPDATE  " $this->TDB_YELLOWPAGES . " set yellowp_statut='" $this->STATUT . "' WHERE yellowp_id=" $this->ID . ";";
  179.     $result $sql_object->DBQuery($requete);
  180.     return $result;
  181.   }
  182.  
  183.  
  184.   /*
  185.    * yellowpages::DeleteYellowPages()
  186.    * suppression d'une organisatione
  187.    *
  188.    * @access public
  189.    * @param int $ID identifiant de l'organisation
  190.    * @param object $sql_object
  191.    * @return bool $result
  192.    */
  193.   function DeleteYellowPages($ID$sql_object)
  194.   {
  195.     $this->ID = $ID;
  196.     $requete "UPDATE " $this->TDB_YELLOWPAGES . " SET yellowp_statut='E', yellowp_last_modify = NOW() WHERE yellowp_id=" $this->ID . ";";
  197.     $result $sql_object->DBQuery ($requete);
  198.     return $result;
  199.   }
  200.  
  201.   /**
  202.    * yellowpages::ModifyYellowPages()
  203.    * modification d'une organisation
  204.    *
  205.    * @access public
  206.    * @param int $ID identifiant de l'organisation
  207.    * @param array $table contient les composants d'une entreprise
  208.    * @param object $sql_object 
  209.    * @return bool $result
  210.    */
  211.   function ModifyYellowPages($ID$table$sql_object)
  212.   {
  213.     $table=$sql_object->DBescape($table);
  214.  
  215.     $this->ID = $ID;
  216.     $this->NAME = strip_input($table[0]);
  217.     $this->ACTIVITY = strip_input($table[1]);
  218.     $this->THEME = $table[2];
  219.     $this->STREET = strip_input($table[3]);
  220.     $this->POSTAL_CODE = strip_input($table[4]);
  221.     $this->CITY = strip_input($table[5]);
  222.     $this->COUNTRY = strip_input($table[6]);
  223.     $this->PHONE = strip_input($table[7]);
  224.     $this->FAX = strip_input($table[8]);
  225.     $this->EMAIL = strip_input($table[9]);
  226.     $this->WEBSITE = strip_input($table[10]);
  227.  
  228.     if ($table[11!= ''{
  229.       $table[11]=strtoupper($table[11]);
  230.       switch ($table[11]{
  231.         case 'P':
  232.           $this->STATUT = $table[11];
  233.           break;
  234.         case 'AA':
  235.           $this->STATUT = $table[11];
  236.           break;
  237.         case 'D':
  238.           $this->STATUT = $table[11];
  239.           break;
  240.         default:
  241.           $this->STATUT = 'AA';
  242.           break;
  243.       }
  244.     else $this->STATUT = 'AA';
  245.  
  246.     $this->_geocode();
  247.     
  248.     $requete "UPDATE  " $this->TDB_YELLOWPAGES . " set yellowp_name='" $this->NAME . "', yellowp_activity='" $this->ACTIVITY . "' , yellowp_theme=" $this->THEME . ", yellowp_street='" $this->STREET . "', yellowp_postal_code='" $this->POSTAL_CODE . "', yellowp_city='" $this->CITY . "', yellowp_country='" $this->COUNTRY . "', yellowp_phone='" $this->PHONE . "', yellowp_fax='" $this->FAX . "', yellowp_email='" $this->EMAIL . "', yellowp_longitude='" $this->LONG . "', yellowp_latitude='" $this->LAT . "', yellowp_website='" $this->WEBSITE . "', yellowp_statut='" $this->STATUT . "', yellowp_last_modify = NOW() WHERE yellowp_id=" $this->ID . ";";
  249.  
  250.     $result $sql_object->DBQuery($requete);
  251.  
  252.     return $result;
  253.   }
  254.  
  255.   /**
  256.    * yellowpages::_geocode()
  257.    * prepare and geocode a given address
  258.    *
  259.    * @access private
  260.    */
  261.   private function _geocode({
  262.     
  263.     $address $this->STREET .',' $this->CITY .',' $this->COUNTRY;
  264.     $o geocode($address);
  265.  
  266.     if($o->{'status'}=='OK'{
  267.       $this->LONG $o->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
  268.       $this->LAT =  $o->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
  269.     }
  270.     
  271.   }
  272.  
  273. }
  274.  
  275. ?>

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