Om du har en widget som bara ska visas på en sida ibland så är widget-inställningen Villkor för visning troligen vad du behöver! Med den kan du ställa in så en widget endast visas på sidan om vissa villkor är uppfyllda. Du kan använda Villkor för visning både på innehållssidor och på systemsidor. Widgetar du lägger in på systemsidor som utgör grupper av systemsidor, så som till exempel produktsidor eller varugruppssidor, visas normalt på alla sidor av denna typ. Med Villkor för visning så kan du ställa in så att en widget visas endast på en del av systemsidorna av typen du la widgeten på.
Inställningen ligger under fliken Widgetinställningar.
Så här ser fliken Widgetinställningar ut för widgeten "Bildspel", men inställningen Villkor för Visning ser likadan ut på alla olika widgetar och ligger långt ned under "Avancerade inställningar".
Funktionen fungerar så att du själv skriver ett villkor med hjälp av de objektfält för skriptanpassningar som finns att tillgå, och om villkoret är uppfyllt så visas widgeten. Villkoret är en jämförelse mellan ett objektfält och ett värde, eller mellan två objektfält. Med "jämförelse" menar vi här någon av följande operander:
Operand |
Beskrivning |
= | Lika med – Kan användas för både strängar och numeriska värden. Ej skiftlägeskänsligt, så ett objektfält med värdet "ABC" är lika med "abc". |
!= | Inte lika med – Kan användas för både strängar och numeriska värden. Ej skiftlägeskänsligt. |
> | Högre än – Kan enbart användas för numeriska värden. |
< | Lägre än – Kan enbart användas för numeriska värden. |
>= | Högre eller lika med – Kan enbart användas för numeriska värden. |
<= | Lägre eller lika med – Kan enbart användas för numeriska värden. |
contains | Innehåller – Om objektfältet före operanden innehåller värdet efter operanden. Kan användas för att testa innehållet i både strängar och arrayer. Ej skiftlägeskänsligt. |
Det du skriver före operanden måste vara ett objektfält, medan värdet efter operanden kan vara endera ett annat objektfält eller ett fast värde du vill jämföra mot. Datum räknas här som numeriska värden trots att de skrivs in som en sträng med tecknet " på var sida om sig.
Tomma Skyltfönster och Artikellistningar |
Om fältet Villkor för visning lämnas tomt så visas widgeten som vanligt.
Tänk på att (även) testa fallet där widgeten inte ska visas! Efter att du har ställt in så att en widget inte ska visas bör du naturligtvis ladda sidan och testa så att det fungerar så som du tänkt dig. Glöm då inte att också testa fallet där widgeten inte ska visas. Eftersom systemet i detta fall ignorerar felaktig kod, och ett tomt fält betyder att widgeten ska visas, så skulle till exempel en felstavning av ett fältnamn leda till att widgeten alltid visas. |
Vilka villkor går att sätta?
Eftersom de allra flesta värden som systemet har koll på för en sida också har objektfält så kommer vi inte gå igenom alla möjliga inställningar här. Men vi kan gå igenom några av de vanligaste exemplen. På så vis kan du sedan med hjälp av sidan objektfält för skriptanpassningar själv modifiera exemplen för att passa dina behov.
Exempel på villkor
Norska kronor är inställt
Site.CurrencyCode = "NOK"
Växla två widgets vid midnatt 2023-01-01
Widget som ska slås på:
Sys.DateTime >= "2023-01-01 00:00:00"
Widget som ska slås av:
Sys.DateTime < "2023-01-01 00:00:00"
Bör jag använda Villkor för visning eller fliken Tidsstyrda versioner? Om det är en annan innehållssida än startsidan som ska ställas om så gör du det genom att ändra URL-kod på den gamla sidan och sedan direkt ändra URL-kod för den nya sidan till vad den gamla sidan hade. Vänta inte mellan dessa två steg då besökare som försöker ladda sidan mellan det första och andra steget då skulle få en 404:a, dvs "Sidan kan inte hittas". För att göra det snabbt kan du öppna admin i en extra webbläsar-tabb och förbereda ändringen av URL-kod där. På så vid behöver du bara växla tabb och klicka Spara för att omställningen ska bli klar. Ställ sedan om den nya sidans Status ifrån Dold till Aktiv och den gamla sidan till att bli Inaktiv eller Dold. |
Klockan är före 16:00 (alla dagar)
Widgeten visas mellan midnatt och kl 16 alla dagar. Rimligt för till exempel en text om att ni skickar varorna samma dag om man beställer före kl 16.
Sys.DateTime < "16:00"
Kundkorgen har inte fri frakt
Kan användas för att till exempel visa en text om att din butik erbjuder fri frakt över en viss gräns.
Cart.IsFreeDelivery = False
Notera att objektfältet Cart.LeftToFreeDeliveryText som sitt namn antyder är just en text, då den även innehåller valutans utskriftvänliga namn. Så den kan till exempel innehålla textsträngen "150,10 kr" om det handlar om SEK eller NOK. Det gör Cart.LeftToFreeDeliveryText lämplig som en text att visa i en widget med hjälp av @write(). Men eftersom det är en text-sträng och inte är ett numeriskt värde så bör den inte försöka användas i Villkor för visning för att jämföra med högre eller lägre än (> och <) eftersom de inte funkar på textsträngar. Använd därför istället Cart.IsFreeDelivery enligt ovan, eller Cart.SumInclVAT som i nästa exempel.
Kundkorgens värde är under 1000:- (i den aktuella valutan)
Cart.SumInclVAT < 1000
En artikel på den aktuella artikelsidan har varianter
Notera att denna kod endast fungerar på systemsidan Produkt, dvs på artikelsidor.
Article.HasVariants = True
Använd ej "icke-globala objekt" på sidor där de inte finns – Articles och Order är exempel på objekt som inte är globala. Objektet Articles bryr sig om en specifik produkt, men för att den ska ha en enda specifik produkt att bry sig om krävs att det används på just en produktsida. Objektet Order bryr sig på samma sätt om kundens order. Men ordernummer och betalsättskostnader och liknande existerar inte utanför systemsidan Kassa. Saker som rör innehållet i kundvagnen ligger dock i objektet Cart som är globalt. |
Webbsidans titel innehåller textsträngen "kolgrill"
Ok, kanske ett konstigt exempel, men tänk dig att vår exempelbutik säljer bland annat grillar, och att du har en har en widget med videoinnehåll om skötsel av kolgrillar. Du vill ha denna widget på alla produktsidor som har ordet "kolgrill" i sin Titel. På så vis slipper du slipper gå in och editera beskrivningstexten på massa olika artiklar, och det är bara ett ställe att ändra på om videon ska uppdateras eller tas bort senare.
Notera att om vi lägger in widgeten på systemsidan Produkt så kommer widgeten alltså inte att visas på andra platser än just produktsidor, även om dessa sidor skulle ha ordet "kolgrill" i sin titel.
Notera att Page.Title endast är rimligt att använda som del av ett villkor på just systemsidor. På innehållssidor vet du ju vad titeln på sidan är, och den kommer inte att variera.
Page.Title contains "kolgrill"
Kommentarer
0 kommentarer
Artikeln är stängd för kommentarer.