Cambios de la versión Beta0.6 á Beta0.7 (24-08-2006)

Por Horacio González. Jueves, 24-08-2006
Otros artículos de la misma sección Buscar otros artículos Citar este artículo

Referencia bibliográfica según la ISO 690-2:

Horacio González. Cambios de la versión Beta0.6 á Beta0.7 (24-08-2006) [online]. Vigo, España, Escoitar.org, agosto de 2006 [versión de agosto de 2006] [citado el ].

Disponible en Internet:

http://www.escoitar.org/Cambios-de-la-version-Beta0-6-a
Rubricas de este sector
   
Espera un momento ¡Buscando artículos!
Espera un momento ¡Buscando artículos!

(en Galego. Para unha traducción destes textos utilizar o motor de traducción da Universidade de Vigo)

 Continuan as labores de optimización do código copleto do plugin, procurando eliminar os fragmentos non utilizados do mesmo e substituindo aquelas operacións que se repiten moitas veces por funcións.
1. Na función read_write($condiciones, $limit, $xml) en escoitarGZtags.php substitúese un bucle for ($i=0; $i<$rowcount; $i++) por un bucle foreach ($comments as $thiscomment) para leer os datos devoltos pola BD de xeito mais directo. Ademais ditos datos escribense directamente na variable $texto que recolle o contido dos documentos xml para poder eliminar as variables intermediarias $id, $autor, $web, $webName, $lat, $long, $mensaje, $hora, $data, $swf, $img e $categoria.

 A función "MATCH(datos_busqueda)" non devolve ningún resultado cando a clave de procura aparece en máis do 50% das entradas da BD. Para que isto non suceda, mellorase o motor de procura para que devolva resultados utilizando "LIKE 'claveBusqueda'", cando "MATCH(datos_busqueda)" non devolve ningún resultado. Para isto foi necesario almacenar os resultados da procura nunha variable, así que actualizouse a función read_write($condiciones, $limit, $xml, $return) engadindo un atributo chamado $return, de xeito que cando este atributo ten valor "true" a funcion devolve como resultado un array cos resultados da procura.

 Tamén mellorase o funcionamento de <lb:loop_coments2> en escoitarGZtags.php para que aproveite as melloras do motor de procura e estea sincronizado co mesmo, de xeito que o apartado de últimos sons devolva os enlaces directos aos resultados da procura cando se fai unha. Para isto foi necesario crear unha etiqueta <lb:form_buscasons> que devolva as etiquetas do formulario e mellorar <lb:area_buscasons> para que faga a procura e devolva os resultados antes de <lb:loop_coments2>. Isto é así porque ao situar a etiqueta <lb:area_buscasons> antes do mapa se esta devolvese as etiquetas html do formulario <form></form> Internet explorer sería incapaz de procesar o google map e devolvería un erro fatal.

 Para evitar problamas coas etiquetas ID3 dos arquivos sonoros achegados mellorase o proceso de subida de arquivos de xeito que sobreescriba as etiquetas ID3 mediante unha copia da función defaultid3tags($filename, $title) de functions_record.php chamada defaultid3tags2($filename, $title, $autor, $ano). Para que isto fora compatible coa estructura de idiomas en distintos directorios foi necesario trasladar as funcións deleteorphans(), getid3data() e defaultid3tags2() ata os constructores inc/buildwebsite.php, inc/buildwebsite_espanol.php e inc/buildwebsite_english.php e modificalas. Isto é debido a que ao estar a raiz da páxina en distintos lugares en funcion do idioma os "require_once('....php')", "opendir('...')" e "include('....php')" destas funcións devolvian un erro fatal ao buscar os arquivos a partires do directorio da páxina principal e non atopalos. En realidade na versión anterior o sistema de subida de arquivos sempre devolvia un erro fatal nos apartados en castelan e ingles porque a función deleteorphans() é chamada sempre que se sube un comentario.

 Engadese a posibilidade de incluir ligazóns na descripción dos sons achegados ao arquivo sonoro. Para isto modificouse o xeito en que $message_input e procesado para combertilo en $message_html antes de isertar cada entrada na BD. Mediante o seguinte código o texto e separado en palabras para busar en cada unha de elas "http://" cando este conxunto de caracteres se atopa no $message_html se engaden as etiquetas correspondentes a un enlace "<a href=""></a>" e como texto do enlace se introduce ou ben a url limpa ou un texto alternativo que debe ser escrito entre parenteses a continuacion da direccion.

$trozos = explode(" ", $message_html);
           $message_html = "";
                for ($i=0; $i<count($trozos); $i++) {
                        $posicion = strpos($trozos[$i], "http://");
                        if ($posicion === false){
                                $message_html.= $trozos[$i]." ";
                        } else {
                                $posicion = strpos($trozos[$i], "(");
                                if ($posicion === false) {
                                        $message_html .= "<a href=\"".$trozos[$i]."\" target=\"_blank\">".substr(str_replace("http://", "", $trozos[$i]), 0, 20)."...</a> ";
                                } else {
                                        $message_html .= "<a href=\"".substr($trozos[$i], 0, $posicion)."\" target=\"_blank\">".substr($trozos[$i], ($posicion + 1), (count($trozos[$i]) - 2))."</a> ";
                                }
                        }
                }

Para que este cambio sexa visible nos previews de subida de comentario e de validación tamén foi necesario actualizar o xeito en que <lb:loop_coments2> e backend_validar.php procesan os datos da entrada e os amosan no mapa.

 Creanse dúas novas etiquetas para resolver problemas a hora de facer enlaces na plantilla do index.html que sexan sensibles ao idioma no que está vendo a páxina o internauta. Dado que non é posible poñer enlaces con urls relativas no index.html, foi necesario crear etiquetas escoitarGZ <lb:enlace_base> e <lb:enlace_sufix> que devolveran un enlace html con unha url completa engadindo "/espanol" ou "/english" cando sexa necesario no primeiro caso e un enlace html con unha url completa máis un subfixo "&lang=es", <code>"&lang=gl" ou "&lang=en" para os enlaces a páxina spip no segundo caso.

 Correxiuse un fallo á hora de ler as arrays de datos en functions.php na carpeta /templates que obviaban a última comarca de cada provincia na liña 71 cambiouse "for ($u=2; $u<count($arrayComarcas[$i]); $u++) {..." por "for ($u=2; $u<=count($arrayComarcas[$i]); $u++) {...".

 Mellorase o formulario de organización en new_org.php para que inclúa un campo no que introducir o listado de e-mails que recibiran avisos de chegada de novas entradas ao arqivo sonoro. Para isto se engade un novo campo 'mailEnvio' na taboa lb_settings e actualizase <lb:area_comments2> en escoitarGZtags.php.

 Por último actualizáronse os googlemaps a versión 2.60 modificando os seus scripts para utilizar a función GMap2 en backend_validar.php e escoitarGZtags.php. Isto permitiu a inclusión de "map.enableDoubleClickZoom()" e obligou a modificar o xeito en que se recollen e introducen as coordenadas no mapa utilizando un "GLatLng('lonx', 'lat')" no logar de un "GPoint('lat', 'lonx')" o que implicou invertir á orde en que se introduce a lonxitude e a latitude, tamén foi necesario modificar o xeito en que se modifica o centro e zoom dos mapas utilizando a función "map.setCenter('lonx', 'lat', 'zoom', 'clase')".