polopolyforum behöver verkligen skärpa till sig!

Sep 06

Du har säkert tanken ”Varför gör de inte så?”, ”Borde de inte lägga till…”. Vi vill veta vad du avskyr, diggar eller saknar på polopolyforum. För att vi tillsammans ska kunna hjälpa varandra och förbättra denna community har vi lagt till en feed back-funktion där vi vill få in dina tankar och åsikter.  Den är extremt enkel, klicka på fliken ”Tyck till” som ligger till höger och skriv vad du tycker.

Bra saker som kommer fram samlar vi upp i vår publika behovslista.

Knappen finns längst till höger (kräver javascript)

Knappen finns längst till höger (kräver javascript)

Taggar: , , , , , , ,

Polopolyforum tar semester

Jun 24

 

Sommaren står för dörren och jag och Patric vill passa på att önska alla medlemmar och läsare en riktigt skön sommar. Forumet kommer givetvis fortsätta i vanlig ordning men bloggen kommer ha ett lugnare tempo då vi vill ta igen oss lite och ladda inför en spännande höst.

Ha en trevlig sommar!

Med vänliga hälsningar // Niklas och Patric

polopolyforum-blogg

Taggar: , , , ,

Systemmeddelande i Polopolys redaktörsgränssnitt

Apr 01

En länge efterlängtad funktion från informationsavdelningen och systemdriften som underhåller installationen på KTH har varit att man ska kunna lägga upp ett systemmeddelande i Polopolys redaktörsgränssnitt som alla som loggar in eller redan är inloggade ska kunna se tydligt. Detta för att man snabbt och enkelt ska kunna informera alla inloggade redaktörer om man till exempel ska göra ändringar eller ska ta ner back end-servern för en uppgradering, så att de i god tid kan spara sitt pågående arbete och logga ut.

Systemmeddelande

Funktionen bygger på följande komponenter:

  • Polopolys indatamall p.UserSessionTemplate överlagras och får fältet:
    <field="systemMessage" input-template="it.field.systemMessage" label="" />
  • Mallen it.field.systemMessage definierar enbart policyn och en widget för editor och viewer.
  • Policyn är en extendad SingeValuePolicy som för tillfället inte innehåller någon extra funktionalitet.
  • Widgeten rendrerar en stylad div och hämtar systemmeddelandet (första gången) om det finns något. Till denna policywidget finns också en jQuerybaserad javascriptfil som till uppgift har att hämta systemmeddelandet via ett ajaxanrop var 3:e minut från en specificerd url, detta så att det ständigt uppdateras även om redaktören inte refreshar sidan.
  • I den mall (valfri) som sytemmeddelandet ska matas in läggs ett fält av typen p.TextArea in som senare innehåller själva meddelandet.
  • På den ovannämnda specificerade url:en ligger en servlet som hämtar systemmeddelandet och skriver ut det i en divtagg med ett id som ajaxanropet känner till. I responset så var vi tvugna att sätt headen så att den aldrig cachar sidan. response.setHeader(”Cache-Control”, ”no-cache”); Annars fanns det risk att IE inte fick ett uppdaterat meddelande.

Om det är någon som vill veta mer om denna mall, ta en titt på tråden i forumet med namnet ”Systemmeddelande” under kategorin ”Mallutveckling”. Den innehåller bl.a. delar av källkoden.

Taggar: , , , , ,

Hantering av robots.txt-regler i Polopoly

Mar 25

Jag tänkte berätta hur man kan gå tillväga för att underlätta hanteringen av robots.txt-regler, och på samma gång få möjligheten att delegera underhållet av dem till personer som arbetar närmare källan av innehållet. Vi hade länge denna funktion i vår ”back log” och när tiden var inne tog vi in den i utvecklingsetappen och resultatet blev lyckat.

Fördelarna med denna lösning är följande

  • Driftspersonal behöver inte längre blandas in när ändringar skall göras. Detta gör att driftspersonalen får mer tid till annat.
  • Ledtiderna vid ändringar av reglerna minimeras eftersom redaktören själv kan ändra dessa.
  • Lösningen ger möjlighet till att koppla ihop olika robots.txt-regler med olika site alias på en och samma site, så att man kan välja olika regler för olika alias. Detta är bra om man har url:er som man inte vill kommunicera ut men som är bra att ha för de som utvecklar och driftar polopolyinstallationen.
  • Reglerna ligger i egna innehållsobjekt vilket gör att de kan återanvändas av flera olika siter.

Lösningens olika komponenter

  • Robots.txt-reglerna.
  • Mappningen mellan site alias och reglerna.
  • Servlet som hämtar robots.txt-reglerna beroende på efterfrågad url.
  • Filterhantering som mappar allt som går mot /robots.txt till ovannämnda servlet.

Lite mer ingående för den intresserade

Robots.txt

Reglerna för sökmotorerna
Robots.txt-reglerna är uppbyggda av en enkel indatamall med en titel av typen p.ContentName och ett textfält av typen p.TextArea där reglerna kan matas in.  Policyn har metoder för att hämta ut titeln och reglerna.

Robots.txt

Mappning av sitealias och robots.txt-regler
Mappningarna görs via en annan indatamall som innehåller följande komponenter:

  • En innehållsväljare av typen p.ContentSingleSelect som används för att peka ut den robots.txt-resurs som ska användas för samtliga alias för aktuell site som inte har en specifik mappning mot en annan robots.txt-resurs.
  • Ett fält av typen p.Duplicator som i sig innehåller två typer av fält. Ett fält av typen p.Text som tar ett sitealias (d.v.s. en url) och ett fält av typen p.ContentSingleSelect där man väljer vilken robots.txt-resurs som ska mappas mot det aktuella sitealiaset.

Policyn innehåller en publik metod som hämtar upp robots.txt-reglerna beroende på givet site alias. Hittas inte reglerna för detta site alias returneras defaultreglerna istället.

Servlet och servletmappning
Servleten använder sig av polopolys RequestPreparator för att hämta upp den aktuella sitepolicyn. Sitepolicyn används sedan i sin tur för att hämta rotinnehållspolicyn för siten där mappningarna mellan sitealias och regler finns. Från den innehållspolicyn hämtas reglerna upp och skrivs ut i servletresponsen.

Servletmappningen sker i web.xml och ser till att alla anrop till /robots.txt mappas till servleten som i sin tur genererar rätt regler till rätt url.

En tråd har skapats i forumet under ”Mallutveckling” för de som vill diskutera och få mer detaljer om denna funktionalitet

Taggar: , , , , ,