cambios da versión Beta0.6 á Beta0.7 (24-08-2006)

24 agosto 2006

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 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 que devolva as etiquetas do formulario e mellorar para que faga a procura e devolva os resultados antes de . Isto é así porque ao situar a etiqueta antes do mapa se esta devolvese as etiquetas html do formulario

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 "" 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 $posicion = strpos($trozos[$i], "http://");
if ($posicion === false){
$message_html.= $trozos[$i]." ";
} else {
$posicion = strpos($trozos[$i], "(");
if ($posicion === false) {
$message_html .= "".substr(str_replace("http://", "", $trozos[$i]), 0, 20)."... ";
} else {
$message_html .= "".substr($trozos[$i], ($posicion + 1), (count($trozos[$i]) - 2))." ";
}
}
}

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 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 e 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", "&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 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 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')".