Brukerveiledning for administratorer
Fafo oppgraderer sine nettsider og har i den forbindelse litt problemer med søkefunksjonen og visning av publikasjoner. Hvis du ikke finner det du leter etter kan du sende en epost til så skal vi bistå deg

5.1.9.7 – ZOOdevs: utskrift, tabellayout, kategorilister med antallregulering

ZOO, kombinert med spesialløsningene fra ZOOlanders løser de fleste problemstillingene i forbindelse med fafo.no. Men av og til dukker det opp behov for løsninger som ikke lar seg realisere via standardversjonen av ZOO og selv ikke med hjelp av spesialløsningene fra ZOOlanders. I slike tilfeller har Fafo benyttet seg av et utviklerfirma som heter ZOOdevs, som har spesialisert seg på å utvikle løsninger for individuelle kunder på spesialbestilling. Pr. november 2015 har Fafo fått levert 3 (4) slike spesialløsninger:

  1. Egen utskriftslayout for alle typer layouter
  2. Tabellayout som ekstra Extension Layout
  3. Muligheten til å sortere relaterte lister (Related Items Pro-lister) etter kategorier OG
  4. Begrense antall poster som vises i listene, med mulighet til å vise alle.

Vi skal gjennomgå alle 3 spesialløsningene i dette kapitlet.

Egen utskriftslayout for alle typer layouter

Det er et velkjent problem at utskrifter direkte fra en nettside sjelden blir særlig pene eller strukturerte. Dette er spesielt et problem i forbindelse med utskrift av forskernes CV, disse er formatert med 2 spalter, grafikk og diverse lister med spesialformaterte overskrifter, aktive lenker osv. Faktisk kan man si at ZOO mangler både en utskriftslayouttype og en mekanisme for å velge denne layouten når man ønsker å skrive ut en side. Men hvis du går til layoutvalgene for Personer, så ser du at det helt til høyre i Fafo01 står «Utskrift». Hvis du åpner denne så ser den i utgangspunktet ut omtrent som en Full-layout. Men dette er ingen ordinær ZOO-layout, men derimot en spesialløsning utviklet for Fafo fra ZOOdevs. Vi har foreløpig kun implementert løsningen for CVene, men i prinsippet kan løsningen anvendes på en hvilken som helst type på fafo.no. Ved å gjennomgå hvordan løsningen er implementert for Personer/CVene vil du forhåpentligvis være i stand til å bruke den samme løsningen for andre utskrifter dersom det blir behov for det.

NB! En utførlig brukerveiledning med skjermdumper finner du her: ZOOdevs_PrintLayout.pdf. Metoden vil fungere både for en ny og en eksisterende ZOO app type.

  1. Logg deg på cPanel på fafo.no-tjeneren og velg File Manager.
  2. Gå til media/zoo/applications/<application>/templates/<template mappe>/renderer/item. I vårt eksempel blir det media/zoo/applications/business/templates/fafo01/renderer/item. Her finner du de vanlige filene; feed.php, full.php, metadata.xml osv.
  3. Opprett en ny mappe, og gi den samme navn som aliaset (slug) for den typen du ønsker å lage en utskriftslayout for. I dette eksemplet “personer”.
  4. Kopier alle filene fra fafo01 (edit.php, feed.php etc.), bortsett fra positions.config, og lim dem inn i den nye mappa (personer). For å lage en spesifikk utskriftslayout gjør vi følgende (alt foregår inne i den nye mappa vi laget):
  5. Åpne den nye mappa og kopier f.eks. full.php og kall den nye fila for “utskrift.php”.
  6. Rediger metadata.xml: Vi må legge inn den nye layouten på samme måte som de andre layoutene:
    • <layout name="utskrift">
      • <name>Utskrift</name>
      • <description>Denne layouten er for utskrift av CVer.</description>
    • </layout>
  7. Rediger positions.xml på samme måte, ved å legge inn den nye utskriftslayouten og de posisjonene du ønsker å ha med, f.eks.:
    • <positions layout="utskrift">
      • <position name="title">Tittel</position>
      • <position name="image">Bilde</position>
      • <position name="description">Beskrivelse</position>
      • <position name="content">Innhold</position>
      • <position name="link">Lenker</position>
    • </positions>
  8. Rediger den nye layout.php-fila; utskrift.php. Husk at poenget med denne er at den skal ha en enklere struktur enn f.eks. full.php, med alle feltene under hverandre i én kolonne. Strukturen blir derfor også enklere, og ved å gi hver posisjon en egen CSS-klasse blir det enkelt å formatere de ulike områdene. Øverst standardtekst med copyright etc., samt no direct access-code
    • <div class="hele-bredden">
      • <?php if ($this->checkPosition('title')) : ?>
      • <h1 class="utskrift_title"><?php echo $this->renderPosition('title'); ?></h1>
      • <?php endif; ?>
      • <?php if ($this->checkPosition('image')) : ?>
      • <div class="utskrift_image">
        • <?php echo $this->renderPosition('image'); ?>
      • </div>
      • <?php endif; ?>
      • <?php if ($this->checkPosition('description')) : ?>
      • <div class="utskrift_description">
        • <?php echo $this->renderPosition('description'); ?>
      • </div>
      • <?php endif; ?>
      • <?php if ($this->checkPosition('content')) : ?>
      • <div class="utskrift_content">
        • <?php echo $this->renderPosition('content'); ?>
      • </div>
      • <?php endif; ?>
      • <?php if ($this->checkPosition('link')) : ?>
      • <div class="utskrift_link">
        • <?php echo $this->renderPosition('link'); ?>
      • </div>
      • <?php endif; ?>
    • </div>

Nå skal den nye utskriftslayouten vises under Layouts for Personer, med de posisjonene vi har opprettet. Husk at lenker bør deaktiveres, da de ser merkelige ut på utskrift.

  1. I tillegg til standard elementer må det legges til en utskrifts-kommando i form av et Static Content-element med følgende parametre:
    • Main Layout: Default
    • Default Layout Render: Text/Plugin
    • Options > Text: <a href="javascript:void(0)" onclick="window.print();">Skriv ut</a>
    • Plugins > Evaluate on render er ikke nødvendig.
  2. Til slutt må det legges inn en Skriv ut-kommando på den layouten man ønsker å skrive ut fra, i dette tilfellet forskernes CV, altså på full.php. Det gjøres også med Static Content, med følgende spesifikasjoner:
    • Main Layout: qTip
    • Layout > Render: Text/Plugin, ingen parametre for Options > Text eller Plugins
    • qTip Display > Mode: Modal
    • qTip Display > Show > Event: click, ingen parametre for Show > Delay eller Solo (no)
    • qTip Display > Content > Class: ui-tooltip-light ui-tooltip-print, Title: None, Button: Yes, Width: f.eks. 800, Height: f.eks. 600
    • qTip Display > Trigger > Render: Yes, Trigger: Custom Text, Trigger Text: Skriv ut, Title: None
    • qTip Layout > Render: Iframe, Options > Render: Item, Item Layout: Utskrift, Item Source: Current qTip Layout > Filter: ingen parametre
    • qTip Layout > Separator > By: Space, Class kan legges inn hvis ønskelig.

NB! Etter Save, åpne igjen og sjekk at alle parametrene ble lagret riktig. Det som gjenstår er å definere CSS-regler for alle klassene, slik at utskriften formateres som ønsket. Dette er beskrevet i kapittel 9.1.1 – Egne CSS-regler (custom.css). Dessuten må du selvsagt konfigurere Utskrift-layouten slik du ønsker, samt teste at alt fungerer som det skal.

Tabellayout som ekstra Extension Layout

En annen layout som også mangler fra ZOO er en enkel tabellvisning av data («regnearktabell»), så ZOOdevs laget også en slik løsning for Fafo. Tabellvisningen kan benyttes på alle typer på fafo.no, og du finner den under Extension Layouts > ZOOitem Pro > tablecustom. Løsningen er implementer på følgende måte:

Følgende mapper og filer inngår i løsningen:

  • renderer
    • item
      • positions.xml
      • tablecustom.php (enkel php-fil som viser 5 header- og 5 kolonne-posisjoner)
  • tmpl
    • table
      • diverse mapper og filer
    • table.php

Du finner alle filene her: ZOOitem Pro-Table.zip

Disse filene må plasseres på følgende steder:

renderer/item/tablecustom.php legges i modules/mod_zooitempro/renderer/item og gir oss en ekstra Extension Layout i tillegg til default.php etc.

renderer/item/positions.xml erstatter samme fil i samme mappe, den er lik den gamle men med tilleggsposisjoner for tabellayouten.

tmpl/table og tmpl/table.php legges på tilsvarende måte inn i modules/mod_zooitempro/tmpl. Dette er nye filer og erstatter ikke noen gamle.

Layouten tablecustom lages på vanlig måte, f.eks. i Business Directory > Personer > Extension Layout > tablecustom. Bruk Static Content for headere og ZOO-elementer for innholdet.

Hvis denne tabellen er det eneste som skal vises på en side er det enkleste å gjøre følgende:

  1. Lag en vanlig ZOO-artikkel med en forklaring til tabellen (kommer øverst).
  2. Opprett et menyvalg som viser denne artikkelen.
  3. Lag en ny module for ZOO Item Pro med følgende parametre:
    • Main Layout: Table
    • Renderer Layout: Tablecustom
    • Under items velger du App, Category og Type som skal vises, samt Order, f.eks. etter Personer > Etternavn for å velge en standard sorteringsmåte
    • Bruk et filter for å begrense hvilke poster som skal vises
    • Bruk Order for å sette en rekkefølge, f.eks. etter dato eller alfabetisk etter navn 
    • Module Class Suffix kan settes for å skreddersy hver tabellmodul. 

Vise ZOOitem Pro-lister etter kategorier

Som nevnt i andre kapitler så kan ikke standardelementene i ZOO (Related Items, Related Categories) koble sammen poster (lage relasjoner) i ulike apper/app-eksempler. Derfor bruker vi f.eks. Related Items Pro fra ZOOlanders, slik at kan koble forskerne (Personer) mot forskningstemaer, prosjekter og publikasjoner. Men hvis du går til definisjonen (Edit Elements) av et slikt Related Items Pro-element, f.eks. for Forskningstema og klikker på f.eks. Fafo-publikasjoner og klikker på bolken «edit items params» (mulig den vises åpen), så ser du at du kan velge app (app-eksempel) og type, samt velge hvordan en eventuell toveis kobling skal skje. Og hvis du går til Full-layouten og ser på definisjonen av f.eks. Fafo-publikasjoner, så ser du at du kan filtrere den etter type (Andre publikasjoner, Fafo i media osv.).

Dette er stort sett tilstrekkelig for de sammenkoblingene (relasjonene) vi ønsker å opprette på fafo.no. Men det er ett kriterium som mangler: Vi kan ikke spesifisere at vi ønsker å filtrere eller sortere ytterligere, basert på kategorier. Denne «mangelen» løses av spesialløsningen fra ZOOdevs.

Hvis du klikker på tannhjulfanen > Business Directory > Personer > Fafo01 > Full og deretter på en av Fafo-utgivelser-elementene (nesten nederst), så ser du følgende:

Main Layout = Grouped_by_cats: Dette aktiverer spesialløsningen fra ZOOdevs.

Category Limit: Her kan du i tillegg til å velge app-eksemplet du ønsker, også velge hvilken kategori du ønsker å vise. Lista viser da kun poster fra den valgte appen og den valgte kategorien. (Faktisk kan du velge flere kategorier samtidig, da vil lista vise alle postene fra disse kategoriene, men sortert i bolker for hver kategori.) Dersom du ønsker å vise flere lister, hver av dem med poster for en bestemt kategori trenger du ikke gjøre annet enn å duplisere ZOOitem Pro-elementet det gjelder på Full-layouten, og deretter velge den ene kategorien for den ene lista, og den andre for den andre osv.

Denne løsningen består av følgende mapper og filer:

  • relateditemspro
    • params
      • relation.php
    • tmp
      • render
        • grouped_by_cats (mappe)
        • grouped_by_cats.php

Hele denne mappa plasseres på følgende sted: media/zoo/applications/business (eller en annen)/elements/ 

Du finner filene her: relateditemspro.zip

Begrense antall poster som vises i listene, med mulighet til å vise alle

Denne løsningen er integrert i løsningen for å sortere relaterte lister etter kategorier. Det vil si at koden er innbakt i denne løsningen, slik at du kan se på filene nevnt ovenfor for å se hvordan det er programmert.

Listene med relaterte publikasjoner og prosjekter varierer enormt fra forsker til forsker, og noen har svært mange. Problemet blir da hvordan disse listene skal vises på sidene. Det er i utgangspunktet mulig å begrense antallet til f.eks. 5 eller 6, men dette er uheldig for de forskerne som har mange flere prosjekter eller publikasjoner. Løsningen som ZOOdevs utviklet er enkel, men genial. Den kan brukes på alle relevante layouter. Som eksempel bruker vi forskernes CV (Full-layout):

  1. Åpne Personer > Fafo01 > Full-layouten igjen.
  2. Gå ned til ett av Andre publikasjoner-elementene og klikk på det.
  3. Gå til den bolken som heter «Limit Result», der skal det være krysset av for «Yes». Som du ser har vi valg både for hvor mange som i utgangspunktet skal vises i lista, tekst på knappen for å vise alle («Vis alle») og for å vise færre igjen («Vis færre»). Legg merke til teksten over, som forteller oss at vi må sette Separator til en eller annen form for liste for at dette skal fungere.

Du kan se disse listene i praksis f.eks. på forskernes CV-sider.

NB! Denne løsningen fungerer også når du velger Main Layout = Default, altså uavhengig av sortering etter kategorier.

Redigeringsmeny