24. januar 2011 - 16:03Der er
28 kommentarer og 1 løsning
Script som opdaterer efter aktuel dato
Min kone vedligeholder en foreningshjemmeside med en liste som indeholder en lang række af datoer med aktiviteter. Denne liste opdaterer hun manuelt og det bliver dermed et temmelig stor arbejde efterhånden. Findes der et script som kan "læse" den skrevne liste dato efter dato, og selv løbende "flytte" til den næste dato når den aktuelle dato er passeret. Kan et java-script "klare sagerne"?
Spørgsmålet er vel: hvor er listen med datoer/aktiviteter - og i hvilket format er listen? Er det en database, eller en simpel tekst fil eller en XML fil eller noget 4.?
Og er der adgang til f.eks. PHP på den webserver hvor hjemmesiden findes?
Det er håbløst at udtrække data fra en .doc fil. .doc filer er til for at skaffe indtægter til Microsoft, de er ikke til for at blive brugt til noget som helst.
Dataene (listen med aktiviteter) bør ligge i en database eller i en XML fil (eller JSON fil eller anden forståeligt tekst-fil format). Så kan PHP læse dataene og finde de aktiviteter som passer med datoen og indsætte dem i hjemmesiden.
Det må jeg lige undersøge nærmere m.h.t. enten database eller XML fil. Ved første øjekast ligner XML en del hen efter HTML ? Det skal jeg lige "sætte mig lidt ind i" (kender ikke dette format)
Når jeg så på et eller andet tidspunkt får "styr på" at kode et XML-fil-dokument, kan du så hjælpe mig videre med et script som kan "læse" XML ? Skal scriptet placeres i hjemmesidens HTML-kode på det sted hvor listens "data" ønskes vist, evt. i et felt (ramme) ?
Dit eksempel: 2011-01-25 Kaffe og kage 2011-06-19 Sommerferien begynder 2011-12-24 Juleaften skrives det ind i et "eksternt dokument" (tekst-fil) som uploades til hjemmesidens HTML-mappe. Er det et "must" at datoangivelsen er "bagvendt" (engelsk)? Har du evt. "en passende stump" PHP-kode ?
Dataene skal naturligvis stå i en tekst fil af en slags som din kone uploader til hjemmesidens HTML mappe hver gang der er rettelser.
Dato angivelsen kan være i et hvilket som helst format du ønsker - bare det er det samme fra gang til gang; jeg har bare brugt det format som er standard. Grunden til at det format er standard er at det er nemt for computere at arbejde med.
Her er et eksempel som antager samme format som tidligere beskrevet - har ikke testet det:
Er ovennævnte en "sti" til dokumentet ? = Dokumentets navn skal altså hedde: aktiviteter.doc - som er et "extern tekst-fil" (Er det rigtig forstået, at det ikke skal være i XML-format) ?
"/home/myuser/public_html/aktiviteter.txt";
Skal denne kode indeholde foreningens domænenavn f.eks. "/www.korsløkke.dk/myuser/public_html/aktiviteter.txt";
/home/myuser/... er filens navn (sti) på web serveren. Du må evt. spørge web-hotellet hvor du bør ligge filen. Du kan muligvis erstatte $fil = "/home/myuser/..."; med $fil = $_SERVER["DOCUMENT_ROOT"]."/aktiviteter.txt"; hvis "aktiviteter.txt" filen uploades til samme katalog som selve HTML dokumentet.
Mit eksempel bruger naturligvis en fil i det format som jeg tidligere gav et eksempel på, altså ikke XML.
Der er en lille fejl i mit eksempel: 2 steder henviser jeg til at de første 8 tegn af hver linie er datoen, det er naturligvis de første 10 tegn, så ret "8" til "10" de to steder.
Jeg laver en test på min hjemmeside inden jeg "overdrager" den til min kone. Jeg har gemt 2 udgaver af testsiden: htm + php På htm-siden vises noget at koden. På php-siden intet :-( Dataene fra aktiviteter.txt vises ikke :-( Vil du tage et "kig" på det ?
HTML siden skal hedde .php ellers ved webserveren ikke at det er PHP og så sender den bare det hele afsted til din browser. Men det er godt nok at du har gjort det på begge måder, ellers kunne jeg ikke se din PHP.
Det ser ikke ud som om du har gemt en fil med aktiviteter. Eller også ligger den et forkert sted, men så burde der komme en fejl. Eller også er filen tom eller i et forkert format. Prøv evt. at udskrive indholdet af $_SERVER og $fil, ved at tilføje
Jeg blev lidt i tvivl om ovenstående skulle være en tilføjelse eller noget som skulle gå i stedet for, så jeg prøvede begge dele. $alle = file($fil, FILE_IGNORE_NEW_LINES); print_r($_SERVER); print_r($alle); eller $alle = print_r($_SERVER); print_r($alle);
Ja. Nu fungerer det! Er det muligt at datoen vises også? (30.01.2011) Kan teksten undgå at "knække" når den bliver længere? Kan den komplette aktivitetsliste vises. Stadig med den nærmest forestående dato øverst+ http://www.morgenmusikken.dk/ (...)
Jeg har nok ikke formuleret mig godt nok. Kan hele datolisten vises (f.eks. 20 datoer med aktiviteter) Kan man vælge andre skrifttyper? Kan dataene vises i rammer/spalter?
Ja, det er op til dig selv at vælge hvilke der skal vises og hvilke der ikke skal vises, ved at lave passende sammenligninger. I øjeblikket sammenlignes scriptet bare datoen med "idag".
Skrifttype/rammer/spalter: det har at gøre med HTML design.
Som tidligere nævnt har jeg overhovedet ingen erfaring med PHP. Kan du ændre scriptet til ikke bare at vise "dagen i dag" men udover "dagen i dag" at vise samtlige datoer i listen som er nyere end "dagen i dag".
Jeg forstår det du skriver således, at man kan i HTML-koden på hjemmesiden kan ændre skrifttypen. D.v.s at dataene kommer fra .txt-filen men udseendet kan ændres i HTML?
Hvis dataene fra .txt-filen skal fordeles i nogle spalter, kræver det vel at php-scriptet placeres i hver sin spalte? Derefter skal koden vel tilpasses til kun at vise nogle bestemte fragmenter af txt.filen netop i den pågældende spalte?
Lige et spørgsmål mere! Kan php-scriptet styre dataene ikke (ikke kun datoen 2011-01-30) men også udfra klokkeslettet (kl. 9.00 og 10.30) Altså fjerne tekstlinien når tidspunktet er passeret?
Skriv evt. en intern besked til mig så kan vi kigge på det. ellers kan jeg anbefale www.php.net som er et godt sted at starte hvis man skal lave hjemmesider i php.
Skriv evt. en intern besked til mig så kan vi kigge på det. ellers kan jeg anbefale www.php.net som er et godt sted at starte hvis man skal lave hjemmesider i php.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.