array( "A la web només sortirà publicat el comentari. La resta de dades que es sol·liciten són per oferir un millor servei i poder notificar les respostes a les teves propostes." => "A la web només sortirà publicat el comentari. La resta de dades que es sol·liciten són per oferir un millor servei i poder notificar les respostes a les teves propostes.", "Abril" => "Abril", "Accepto la política de tractament de dades." => "Accepto la política de tractament de dades.", "Accepto les condicions Generals d'aquest lloc web anunciades en la secció de Nota Legal." => "Accepto les condicions Generals d'aquest lloc web anunciades en la secció de Nota Legal.", "Accepto les condicions de publicació del web" => "Accepto les condicions de publicació del web", "Afegir a la cistella" => "Afegir a la cistella", "Agost" => "Agost", "Allotjament" => "Allotjament", "Base:" => "Base:", "C.P." => "C.P.", "Cistella" => "Cistella", "Cognoms" => "Cognoms", "Comentari" => "Comentari", "Comentari publicat el" => "Comentari publicat el", "Comentaris" => "Comentaris", "Consulta" => "Consulta", "Dc" => "Dc", "Dc." => "Dc.", "Desembre" => "Desembre", "Dg" => "Dg", "Dg." => "Dg.", "Dia d'arribada" => "Dia d'arribada", "Dia de sortida" => "Dia de sortida", "Direcció" => "Direcció", "Dj" => "Dj", "Dj." => "Dj.", "Dll" => "Dll", "Dll." => "Dll.", "Document adjunt" => "Document adjunt", "Ds" => "Ds", "Ds." => "Ds.", "Dt" => "Dt", "Dt." => "Dt.", "Dv" => "Dv", "Dv." => "Dv.", "Eliminar" => "Eliminar", "Enviar" => "Enviar", "Enviar " => "Enviar ", "Febrer" => "Febrer", "Fes la teva proposta" => "Fes la teva proposta", "Formulari de compra" => "Formulari de compra", "Formulari de contacte" => "Formulari de contacte", "Formulari de reserva" => "Formulari de reserva", "Formulari enviat correctament" => "Formulari enviat correctament", "Gener" => "Gener", "Gestió i ports:" => "Gestió i ports:", "Habitacions" => "Habitacions", "Idioma" => "Idioma", "Idiomes" => "Idiomes", "Index" => "Index", "Inici" => "Inici", "Juliol" => "Juliol", "Juny" => "Juny", "Les dades facilitades en aquest formulari s'incorporaran a un fitxer i/o poden ser objecte de tractament subjecte al que estableix la llei orgànica 15/99, de 13 de Desembre, de protecció de dades de caràcter personal, motiu pel qual vostè és titular dels drets contemplats en aquesta llei i en els reglaments que la desenvolupen. " => "Les dades facilitades en aquest formulari s'incorporaran a un fitxer i/o poden ser objecte de tractament subjecte al que estableix la llei orgànica 15/99, de 13 de Desembre, de protecció de dades de caràcter personal, motiu pel qual vostè és titular dels drets contemplats en aquesta llei i en els reglaments que la desenvolupen. ", "Maig" => "Maig", "Març" => "Març", "Menu" => "Menu", "Menú" => "Menú", "Mitja pensió" => "Mitja pensió", "Nom" => "Nom", "Nom i Cognoms" => "Nom i Cognoms", "Nombre d'adults" => "Nombre d'adults", "Nombre de nens" => "Nombre de nens", "Novembre" => "Novembre", "Octubre" => "Octubre", "Opcions" => "Opcions", "Pagar amb Paypal" => "Pagar amb Paypal", "Pago" => "Pago", "Població" => "Població", "Ports:" => "Ports:", "Preu" => "Preu", "Preu unitari" => "Preu unitari", "Producte" => "Producte", "Provincia" => "Provincia", "Quantitat" => "Quantitat", "Règim" => "Règim", "Setembre" => "Setembre", "Telèfon" => "Telèfon", "Total:" => "Total:", "Tots els camps són obligatoris." => "Tots els camps són obligatoris.", "Un cop enviis la teva proposta es validarà i es publicarà a la web." => "Un cop enviis la teva proposta es validarà i es publicarà a la web.", "Unitats" => "Unitats", "comentari" => "comentari", "comentarios" => "comentarios", "comentaris" => "comentaris", "de" => "de", "e-mail" => "e-mail", "email" => "email", "más información" => "más información", "més informació" => "més informació", "més informació " => "més informació ", "nom" => "nom", "per" => "per", "prova" => "prova", "següent" => "següent", "veure condicions" => "veure condicions", "web" => "web", ), "en_EN" => array( "A la web només sortirà publicat el comentari. La resta de dades que es sol·liciten són per oferir un millor servei i poder notificar les respostes a les teves propostes." => "The web will just posted the comment. Other data that has been requested to provide a better service and to report the answers to your proposals.", "Accepto la política de tractament de dades." => "", "Accepto les condicions de publicació del web" => "I accept the conditions of publication of the website", "Comentari" => "Comment", "Comentari publicat el" => "Comment posted on", "Fes la teva proposta" => "Make your proposal", "Idioma" => "Language", "Inici" => "Home", "Les dades facilitades en aquest formulari s'incorporaran a un fitxer i/o poden ser objecte de tractament subjecte al que estableix la llei orgànica 15/99, de 13 de Desembre, de protecció de dades de caràcter personal, motiu pel qual vostè és titular dels drets contemplats en aquesta llei i en els reglaments que la desenvolupen. " => "The data provided in this form will be stored in a file and\/or may be subject to treatment subject to the provisions of organic law 15\/1999, de 13 de diciembre, de Protección de datos de carácter personal, which is why you are the holder of the rights under this law and the regulations that develop it. ", "Menu" => "Menu", "Menú" => "Menu", "Opcions" => "Options", "Tots els camps són obligatoris." => "All fields are required.", "Un cop enviis la teva proposta es validarà i es publicarà a la web." => "Once you send your proposal will be validated and will be published on the web.", "comentari" => "comment", "comentaris" => "reviews", "email" => "email", "nom" => "name", "web" => "website", ), "es_ES" => array( "A la web només sortirà publicat el comentari. La resta de dades que es sol·liciten són per oferir un millor servei i poder notificar les respostes a les teves propostes." => "En la web sólo saldrá publicado el comentario. El resto de datos que se solicitan son para ofrecer un mejor servicio y poder notificar las respuestas a tus propuestas.", "Abril" => "Abril", "Accepto la política de tractament de dades." => "Acepto la política de tratamiento de datos.", "Accepto les condicions Generals d'aquest lloc web anunciades en la secció de Nota Legal." => "Acepto las condiciones generales de este sitio web anunciadas en la sección de Nota Legal.", "Accepto les condicions de publicació del web" => "Acepto las condiciones de publicación de la web", "Afegir a la cistella" => "Añadir a la cesta", "Agost" => "Agosto", "Allotjament" => "Alojamiento", "Base:" => "Base:", "C.P." => "CP", "Cistella" => "Cesta", "Cognoms" => "Apellidos", "Comentari" => "Comentario", "Comentari publicat el" => "Comentario publicado el", "Comentaris" => "Comentarios", "Consulta" => "Consulta", "Dc" => "Mié", "Dc." => "Mi.", "Desembre" => "Diciembre", "Dg" => "Dom", "Dg." => "Dom.", "Dia d'arribada" => "Día de llegada", "Dia de sortida" => "Día de salida", "Direcció" => "Dirección", "Dj" => "Jue", "Dj." => "Dj.", "Dll" => "Lun", "Dll." => "Dll.", "Ds" => "Sab", "Ds." => "Sáb.", "Dt" => "Mar", "Dt." => "Ma.", "Dv" => "Vie", "Dv." => "Vie.", "Eliminar" => "Eliminar", "Enviar" => "Enviar", "Enviar " => "Enviar", "Febrer" => "Febrero", "Fes la teva proposta" => "Haz tu propuesta", "Formulari de compra" => "Formulario de compra", "Formulari de contacte" => "Formulario de contacto", "Formulari de reserva" => "Formulario de reserva", "Formulari enviat correctament" => "Formulario enviado correctamente", "Gener" => "Enero", "Gestió i ports:" => "Gestión y portes:", "Habitacions" => "Habitaciones", "Idioma" => "Idioma", "Idiomes" => "", "Index" => "Índice", "Inici" => "Inicio", "Juliol" => "Julio", "Juny" => "Junio", "Les dades facilitades en aquest formulari s'incorporaran a un fitxer i/o poden ser objecte de tractament subjecte al que estableix la llei orgànica 15/99, de 13 de Desembre, de protecció de dades de caràcter personal, motiu pel qual vostè és titular dels drets contemplats en aquesta llei i en els reglaments que la desenvolupen. " => "Los datos facilitados en este formulario se incorporarán a un fichero y / o pueden ser objeto de tratamiento sujeto a lo que establece la Ley Orgánica 15/99, de 13 de Diciembre, de protección de datos de carácter personal, por lo que usted es titular los derechos contemplados en esta ley y en los reglamentos que la desarrollan.", "Maig" => "Mayo", "Març" => "Marzo", "Menu" => "Menu", "Menú" => "Menú", "Mitja pensió" => "Media pensión", "Nom" => "Nombre", "Nom i Cognoms" => "Nombre y Apellidos", "Nombre d'adults" => "Número de adultos", "Nombre de nens" => "Número de niños", "Novembre" => "Noviembre", "Octubre" => "Octubre", "Opcions" => "Opciones", "Pagar amb Paypal" => "Pagar con Paypal", "Població" => "Población", "Preu" => "Precio", "Preu unitari" => "Precio unitario", "Producte" => "Producto", "Provincia" => "Provincia", "Quantitat" => "Cantidad", "Règim" => "Régimen", "Setembre" => "Septiembre", "Telèfon" => "Teléfono", "Total:" => "Total:", "Tots els camps són obligatoris." => "Todos los campos son obligatorios.", "Un cop enviis la teva proposta es validarà i es publicarà a la web." => "Una vez envíes tu propuesta se validará y se publicará en la web.", "Unitats" => "Unidades", "comentari" => "comentario", "comentaris" => "comentarios", "de" => "de", "e-mail" => "e-mail", "email" => "email", "més informació" => "més informació", "més informació " => "más información", "nom" => "nombre", "per" => "por", "prova" => "prueba", "següent" => "siguiente", "veure condicions" => "ver condiciones", "web" => "web", ), "es_es" => array( "Inici" => "Inicio", ), "fr_FR" => array( "Accepto les condicions Generals d'aquest lloc web anunciades en la secció de Nota Legal." => "J'accepte les conditions générales de ce site web annoncés dans la section des avis juridiques.", "Afegir a la cistella" => "Ajoutez au panier", "C.P." => "C.P.", "Cistella" => "Panier", "Comentaris" => "Commentaires", "Direcció" => "Direction", "Eliminar" => "Supprimer", "Enviar" => "Envoyer", "Formulari de compra" => "Formulaire de commande", "Idioma" => "Langue", "Idiomes" => "Traduction", "Inici" => "Accueil", "Menu" => "Menu", "Nom i Cognoms" => "Nom et prénom", "Pagar amb Paypal" => "Payer avec Paypal", "Pago" => "Pago", "Població" => "Population", "Preu" => "Prix", "Preu unitari" => "Prix unitaire", "Producte" => "Produit", "Provincia" => "Province", "Quantitat" => "Montant", "Telèfon" => "Téléphone", "Total:" => "Total :", "Unitats" => "Unités", "comentari" => "commentaire", "comentaris" => "Commentaires", "e-mail" => "Messagerie", "més informació" => "Pour plus d'information", "veure condicions" => "voir les conditions", ), "it_IT" => array( "Inici" => "Casa", ), );; ?>false, "idiomaParam" => "idioma", "prefix"=>"", // controla si la url té un prefix per treure'l de la llista "url"=>"" ); public function init($config=array()) { $this->config = array_merge($this->config,$config); } public function parse($adreca,$params=array()){ $res2 = parse_url($adreca); if($this->config["prefix"] !=''){ $res = explode("/".$this->config["prefix"]."/",$res2["path"]); //$adreca = end($res2); } else { $res[] = $res2["path"]; } $num_valors = count($res); $this->adreca = $adreca; if($this->config["teIdioma"]){ $urlidioma = $res[$num_valors-2]; $idioma = $this->codiIdioma($urlidioma); $params[$this->config["idiomaParam"]] = $idioma; } $titol = $res[$num_valors-1]; $url = new url; $url->iniciar(); $llistat = $url->llistat_camp("url",ltrim($titol,"/")); //echo $titol; if(count($llistat)>0){ $dada = unserialize($llistat[0]->consultarvalor('dades')); if(!is_array($dada)){ $dada = array(); } $params = array_merge($params,$dada); $this->existeix = true; } else { $this->existeix = false; } $this->params = $params; return $params; } function get(){ return $this->params; } public function codiIdioma($carpeta){ $o_idioma = new idioma; $o_idioma->iniciar(); $llistat = $o_idioma->llistat_camp("carpeta",$carpeta."/"); if(count($llistat)>0){ return $llistat[0]->consultarvalor("codi"); }else{ return 0; } } public function getUrl($codi,$tipus){ } } /***** Classe que gestiona les urls Les versions especifiques per moduls han d'heretar d'aquí. *****/ class urlGenerator { public $prefix = ''; public $langprefix = false; public function setPrefix($prefix){ $this->prefix = $prefix; } public function setLangPrefix($prefix){ $this->langprefix = $prefix; } public function crear($titol, $url_permanent, $codi_url_permanent, $param, $carpeta) { if( count($param) === 0 ) { $codi_url = 0; } elseif (isset($codi_url_permanent) && $codi_url_permanent != "" && $codi_url_permanent != 0) { $array_url = explode(".",$url_permanent); if (end($array_url) == "html") { array_splice($array_url,-1,1); } $url_permanent = $this->actualitzarTitol(str2urlAmbPath(implode($array_url,".")),$codi_url_permanent,$carpeta); $this->actualitzarUrl($url_permanent, $codi_url_permanent, $param); $codi_url = $codi_url_permanent; } else { $titol_url = str2urlAmbPath(stripslashes($titol)); $titol_url = $this->generarTitol($titol_url,$codi,$carpeta); $codi_url = $this->crearUrl($param,$titol_url); } return $codi_url; } public function crearUrl($dades,$titol){ $url = new url; $url->iniciar(); $dades_serialitzades = serialize($dades); $titol_final = $titol; //print_r($dades); $url->assignarvalor("url",$titol_final); $url->assignarvalor("dades",$dades_serialitzades); $url->guardar(); $codi_retorn = $url->consultarvalor("codi"); return $codi_retorn; } public function actualitzarUrl($titol, $codi_url, $param = array()){ $url = new url; $url->iniciar(); $url->assignarvalor("codi",$codi_url); $url->assignarvalor("url",$titol); if(count($param) > 0) { $dades_serialitzades = serialize($param); $url->assignarvalor("dades",$dades_serialitzades); } $url->actualitzar(); } public function eliminarUrl($codi_url){ $url = new url; $url->iniciar(); $url->esborrar($codi_url); } //a partir de les dades d'entrada modifiquem la url de la pàgina indicada, si no existeix la crea public function modificar_url_pagina($dades,$titol){ $url = new url; $url->iniciar(); $titol2 = str2url(stripslashes($titol)).".html"; $codi = $this->existeix($titol2); if($codi > 0){ }else{ $dades2 = serialize($dades); $codi2 = $this->existeix_dades($dades2); if($codi2 > 0){ $url->assignarvalor("codi",$codi2); $url->assignarvalor("url",$titol2); $url->assignarvalor("dades",$dades2); $url->actualitzar(); $url->tancar(); }else{ } } } public function existeix($titol){ $url = new url; $url->iniciar(); $llistat = $url->llistat_camp("url",$titol); if ( count($llistat) > 0 ) { return $llistat[0]->consultarvalor("codi"); } else { return 0; } } //retorna cert si el titol ja existeix i no pertany al codi que hem entrat i fals altrament public function comprovarUrl($titol,$codi_url){ return $this->existeix($titol) == $codi_url; } public function existeixDades($dades){ $url = new url; $url->iniciar(); $llistat = $url->llistat_camp("dades",$dades); if ( count($llistat) > 0 ) { return $llistat[0]->consultarvalor("codi"); } else { return 0; } } public function prefix($url){ if($this->prefix == '/'){ $result = "/".$url; } elseif($this->prefix != ''){ $result = "/".$this->prefix."/".$url; } else { $result = $url; } return $result; } /*** ***/ public function getUrl($params){ extract($params); $url_generada = ''; if($codi_url != 0){ $url = new url; $url->iniciar(); $url->consulta($codi_url); $url_generada = $url->consultarvalor("url"); if(isset($query) && $url_generada != ''){ $url_generada = $url_generada . "?" . $query; } } if($url_generada == ''){ $url_generada = "index.php?pagina=".$pagina."&idioma=".$idioma; if(isset($query)){ $url_generada = $url_generada . "&" . $query; } } return $this->prefix($url_generada); } public function generarTitol($titol,$codi_pagina,$idioma=''){ if($this->langprefix && strpos($titol,$idioma)=== false){ $titol_final = $idioma.$titol.".html"; } else { $titol_final = $titol.".html"; } $i = 1; while($this->existeix($titol_final)){ if($this->langprefix && strpos($titol,$idioma)=== false){ $titol_final = $idioma.$titol."_$i.html"; } else { $titol_final = $titol."_$i.html"; } $i++; } return $titol_final; } public function actualitzarTitol($titol,$codi_url,$idioma=''){ if($this->langprefix && strpos($titol,$idioma)=== false){ $titol_final = $idioma.$titol.".html"; } else { $titol_final = $titol.".html"; } $i = 1; $codi_actual = $this->existeix($titol_final); while($codi_actual != 0 && $codi_actual != $codi_url){ if($this->langprefix && strpos($titol,$idioma)=== false){ $titol_final = $idioma.$titol."_$i.html"; } else { $titol_final = $titol."_$i.html"; } $i++; $codi_actual = $this->existeix($titol_final); } return $titol_final; } } /**** Factory dels objectes url. Objecte static no cal instanciar-lo ****/ class urlFactory { static $urls = array(); static $prefix = ''; static $langprefix = false; public static function register($type,$constructor){ self::$urls[$type] = $constructor; } public static function setPrefix($prefix){ self::$prefix = $prefix; } public static function getPrefix(){ if(self::$prefix == '/'){ $result = "/"; } elseif(self::$prefix != ''){ $result = "/".self::$prefix."/"; } else { $result = ""; } return $result; } public static function setLangPrefix($prefix){ self::$langprefix = $prefix; } public static function &get($type){ if(isset(self::$urls[$type])){ $result = new self::$urls[$type]; } else { $result = new urlGenerator; } $result->setPrefix(self::$prefix); $result->setLangPrefix(self::$langprefix); return $result; } } ?>