Delprosjekt:
Automatisk innlegging av eksterne linker

Ansvarlig:
Knut A. Mork (knut.a.mork@hiof.no)
Innledning:
Det kommer en jevn strøm av email til administrator fra privatpersoner og firmaer om forespørsel om å legge inn link til deres sider på Al Mashriq.

Under hver hovedkategori på serveren er det en webside med linker til eksterne sider på nettet. Det er ikke eksterne linker inne i andre websider enn slike som nevnt over, med få spesielle unntak. Det er ikke lagt noen automatisering i f.eks. jevnlig kontroll av de eksisterende linkene på serveren.

Problemer

Siden det kommer relativt mange forespørsler går det med mye tid på å legge inn eventuelle eksterne linker. Dette fører også til at det ikke alltid blir gjort. Ideen er altså å automatisere så mye so m mulig av dette arbeidet.

Et annet problem er såkalte døde linker (linker som ikke lenger fungerer) på serveren. Webxref er satt opp til å kjøre en gang i uka, men dette fungerer ikke som det skal.

Planer og ideer:
Istedenfor at en mailer administrator (almash) om deres sider, skal de gå inn på en side og skrive inn url til deres sider, samt en kort beskrivelse av hva siden inneholder. Når brukeren har gjort dette, vil det automatisk bli sendt en mail til administrator som inneholder url'en, beskrivelsen og mulig forslag til hvor linken skal plasseres, evt. en link til dewey. Ved å sende en replay og som inneholder sted hvor lin ken skal plasseres, skal den eksterne linken bli plassert på riktig sted. Ved å bare droppe mailen, vil det ikke bli lagt inn noe.
Eksterne linker skal ligge på index.html-filen til de forskjellige katalogene, som er organisert etter Deweys Desimalklassifikasjonssystem.

Webxref skal kjøres jevnlig (via crontab), og gi fornuftige tilbakemeldinger til administrator. Døde eksterne linker, bør automatisk bli luket ut.

Hva er blitt gjort:
Det ble bestemt å droppe planene med å legge til eksterne linker til de automatisk genererte index-filene. Et argument for dette var at disse sidene vil sjelden eller aldri bli oppsøkt av brukerne. Det vil også være lettere for administrator å plassere linkene slik det nå er gjort. Det som ble bestemt er at eksterne linker vil blir lagt til de relevante dokumentene under katalogen /base/, som inneholder hovedsidene for de ulike temaene på Al Mashriq.

Vil en bruker ha en link til vedkommendes side på Al Mashriq, går han til siden links.html. Her fyller han inn url, tittel (som det skal klikkes på), og eventuelt en kort beskrivelse av nettstedet. Når det er gjort, vil det bli sendt en mail til almash@edmund hiof.no. Mailen vil inneholde informasjonen som brukeren skrev inn, og forslag til hvilke dokumenter linken skal plasseres i (kun et sted er tillatt, med mindre administrator sender flere replay tilbake). Ved å ; sende en r eplay på mailen, og her skrive inn i hvilket dokument linken skal plasseres, vil linken bli automatisk plassert inn i riktig dokument. Administrator kan forandre på f.eks. beskrivelsen hvis dette er ønskelig. Det eneste som er nø dven dig er å skrive inn fil-navnet etter linjen: "> FILE: ".

    Eks: ">FILE: others.html".
Ellers er det ingenting i mailen som behøver å slettes eller forandres på. Det er viktig å ikke forandre på subject. Scriptet som får mailen ser etter at subjectet er riktig, og deretter hva som står etter ordene : "URL: ", "TITLE: ", og "DESCRIPTION: ".
Den nye linken blir lagt til i det aktuelle html-dokumentet øverst under kategorien "External links".

Det blir ikke foretatt noen kontroll på om nettstedet som brukeren har skrevet inn, eksisterer og er oppegående.

Det ble opprettet en mail-alias på Edmund2 som førte til et perl-script. Det er dette scriptet som tar imot mail fra administrator og setter inn linkene i dokumentene. Mail-adressen til aliaset var x-link@edmund2.hiof.no. Dette ble gjo rt ved å editere filen /etc/aliases på følgende måte:

    x-link: "| /home/almash/admin/x-link/mail-link.pl"
Deretter må man oppdatere systemet ved å kjøre kommandoen newaliases. Dessverre ble dette scriptet kjørt av bin og ikke almash, derfor måtte bin ha adgang til både scriptet og alle html-dokumentene i base-katal ogen.
Det ble istedet opprettet en ny bruker på edmund2, kalt x-link. Denne brukeren har samme id og gruppe-id som almash, dvs. at x-link blir en alias-bruker for almash. Under hjemmeområdet til x-link, /home/x-link/, lagde vi en .forward< /i> fil som peker på scriptet, /home/almash/admin/x-link/mail_link.pl.

Kun mail med det spesifikke subjectet vil bli behandlet av scriptet.

Skal formatet på sidene under /base/ forandres, må en også huske på å forandre på syntaksen i scriptet mail-link.pl. Syntaksen er nå som følger:

<!-External links-->
<li> <a href="">Tittel2</a> Beskrivelse2
<li> <a href="">Tittel1</a> Beskrivelse1

Den første linjen er for å vise scriptet hvor den nye linken skal plasseres (dvs. rett under).

De forslag til dokumenter som blir presentert i mailen til almash, kommer fra filen base_list. Legges det til et nytt dokument i katalogen /base/ som en ønsker skal inneholde eksterne linker, bør filnavnet til dokumentet legges til i base_list.

Cgi-scripts kan medføre en sikkerhetsrisiko. x-link.pl er blitt gått igjennom med tanke på dette, og fjernet de muligheter som var for å kunne tilføre uønsket adferd på serveren. Bl.a. er det ikke mulig å sende over endel spesielle tegn til scriptet. F.eks. kan ikke en bruker skrive inn en beskrivelse som inneholder semikolon (;).

Illustrasjon av gangen i systemet:

Mulige forbedringer:
Når alle base-filene ble editert for å kunne automatisk bli oppdatert, ble noen linker i dokumentene flyttet til under punktet "Eksterne linker". Det var vanskelig å vite hvilke linker som hørte hjemme her, og hvilke som skulle pl asseres andre steder i html-dokumentet. Noen eksterne linker er gjerne mer betydningsfulle og verdifulle enn andre, og vil derfor ikke passe inn i en etter hvert lang liste over alle mulige slags mer eller mindre viktige eksterne linker. F.eks. siden /bas e/books.html inneholder vel så og si bare eksterne linker, men disse er organisert og kategorisert etter forskjellige typer. Et forslag til forbedring er å gå igjennom alle disse sidene, og plukke ut de linkene som kan settes i lista ove r "Eksterne linker".
Prosjektfakta
Lokalisering: Tidsestimering:
  • 84 timer