Delprosjekt:
Rammebasert søk

Ansvarlig:
Arne Vonheim (arne.vonheim@hiof.no)

Innledning:
Når man søker etter stoff så vet man ofte ikke på forhånd hvilket dokument man er ute etter. Man må med andre ord bla i gjennom et antall irrelevante sider før man finner det man leter etter. Med enkelt/avansert søk gjøres dette ved å bla mellom søkesiden og de aktuelle sidene. Dette kan være frustrerende siden det tar litt tid å bla tilbake til søkesiden, og da har man kanskje glemt hvilken link man så på sist.

Rammebasert søking betyr at skjermen (nettleseren) deles i to, enten vertikalt eller horisontalt. Hvis man velger vertikal splitting vil venstre brukes til søkingen, mens høyre vil brukes til forhåndsvisning av sidene. Ved horisontal splitt vil den øverste benyttes til søking og nederste til visning.

Et søk foregår ved at man taster inn søkekriteriene i søke rammen. Deretter vil man få presentert en liste over treff i samme ramme. Når man klikker på et dokument eller en katalog vil disse dukke opp i forhåndsvisnings rammen. For å spare nedlastingstid blir bilder og bakgrunnsgrafikk fjernet fra HTML dokumenter.

Dokumenter vil få en link øverst og nederst som åpner det over hele vinduet, med normal grafikk. Brukeren har da fjernet seg fra søkesidene. Linker inne dokumentene vil åpnes på samme måte.

Anbefalt for bruk av denne tjenesten er en nokså høy skjermoppløsning. Med horisontal splitt bør man ideelt ha 1024 skjerm punkter i bredden (siden Al Mashriq dokument standarden er 528 punkter). Vertikal splitt er primært ment for at brukere med mindre skjermer skal få full dokumentbredde inn i forhåndsvisningen.

Hva har vi gjort/teknologi:
Søkescriptet som brukes er det samme som for enkel/avansert søk. Forskjellen er at søkeformen kaller opp WebGlimpse med en target opsjon. Denne inneholder navnet på den rammen linkene skal åpnes i. Når WG tar i mot en slik opsjon vil den gi alle linker en ny target, og dessuten legge URL'en til cgi-scriptet add_frames_remover.pl foran URL'en til den ønskde siden.

Altså vil en link som vanligvis ser slik ut:

    <a href="/index.html">
Se slik ut hvis WG kalles opp med opsjonen target="preview":
    <a href="/cgi-bin/add_frames_remover.pl? http://almashriq.hiof.no/index.html" target="preview">

På denne måten vil et trykk på en link ta resultatet fra add_frames_remover.pl, og vise dette i forhåndvisnings rammen. Cgi scriptet på sin side henter inn siden som skal vises, fjerner bilder og legger til "normalvisning" linker, før den sender resultatet tilbake til nettleseren.

Siden det er cgi scriptet som henter ned sidene tror nettleseren at dokumentet befinner seg der cgi scriptet ligger. Dermed tar det utgangspunkt i denne URL'en når relative linker skal gjøres om til absolutte URL'er. For å få dette til å fungere måtte cgi programmet selv konvertere fra relative til absolutte. Dette var en nokså omfattende oppgave siden det er ganske mange lovlige måter å lage en <a href=...> tag.

Mulige forbedringer:
Bedre system for bytting mellom avansert og rammebasert søk. Kanskje to knapper i søke formene - en som viste resultatet som avansert søk og en som viste det som rammebasert søk.

Kjente feil:
For å kunne lage korrekte absolutte linker trenger add_frames_remover.pl å kunne skille mellom kataloger og filer i URL'er. Hvis en link i et dokument er til en katalog, men ikke avsluttes med en /, vil programmet se etter om siste delen inneholder ett punktum. Hvis det inneholder punktum vil programmet anta at det er en fil. Likeledes vil et filnavn uten punktum tolkes som en katalog.

Prosjektfakta
Lokalisering: Tidsestimering: