Current File : /home/karenpetzb/library/Modules/Common/Controllers/MainController.php
<?php
class Modules_Common_Controllers_MainController extends Zend_Controller_Action
{
	var $isMaintenance = false;
	
	var $site_vitrine = "";
	var $devisCommande_Mail = "";	
	var $no_reply_Mail = "";
	var $serviceClient_Mail = "";
	var $contact_Mail = "";
	var $newsletter_Mail = "";
	var $reglement_Mail = "";
	var $site_actualshort = "";
	var $baseUrl_SiteCommerceUrl = "";
	var $siteName  = "";

	var $site_addresse  = "";
	var $site_addresse2  = "";
	var $site_addresse3_title  = "";
	var $site_addresse3_address  = "";
	var $site_addresse3_cp  = "";
	
	var $site_rib_numbers  = "";
	var $site_rib_iban  = "";
	var $site_rib_bic  = "";
	var $site_rib_bankname  = "";
	
	var $session_variable  = "";
	var $session_storage  = "";

	var $tel_contact  = "";
	var $link_media_facebook  = "";
	var $link_media_twitter  = "";
	var $link_media_viadeo  = "";	
	var $link_media_google  = "";	

	var $custom_text_1 = "";
	var $custom_text_2 = "";
	var $custom_text_3 = "";
	var $custom_text_4 = "";
	var $custom_text_5 = "";
	
	var $custom_link_1 = "";
	var $custom_link_2 = "";
	var $custom_link_3 = "";
	var $custom_link_4 = "";
	var $custom_link_5 = "";
	
	var $paypal_business = "";
	var $google_analytics = "";
	var $ekomi_email = "";
	var $carte_fidelite_enabled = false;


	var $tva  = '20';
	
    var $FeatureAnnonceRightPosition = false;
    var $FeatureCategoryTextDescriptionLong = false;
    var $FeatureCategoryTextDescriptionShort = false;
    var $FeatureCategoryPictureSlide = false;
    var $FeatureProductDocumentDownloadGuest = false;
    var $FeatureProductSendDetail = false;
    var $FeatureProductShowBestSellerOnCategory = false;
    var $FeaturePictureResizeWidth = 3400;
    var $FeaturePictureResizeHeight = 2267;
    
    var $FeatureMigrateCategoryEnable = false;
    
    
    var $FeatureElasticSearchEnableOnSearch = false;
    var $FeatureElasticSearchWsdl = "";
    var $FeatureElasticSearchUsername = "";
    var $FeatureElasticSearchKey = "";
    
    var $FeatureRedirectionAuto = false;
    var $TextHomeMetaTitle = "";
    var $TextHomeMetaDescription = "";
    
    var $FeatureSiteType = 1; 
    var $FeatureTinymceCss = ''; 
    var $FeatureSiteThemeCms = array(); 
 
    var $isSiteEbusiness = false; 
    var $isSiteGallery = false; 
      
    protected function getSoapHeader($userName, $key) { 
        $request = new stdClass();
        $request->Header = new stdClass();
        $request->Header->Username = $userName;
        $request->Header->Key = $key;
        return $request;
    }
    protected function getSoapClient($wsdl) { 
         $options = array (
         'encoding' => 'ISO-8859-1', 
         'verifypeer' => false, 
         'verifyhost' => false, 
         'trace' => 1, 
         'exceptions' => true, 
         "connection_timeout" => 180);
         
        $client = new SoapClient($wsdl, $options);
        
        return $client;
    }
    
	protected function checkMaintenance() {
		if ($this->isMaintenance) {
			$this->_redirect('/');
		}
	}
    
    function Redirect($url, $permanent = false)
    {
        header('Location: ' . $url, true, $permanent ? 301 : 302);

        exit();
    }
	
	protected function initVariables() {
		$registry = Zend_Registry::getInstance();
		$setting = $registry->get('setting');

        $this->FeatureSiteType = $setting->FeatureSiteType; 
		$this->isSiteEbusiness = $this->FeatureSiteType == 1;
		$this->isSiteGallery = $this->FeatureSiteType == 2; 

		$this->view->isSiteEbusiness = $this->isSiteEbusiness;
		$this->view->isSiteGallery = $this->isSiteGallery; 
        
		if ($this->FeatureSiteType == 2) { 
            $FeatureSiteThemeCmsTemp = array();
            $themeSetting =  explode("/", $setting->FeatureSiteThemeCms);  
		    for ($index = 0; $index < sizeof($themeSetting); $index++) {
			    $themeKeyValue = $themeSetting[$index];
			    if (!empty($themeKeyValue)) {  
                    $themeArray =  explode(":", $themeKeyValue);  
				    if (sizeof($themeArray) == 2) {                      
                        array_push($FeatureSiteThemeCmsTemp, array('ID_THEME' => trim($themeArray[0]), 'NOM_THEME' => trim($themeArray[1])));
                    }
				    if (sizeof($themeArray) == 3) {                      
                        array_push($FeatureSiteThemeCmsTemp, array('ID_THEME' => trim($themeArray[0]), 'NOM_THEME' => trim($themeArray[1]), 'WIDTH_THUMB' => (int)trim($themeArray[2])));
                    }
			    }
		    }  
		    $this->FeatureSiteThemeCms = $FeatureSiteThemeCmsTemp; 
		    $this->view->FeatureSiteThemeCms = $FeatureSiteThemeCmsTemp; 
		    $this->view->FeatureTinymceCss = $setting->FeatureTinymceCss;  
		    $this->view->FeatureTinymceTemplate = $setting->FeatureTinymceTemplate;              
        } 

        $this->view->google_site_verification = $setting->google_site_verification;
         
        $this->view->FeatureCategoryLinkRedirection = $setting->FeatureCategoryLinkRedirection;
		
		/* FEATURE */
        $this->FeatureAnnonceRightPosition = $setting->FeatureAnnonceRightPosition;
        $this->view->FeatureAnnonceRightPosition = $this->FeatureAnnonceRightPosition;
        
        $this->FeatureCategoryTextDescriptionLong = $setting->FeatureCategoryTextDescriptionLong;
        $this->view->FeatureCategoryTextDescriptionLong = $this->FeatureCategoryTextDescriptionLong;
        
        $this->FeatureCategoryTextDescriptionShort = $setting->FeatureCategoryTextDescriptionShort;
        $this->view->FeatureCategoryTextDescriptionShort = $this->FeatureCategoryTextDescriptionShort;
        
        $this->FeatureCategoryPictureSlide = $setting->FeatureCategoryPictureSlide;
        $this->view->FeatureCategoryPictureSlide = $this->FeatureCategoryPictureSlide;
        
        $this->FeatureProductDocumentDownloadGuest = $setting->FeatureProductDocumentDownloadGuest;
        $this->view->FeatureProductDocumentDownloadGuest = $this->FeatureProductDocumentDownloadGuest;
        
        $this->FeatureProductSendDetail = $setting->FeatureProductSendDetail;
        $this->view->FeatureProductSendDetail = $this->FeatureProductSendDetail;
        
        $this->FeatureProductShowBestSellerOnCategory = $setting->FeatureProductShowBestSellerOnCategory;
        $this->view->FeatureProductShowBestSellerOnCategory = $this->FeatureProductShowBestSellerOnCategory;
                
        $this->FeaturePictureResizeWidth = isset($setting->FeaturePictureResizeWidth) ? $setting->FeaturePictureResizeWidth : $this->FeaturePictureResizeWidth;
        $this->view->FeaturePictureResizeWidth = $this->FeaturePictureResizeWidth;
        $this->FeaturePictureResizeHeight = isset($setting->FeaturePictureResizeHeight) ? $setting->FeaturePictureResizeHeight : $this->FeaturePictureResizeHeight;
        $this->view->FeaturePictureResizeHeight = $this->FeaturePictureResizeHeight;
        
        $this->FeatureMigrateCategoryEnable = $setting->FeatureMigrateCategoryEnable;
        $this->view->FeatureMigrateCategoryEnable = $this->FeatureMigrateCategoryEnable;
        
        $this->FeatureElasticSearchEnableOnSearch = $setting->FeatureElasticSearchEnableOnSearch;
        $this->view->FeatureElasticSearchEnableOnSearch = $this->FeatureElasticSearchEnableOnSearch;        
        $this->FeatureElasticSearchWsdl = $setting->FeatureElasticSearchWsdl;
        $this->view->FeatureElasticSearchWsdl = $this->FeatureElasticSearchWsdl;        
        $this->FeatureElasticSearchUsername = $setting->FeatureElasticSearchUsername;
        $this->view->FeatureElasticSearchUsername = $this->FeatureElasticSearchUsername;
        $this->FeatureElasticSearchKey = $setting->FeatureElasticSearchKey;
        $this->view->FeatureElasticSearchKey = $this->FeatureElasticSearchKey;
        
        $this->FeatureRedirectionAuto = $setting->FeatureRedirectionAuto;
        $this->view->FeatureRedirectionAuto = $this->FeatureRedirectionAuto; 
        $this->TextHomeMetaTitle = $setting->TextHomeMetaTitle;
        $this->view->TextHomeMetaTitle = $this->TextHomeMetaTitle; 
        $this->TextHomeMetaDescription = $setting->TextHomeMetaDescription;
        $this->view->TextHomeMetaDescription = $this->TextHomeMetaDescription; 
         
		/* CONTROLLER */
		$this->site_vitrine = $setting->site_vitrine;
		$this->devisCommande_Mail = $setting->devisCommande_Mail;
		$this->no_reply_Mail = $setting->no_reply_Mail;
		$this->serviceClient_Mail = $setting->serviceClient_Mail;
		$this->contact_Mail = $setting->contact_Mail;
		$this->newsletter_Mail = $setting->newsletter_Mail;
		$this->reglement_Mail = $setting->reglement_Mail;
		$this->site_actualshort = $setting->site_actualshort;
		$this->baseUrl_SiteCommerceUrl = $setting->baseUrl_SiteCommerceUrl;
		$this->siteName  = $setting->siteName;

		$this->site_addresse = $setting->site_addresse;
		$this->site_addresse2 = $setting->site_addresse2;
		$this->site_addresse3_title = $setting->site_addresse3_title;
		$this->site_addresse3_address = $setting->site_addresse3_address;
		$this->site_addresse3_cp = $setting->site_addresse3_cp;

		$this->site_rib_numbers = $setting->site_rib_numbers;
		$this->site_rib_iban = $setting->site_rib_iban;
		$this->site_rib_bic = $setting->site_rib_bic;
		$this->site_rib_bankname = $setting->site_rib_bankname;
				
		$this->session_variable = $setting->session_variable;
		$this->session_storage = $setting->session_storage;

		$this->tel_contact = $setting->tel_contact;
		$this->link_media_facebook = $setting->link_media_facebook;
		$this->link_media_twitter = $setting->link_media_twitter;
		$this->link_media_viadeo = $setting->link_media_viadeo;
		$this->link_media_google = $setting->link_media_google;		

		$this->custom_text_1 = $setting->custom_text_1;
		$this->custom_text_2 = $setting->custom_text_2;
		$this->custom_text_3 = $setting->custom_text_3;
		$this->custom_text_4 = $setting->custom_text_4;
		$this->custom_text_5 = $setting->custom_text_5;
		
		$this->custom_link_1 = $setting->custom_link_1;
		$this->custom_link_2 = $setting->custom_link_2;
		$this->custom_link_3 = $setting->custom_link_3;
		$this->custom_link_4 = $setting->custom_link_4;
		$this->custom_link_5 = $setting->custom_link_5;
		
		$this->paypal_business = $setting->paypal_business;		
		$this->google_analytics = $setting->google_analytics;	
        
		$this->ekomi_email = $setting->ekomi_email;		
		$this->carte_fidelite_enabled = $setting->carte_fidelite_enabled;

		/* VIEW */
		$this->view->site_vitrine = $this->site_vitrine;
		$this->view->baseUrl_SiteCommerceUrl = $this->baseUrl_SiteCommerceUrl;
		$this->view->site_actualshort = $this->site_actualshort;
		$this->view->serviceClient_Mail = $this->serviceClient_Mail;
		$this->view->reglement_Mail = $this->reglement_Mail;
		$this->view->contact_Mail = $this->contact_Mail;
		$this->view->siteName = $this->siteName;
		
		$this->view->site_addresse = $this->site_addresse;
		$this->view->site_addresse2 = $this->site_addresse2;
		$this->view->site_addresse3_title = $this->site_addresse3_title;
		$this->view->site_addresse3_address = $this->site_addresse3_address;
		$this->view->site_addresse3_cp = $this->site_addresse3_cp;
						
		$this->view->site_rib_numbers = $this->site_rib_numbers;
		$this->view->site_rib_iban = $this->site_rib_iban;
		$this->view->site_rib_bic = $this->site_rib_bic;
		$this->view->site_rib_bankname = $this->site_rib_bankname;
		
		$this->view->session_variable = $this->session_variable;
		$this->view->session_storage = $this->session_storage;
				
		$this->view->baseUrl = $this->getBaseUrl();
		
		$this->view->tel_contact = $this->tel_contact;
		$this->view->link_media_facebook = $this->link_media_facebook;
		$this->view->link_media_twitter = $this->link_media_twitter;
		$this->view->link_media_viadeo = $this->link_media_viadeo;
		$this->view->link_media_google = $this->link_media_google;
		$this->view->link_media_flickr = $setting->link_media_flickr;
		$this->view->link_media_rss = $setting->link_media_rss;
                
		$this->view->custom_text_1 = $this->custom_text_1;
		$this->view->custom_text_2 = $this->custom_text_2;
		$this->view->custom_text_3 = $this->custom_text_3;
		$this->view->custom_text_4 = $this->custom_text_4;
		$this->view->custom_text_5 = $this->custom_text_5;

		$this->view->custom_link_1 = $this->custom_link_1;
		$this->view->custom_link_2 = $this->custom_link_2;
		$this->view->custom_link_3 = $this->custom_link_3;
		$this->view->custom_link_4 = $this->custom_link_4;
		$this->view->custom_link_5 = $this->custom_link_5;
		
		$this->view->paypal_business = $this->paypal_business;
		$this->view->google_analytics = $this->google_analytics;
        
		$this->view->isCarteFideliteEnable = $this->carte_fidelite_enabled;
		
		$this->_initMail($setting);
        
	}


	private function initLog() {
		$registry = Zend_Registry::getInstance();
		$loggerCommon = $registry->get('loggerCommon');
	
		$controller = Zend_Controller_Front::getInstance()->getRequest();
		$loggerCommon->setEventItem('controller', $controller->getControllerName().'::'.$controller->getActionName());
			
		$registry->set('loggerCommon', $loggerCommon);
	}
	
	private function log($message , $level) {
		initLog();
		$loggerAdmin = Zend_Registry::get('loggerCommon');
		if ($level == 'info') {
			//$loggerAdmin->info($message);
		} elseif ($level == 'err') {
			$loggerAdmin->err($message);
		} elseif ($level == 'warn') {
			$loggerAdmin->warn($message);
		} elseif ($level == 'crit') {
			$loggerAdmin->crit($message);
		}
	}
	
	protected function checkDirectoryExist($repertoireDestination)  {
		if (!is_dir($repertoireDestination)) {
			mkdir ($repertoireDestination, 0777);
		}
	}
	protected function _initMail($setting) {
		try {
			$config = array(
    				'ssl' => 'ssl', 
					'port' => $setting->mail_port,
					'auth' => $setting->mail_auth,
					'username' => $setting->mail_username,
					'password' => $setting->mail_password);

			$mailTransport = new Zend_Mail_Transport_Smtp($setting->mail_smtp, $config);
			Zend_Mail::setDefaultTransport($mailTransport);
		} catch (Zend_Exception $e){
			$this->log($e->getMessage(),'err');
		}
	}
	
	protected function getBaseUrl(){
		return '';
	}
	
	protected function cutString($string, $max_length){
		if (strlen($string) > $max_length){
			$string = substr($string, 0, $max_length);
			$pos = strrpos($string, " ");
			if($pos === false) {
				return substr($string, 0, $max_length)."...";
			}
			return substr($string, 0, $pos)."...";
		}else{
			return $string;
		}
	}


	protected function filterNoAccent($valeur)
	{
		$accents = array('�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�',
		'�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�','�',' - ','  ');
		$sans = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O',
		'U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y',' ',' ');
		return str_replace($accents, $sans, $valeur);
	}

	protected function showDesign($designId, $categorie) {
		$designParams = array();
		$baseUrl = $this->getBaseUrl();
		$theme = $baseUrl."/image/theme/blue";
		switch ($designId) {
			case 1:
				$designParams = array('background'     => '#787878',
                					'color'     => '#787878',
							        'imgCategory' => $theme.'/onglets/levage/icone_levage.png',
							        'puceCategory' => $theme.'/onglets/levage/puce_levage.png',
							        'bgCategoryUp' => $theme.'/onglets/levage/haut_levage.png',
							        'bgCategoryDown' => $theme.'/onglets/levage/bas_levage.png',
							        'idCategory' => $categorie['ID'],
							        'category' => $categorie,
									'linkClass' => 'linkOnglet1'
									);

									break;
			case 2:
				$designParams = array('background'     => '#8db91c',
                					'color'     => '#8db91c',
							        'imgCategory' => $theme.'/onglets/environnement/icone_environnement.png',
							        'puceCategory' => $theme.'/onglets/environnement/puce_environnement.png',
							        'bgCategoryUp' => $theme.'/onglets/environnement/haut_environnement.png',
							        'bgCategoryDown' => $theme.'/onglets/environnement/bas_environnement.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet2'
									);

									break;
			case 3:
				$designParams = array('background'     => '#b9aa01',
                					'color'     => '#b9aa01',
							        'imgCategory' => $theme.'/onglets/stockage/icone_stockage.png',
							        'puceCategory' => $theme.'/onglets/stockage/puce_stockage.png',
							        'bgCategoryUp' => $theme.'/onglets/stockage/haut_stockage.png',
							        'bgCategoryDown' => $theme.'/onglets/stockage/bas_stockage.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet3'
									);

									break;
			case 4:
				$designParams = array('background'     => '#289bd4',
                					'color'     => '#289bd4',
							        'imgCategory' => $theme.'/onglets/entretien/icone_entretien.png',
							        'puceCategory' => $theme.'/onglets/entretien/puce_entretien.png',
							        'bgCategoryUp' => $theme.'/onglets/entretien/haut_entretien.png',
							        'bgCategoryDown' => $theme.'/onglets/entretien/bas_entretien.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet4'
									);

									break;
			case 5:
				$designParams = array('background'     => '#d2322d',
                					'color'     => '#e22e3a',
							        'imgCategory' => $theme.'/onglets/securite/icone_securite.png',
							        'puceCategory' => $theme.'/onglets/securite/puce_securite.png',
							        'bgCategoryUp' => $theme.'/onglets/securite/haut_securite.png',
							        'bgCategoryDown' => $theme.'/onglets/securite/bas_securite.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet5'
									);

									break;
			case 6:
				$designParams = array('background'     => '#bb90bb',
                					'color'     => '#bb90bb',
							        'imgCategory' => $theme.'/onglets/emballage/icone_emballage.png',
							        'puceCategory' => $theme.'/onglets/emballage/puce_emballage.png',
							        'bgCategoryUp' => $theme.'/onglets/emballage/haut_emballage.png',
							        'bgCategoryDown' => $theme.'/onglets/emballage/bas_emballage.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet6'
									);

									break;
			case 7:
				$designParams = array('background'     => '#009249',
                					'color'     => '#009249',
							        'imgCategory' => $theme.'/onglets/outillage/icone_outillage.png',
							        'puceCategory' => $theme.'/onglets/outillage/puce_outillage.png',
							        'bgCategoryUp' => $theme.'/onglets/outillage/haut_outillage.png',
							        'bgCategoryDown' => $theme.'/onglets/outillage/bas_outillage.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet7'
									);

									break;
			case 8:
				$designParams = array('background'     => '#f19408',
                					'color'     => '#f19408',
							        'imgCategory' => $theme.'/onglets/atelier/icone_atelier.png',
							        'puceCategory' => $theme.'/onglets/atelier/puce_atelier.png',
							        'bgCategoryUp' => $theme.'/onglets/atelier/haut_atelier.png',
							        'bgCategoryDown' => $theme.'/onglets/atelier/bas_atelier.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet8'
									);

									break;
			case 9:
				$designParams = array('background'     => '#e1037a',
                					'color'     => '#e1037a',
							        'imgCategory' => $theme.'/onglets/bureau/icone_bureau.png',
							        'puceCategory' => $theme.'/onglets/bureau/puce_bureau.png',
							        'bgCategoryUp' => $theme.'/onglets/bureau/haut_bureau.png',
							        'bgCategoryDown' => $theme.'/onglets/bureau/bas_bureau.png',
							        'category' => $categorie,
							        'idCategory' => $categorie['ID'],
									'linkClass' => 'linkOnglet9'
									);

									break;
			default:
									$designParams = array('background'     => '#787878',
                					'color'     => '#787878',
							        'imgCategory' => "",
							        'puceCategory' => "",
							        'bgCategoryUp' => "",
							        'bgCategoryDown' => "",
							        'idCategory' => -1,
							        'category' => "",
									'linkClass' => ""
									);

									break;
		}
		return $designParams;
	}
	
	protected function getDesignColors() {
		$color = array();
		$color[1] = '#787878';
		$color[2] = '#8db91c';
		$color[3] = '#b9aa01';
		$color[4] = '#289bd4';
		$color[5] = '#d2322d';
		$color[6] = '#bb90bb';
		$color[7] = '#009249';
		$color[8] = '#f19408';
		$color[9] = '#e1037a';  
		$color[10] = '#e1037a';  
		return $color;
	}

	protected function getErrorValidatorValue($code, $value) {
		// traduction des messages d'erreur de validation
		$french = array (
	        'notAlnum' => "$value ne contient pas que des lettres et/ou des chiffres.",
	        'notAlpha' => "$value ne contient pas que des lettres.",
	        'notBetween' => "$value n'est pas compris entre %min% et %max% inclus.",
	        'notBetweenStrict' => "$value n'est pas compris entre %min% et %max% exclus.",
	        'dateNotYYYY-MM-DD'=> "$value n'est pas une date au format AAAA-MM-JJ (exemple : 2000-12-31).",
	        'dateInvalid' => "$value n'est pas une date valide.",
	        'dateFalseFormat' => "$value n'est pas une date valide au format JJ/MM/AAAA (exemple : 31/12/2000).",
	        'notDigits' => "$value ne contient pas que des chiffres.",
	        'emailAddressInvalid' => "L'email n'est pas une adresse mail valide selon le format adresse@domaine.",
	        'emailAddressInvalidHostname' => "Le nom de domaine n'est pas un domaine valide pour l'adresse mail <b>$value</b>",
	        'emailAddressInvalidMxRecord' => "Le nom de domaine n'accepte pas l'adresse mail.",
	        'emailAddressDotAtom' => "L'email ne respecte pas le format dot-atom.",
	        'emailAddressQuotedString' => "L'email ne respecte pas le format quoted-string.",
	        'emailAddressInvalidLocalPart' => "L'email n'est pas une adresse individuelle valide.",
	        'notFloat' => "$value n'est pas un nombre d�cimal.",
	        'notGreaterThan' => "$value n'est pas strictement sup�rieur � '%min%'.",
	        'notInt'=> "$value n'est pas un nombre entier.",
	        'notLessThan' => "$value n'est pas strictement inf�rieur � '%max%'.",
	        'isEmpty' => "Certains champs sont vides.",
	        'stringEmpty' => "Certains champs sont vides.",
	        'regexNotMatch' => "$value ne respecte pas le format '%pattern%'.",
	        'stringLengthTooShort' => "Un champs fait moins de $value caract�res.",
	        'stringLengthTooLong' => "$value fait plus de %max% caract�res."
		);

		if (array_key_exists($code, $french)) {
			return $french[$code];
		}
		return;
	}

	protected function getErrorValidator($code) {
		// traduction des messages d'erreur de validation
		$french = array (
	         'emailAddressInvalid' => "L'email n'est pas une adresse mail valide selon le format adresse@domaine.",
	        'emailAddressInvalidHostname' => "Le nom de domaine n'est pas un domaine valide.",
	        'emailAddressInvalidMxRecord' => "Le nom de domaine n'accepte pas l'adresse mail.",
	        'emailAddressDotAtom' => "L'email ne respecte pas le format dot-atom.",
	        'emailAddressQuotedString' => "L'email ne respecte pas le format quoted-string.",
	        'emailAddressInvalidLocalPart' => "L'email n'est pas une adresse individuelle valide.",
	        'isEmpty' => "Certains champs sont vides.",
	        'stringEmpty' => "Certains champs sont vides.",
	        'stringLengthTooShort' => "Un champs fait moins de 4 caract�res.",
			'hostnameUnknownTld' => "L'email n'est pas une adresse individuelle valide.",
			'hostnameLocalNameNotAllowed' => "L'email n'est pas une adresse individuelle valide."
			);

			if (array_key_exists($code, $french)) {
				return $french[$code];
			}
			return;
	}

	protected function verifyNavigationString($navnom, $nom, $suffix) {
		if (empty($navnom)) {
			return $suffix.$this->generateNavigationString($nom);
		} else {
			$filter = new Zend_Filter_Word_DashToSeparator();
			$navnom = $filter->filter($navnom);
			return $suffix.$this->generateNavigationString($navnom);
		}
	}

	protected function generateNavigationString($value) {
		$filter = new Zend_Filter();
		$filter->addFilter(new Zend_Filter_StripTags())
		->addFilter(new Zend_Filter_StringTrim())
		->addFilter(new Zend_Filter_StringToLower())
		->addFilter(new Zend_Filter_CustomAccent())
		->addFilter(new Zend_Filter_Word_SeparatorToDash());
		$result = $filter->filter($value);
        
        return preg_replace('/[^A-Za-z0-9\-\/]/', '', $result);
	}
	
	protected function generateKeyWords($value) {
		$filter = new Zend_Filter();
		$filter	->addFilter(new Zend_Filter_StripTags())
		->addFilter(new Zend_Filter_StringTrim())
		->addFilter(new Zend_Filter_StringToLower())
		->addFilter(new Zend_Filter_Word_SeparatorToDash());
		$result = $filter->filter($value);
		$result = str_replace(',', '', $result);
		
		$navnomStrip =  explode("-", $result);
		$keywords ="";
		for ($index = 0; $index < sizeof($navnomStrip); $index++) {
			$word = $navnomStrip[$index];
			if (empty($keywords)) {
				if (strlen($word) > 3){ $keywords .= $word; }
			} else {
				if (strlen($word) > 3){ $keywords .= ",".$word; }
			}
		}
		return $keywords;
	}
}
?>