Login / Status
developer.Resource
Home . Documentation . Document Library . Tutorials
Sponsors
hosted by punkt.deTYPO3 and Open Source MagazineAOE Media

1.6. Specielle indholdselementer

Du har tidligere fået introduceret sideindholdselementer i almindelighed så du ved hvordan de virker. I dette kapitel vil jeg vise dig nogle få eksempler på specielle indholdselementer som ikke desto mindre er ret populære. Hvordan kan du fx lave en email-formular? Eller en søgeboks til at søge i indholdet på dit websted? Hvad med en gæstebog?

Bare læs videre og du vil få at se.

Email-formular

Vi har allerede en email-boks på webstedet. Hvis du går ind på siden "Contact" kan du se sådan en formular:

I backend'en ser det indholdselement der laver sådan en formular sådan her ud i Side-modulet:

Læg forresten mærke til "Thank you"-siden som er en underside til "Contact"-siden!

Nå, rediger elementet. Du få vil få denne formular at se:

Indholdet er tilsyneladende endnu mere "kodeagtig" end "Tabel"-indholdselementet! Men som sædvanligt - klik på guide-ikonet og du får et værktøj som gør det meget lettere at redigere indholdet!

Som du kan se bliver koderne lavet om til denne nydelige formular. Her bliver hvert felt i formularen oprettet med visuelle værktøjer. For hvert felt skal du selvfølgelig indtaste en betegnelse (Label: #1) og en felttype (Type: #2). Det er de synlige dele. Du skal også give feltet et internt navn (#3) som er det der vil blive vist i den email som modtageren får. Hvis du har valgt typen Liniefelt (Input field) kan du også indtaste en standard værdi (#4).

I alle email-formularer skal der sættes tre værdier: Teksten på send-knappen (#5), emne-linien i den sendte email (#6) og slutteligt email-adressen på den der skal modtage email'en (#7). Det vil normalt være dig eller den fra dit hold som er sat til til at reagere på feedback.

Tilføje en selektor-boks

Nu kan vi prøve at tilføje en selektor-boks hvor folk kan vælge hvad de gerne vil have tilsendt. I "FC Bigfeet" har vi årskalendere, klubbladet og blyanter som vi sender til folk.

Du skal simpelthen blot vælge typen "Selektor-boks":

Tryk så på "Opdater uden at gemme"-knappen (som ikke gemmer indholdet men blot genoptegner formularen!)

Indtast så nedenstående informationer:

Betegnelsen er indlysende (#1). Feltnavnet "item_to_send" (#2) er ikke synligt på websiden men som jeg skrev før - det er den beskrivelse modtageren vil få at se så han kan identificere valget! Til sidst skal hver værdi som skal optræde i selektor-boksen indtastes som en linie i tekst-feltet (#3) - så enkelt er det. Gem indholdet fra guiden og se siden:

Det er let!

Nogle få bemærkninger

Nu blev den nye selektor-boks tilføjet i kodelinierne i Opsætnings-feltet:

Hvis du er nysgerrig kan du prøve at se på linien. Måske kan du faktisk gennemskue syntaksen for at lave formularfelter uden guiden:

Hvis du bliver utålmodig kan du søge hjælp i TSref-dokumentet hvor der er et kapitel som prøver at beskrive detaljerne.  Du er dog advaret - det er en dybtgående teknisk beskrivelse som du endnu ikke er vant til!

En anden vigtig ting er "Spring til side" - det felt fortæller simpelthen TYPO3 hvilken side der skal vises når formularen er udfyldt og afsendt.

Med andre ord - når brugeren har udfyldt formularen og trykket på "Send formular!"-knappen får han vist den side der indholder.... et helt almindeligt indholdselement med denne hilsen:

Ret enkelt, ikk'? Meget fleksibelt.

Troubleshooting

På Windows-servere er der en god (!) chance for at mail-funktionen ikke virker. Hvis du sender formularen og får en fejlmeddelelse fra PHP er den mest sandsynlige forklaring at du ikke har en SMTP-server eller hvad nu PHP behøver for at sende mails. På UNIX virker dette normalt lige ud af boksen.

Søgeformular

Det næste projekt bliver at implementere en søgeformular. Det er endnu lettere og der er allerede lavet en på siden "Search":

Elementet i sig selv er meget enkelt:

I bund og grund er det blot et spørgsmål om at sætte indholdselementtypen til "Søg" - og det er det. I dette tilfælde er  der også et "Send til side"-felt som dog ikke er i brug. Det gør det samme som "Spring til side"-feltet i email-formularer - fortæller elementen hvilken side der skal modtage søgeforespørgslen (som skal indeholde et andet "Søg" indholdselement for at vise resultaterne!) Hvis værdien ikke er sat bruges den aktive side. Det er ret almindeligt med søgebokse.

Udføre en søgning

Hvis du søger efter ordet "results" kommer to resultater op:

Prøv at klikke på titlen "Report results":

Du bliver så dirigeret hen til siden og søgeordene er nydeligt farvet røde. Sødt, ikk'.....

Indekseret søgning?

Standard søgeelementet som du bruger her søger direkte i side- og sideindholdselement-rækkerne i databasen. Dette er effektivt til mange mindre websteder.

Hvis du har brug for søgning i indekseret indholdet på professionelt niveau kan du også få  det. Faktisk kan du få alt som der er lavet en extension til (mere om det senere). For nu kan du prøve http://typo3.org som eksempel på den indekserede søgemaskine som TYPO3 tilbyder:

Resultatsættet bliver vist nogenlunde som det her:

Bemærk hvordan resultaterne er nydeligt organiseret i sektioner og sorteret efter deres procentvise relevans.

Den extension som gør alt det har "extension nøglen" "indexed_search" og manualen med mere information kan findes her.

Gæstebog

Det er også enkelt at tilføje en gæstebog. Ting som en gæstebog, diskussionsforum, nyhedsmodul osv er dog normalt udformet som extensions - og extensions skal installeres før de kan bruges. Det kan endda være nødvendigt at importere dem fra online-arkivet, TER (TYPO3 Extension Repository) hvis de endnu ikke er tilgængelige på din server.

For at installere en extension som gæstebogen skal du simpelthen gå til Extension Manager'en (EM) og klik på tilføj-ikonet:

I visningen "Loaded extensions" kan du se en liste over installerede extensions:

Indsætte gæstebogen på siden

Som med email-formularen og søgeboksen indsættes gæstebogen - og normalt enhver anden webapplikation (kaldet et "plugin" i TYPO3-terminologien) - som et sideindholdselement der optræder som pladsholder for funktionen:

Typen "Indsæt plugin" er hoved-selektoren og sekundært bruges "Plugin"-selektorboksen til at bestemme plugin-typen.  Valgmulighederne viser (nogen af) de installerede extensions:

Vi har allerede en generel gæstebog - lad os nu lave en til "Team pages"-sektionen som kræver login med brugernavn og adgangskode:

Gå til Side-modulet, klik på "Team Pages"-sidetitlen i sidetræet og vælg "Ny side"-guiden (se tidligere):

Indtast en sidetitel:

Gem og luk. Opret så sideindhold:

Vælg plugin'et "Gæstebog":

(Prøv nu at gætte på hvor let det er at indsætte nyheder og diskussionfora... :-)

Og gem formularen:

Bemærk "CODE"-feltet - det indeholder nogle tekstkoder som får gæstebogen til at vise sig på websiden - en god grund til at bruge "Nyt indhold"-guiden til at indsætte elementet da koderne så er udfyldt på forhånd!

Du kan naturligvis indtaste en titel og andre indholdselementer på siden - men hovedfunktionaliteten er indsættelsen af dette element:

Og - voila! - er gæstebogen der!  (jeg har lavet en testudfyldning her...)

Hvor gemmes gæstebogsindholdet?

Hvis du har brug for at administrere din gæstebog - fx fjerne useriøse indtastninger som mit ovenfor - kan du simpelthen gå ind i Side-modulet for siden og du vil kunne se gæstebogs-elementerne samtidig med de almindelige indholdselementer:

Spekulerer du nu på hvordan du kan redigere det? Bare klik på ikonet for en gæstebogsindtastning (husk - pas på konsistente koncepter!):

Det samme gælder for diskussionforummet (som vi bruger det) men det er ikke alle plugin's der lister elementerne i Side-modulet, så egentlig skal vi bruge Liste-modulet hvis vi vil have en generel indgang til at administrere elementer:

Dette fører mig hen til hovedpointen - gæstebøger er også blot databaseelementer i TYPO3 ligesom sider, sideindholdselementer, brugere osv.; vi kan redigere dem, skjule dem, slette dem og kopiere/indsætte dem rundt med det allerede kendte sæt af værktøjer i systemet - konsistente koncepter.... du vil snart elske dem!

Oversigtskort (sitemap)

sitemap)

Jeg vil ikke bruge meget tid på at indsætte oversigtskortet - du kender princippet. Et indholdselement af en bestemt type med nogle ekstra indstillinger:

Læg bare lige mærke til  "Udgangspunkt"-feltet - det afgør hvilken side oversigtskortet tegnes fra! Ligesom andre "menutype"-indstillinger anvender denne værdi. I stedet for oversigtskort kan du også indsætet andre typer "link-lister" baseret på sidestrukturen og indholdselementer på sider:

Du er velkommen til at lege med disse. Husk - får du brug for hjælp er det lige ved hånden:

Nyheds-plugin

På dette websted er det brugte nyheds-plugin fra "mininews"-extension'en. Vi skal derfor sikre os at den er installeret (Extension Manager):

Da den allerede var installeret kan vi nu undersøge hvor dette plugin er blevet anvendt. Den vigtige forskel fra gæstebogen er at mininews-plugin'et er blevet indsat både på forsiden (teasers) og på nyhedssiden (arkiv + detaljeret visning)! Pointen er at forsiden viser de seneste tre nyheder:

Og ved at klikke på "[more...]"-link'et bliver brugeren dirigeret direkte til "News"-siden hvor hele historien bliver vist:

Indholdselementerne i backend'en

På forsiden finder du dette indholdselement i bunden af siden hvis du kigger på siden med Side-modulet:

Indholdet er:

Bemærk for det første at Visningstypen (Listing mode) - en selektorboks der er specifik for dette plugin - er sat til Forside  teaser så teaser'en og ikke arkivet bliver indsat. For det andet bruges Udgangspunkt-feltet (Startingpoint) til at pege på den side hvor arkivet - som lister hele historien - findes!

På "News"-siden er et lignende element indsat! Det er kun Visningstypen der er anderledes:

Og hvor gemmes nyhedselementerne?

Tja, prøv at tænk tilbage på gæstebogen: nyhedselementer er elementer som ethvert andet databaseelement som TYPO3 håndterer. Den bedste måde at få det fulde overblik over elementerne på en side er med Liste-modulet. Lad os prøve det:

Og hvordan vi redigerer et?

Og opretter et nyt?

Skærmbillederne taler for sig selv tror jeg...

Nyheds-workflow

Nå, hvad hvis jeg gerne vil have en anden person til at skrive nyhedsartikler for mig? Og hvad hvis jeg vil gennemse nyhederne før de bliver offentliggjort? Kan TYPO3 gøre det?

Det er en situation der beder om et "workflow" (arbejdsgang). Senere i denne gennemgang bliver lige nøjagtig det beskrevet til brug i et enkelt setup som det vi har brug for her. Bare bliv hængende.