Språkhantering för webbplatser med internationellt innehåll

Storlek: px
Starta visningen från sidan:

Download "Språkhantering för webbplatser med internationellt innehåll"

Transkript

1 Examensarbete 20 poäng D-nivå vid Örebro universitet Språkhantering för webbplatser med internationellt innehåll Reg.kod: Oru-Te-EXA089-D102/06 Peter Bergqvist Dataingenjörsprogrammet 160 p Örebro höstterminen 2007 Examinator: Lars Karlsson LANGUAGE MANAGEMENT ON A WEBSITE WITH MULTINATIONAL CONTENT Örebro universitet Örebro University Institutionen för teknik Department of Technology Örebro SE Örebro, Sweden

2 SAMMANFATTNING E-man AB har i dagsläget en webbplats som kan presentera innehållet på flera språk. Dock har det nuvarande systemet inget enkelt sätt att uppdatera webbplatsens innehåll. Önskan från E-man var att skapa ett administrationsgränssnitt så att administratörer och översättare kan uppdatera innehållet, samt att integrera den publika webbplatsen mot administrationsverktyget. Jag byggde ett system från grunden som baserats på Microsofts.Net-teknologi och databasen SQL Server Översättningsfunktionen bygger på att sidorna på den publika webbplatsen innehåller koder för de texter som skall bytas ut mot översatt innehåll. Applikationen försöker hämta den översatta texten från en cache på webbservern för att applikationen då kan undvika att kontakta databasen. I de fall där texten inte finns i cachen så kontaktar systemet databasen för att hämta det översatta innehållet. Processen med cache förbättrar systemets prestanda och tillåter därmed flera besökare. Var 30:e minut identifierar systemet de texter som har blivit ändrade via administrationsgränssnittet och plockar bort dessa från cachen. Det uppdaterade innehållet hämtas sedan vid första visningen och lagras också i cachen. För att undvika åtkomst för obehöriga har ett inloggningsförfarande införts till administrationsgränssnittet. ABSTRACT The contents of this report will describe the application I implemented for e-man ltd during the fall semester of The report is a part of the masters program in computer science at the University of Örebro. The current version of e-man s homepage supports contents in multiple languages, though there s no easy way for the administrators or translators to keep the content up to date. e-mans desire was to create an administration interface that would enable easy updates, and also to integrate the administration interface with the public webpage where the content should be presented. I built the system using Microsoft s.net-technology and the application relies on a SQL Server 2005 database for the content. The translation service is based on that the pages on the public homepage contain special codes that are used to identify which texts that should be replaced by translated content. The application will first attempt to find a translated value in the web-server cache, in order to avoid the much slower database. The text is retrieved from the database only in the event where the cache does not hold the text. The cache improves the over-all performance of the site and enables the site to allow more visitors. A log-in procedure was implemented to avoid unauthorized access to the administration area. Nyckelord: ASP.Net, Språköversättning, Enterprise Library, Cache-hantering, Enhetstester, Databaser, Lagrade procedurer, Reguljära uttryck, Generics ii

3 FÖRORD Arbetet pågick under hösten 2006 och rapporten är skriven som en delkurs på Magisterprogrammet för datateknik vid Örebro universitet. Arbetet utfördes på företaget E-man AB i Örebro. Jag vill passa på att tacka alla anställda på E-man AB för det vänliga bemötandet och de tips jag fått vid utvecklingen. Örebro universitet genom Lars Karlsson skall ha ett tack för att de tillät mig skriva examensarbetet helt fristående och jag vill rikta ett speciellt tack till min handledare Christer Lindkvist som tog över handledarrollen och tog sig tid att hjälpa mig med rapporten trots andra åtaganden. Örebro den Peter Bergqvist iii

4 INNEHÅLLSFÖRTECKNING FÖRORD... III LISTA AV ILLUSTRATIONER... 7 FIGURFÖRTECKNING... 7 TABELLFÖRTECKNING INLEDNING FÖRETAGET E-MAN AB OM DOKUMENTET BAKGRUND Innehållshantering Existerande system Administrering PROBLEMBESKRIVNING GRUNDKRAV Mål för språkmotorn och demonstrationswebbplatsen Mål för administrationsgränssnittet ARBETSGÅNG Kravinsamling och systemdesign Implementering av systemet Test och dokumentation METODER OCH VERKTYG VERKTYG PROJEKTSTRUKTUR Presentationslager Kontrollager Modellagret CSS-BASERAD DESIGN GENOMFÖRANDE KRAVINSAMLING Användarfall Skrivna användarfall PROJEKTDESIGN Uppdatering och underhåll Projektet CacheHelper Projektet DatabaseHelper Projektet TranslationManagementAdminArea Projektet TranslationManagementWeb Projektet TranslationManagement.Admin Projektet TranslationManagement.Authentication Projektet TranslationManagement.Globalization Projektet TranslationManagement.LanguageHandling Projektet TranslationManagement.WebUtilities UnitTest -katalogen HUR ÖVERSÄTTNINGSKRAVEN ÄR UPPFYLLDA Hämta text från databas Identifiera koder Ersätta koden Flödesschema HUR SPRÅKHANTERINGENS GRUNDKRAV ÄR UPPFYLLDA Språk Hämta användarens önskade språk...22 iv

5 3.4.3 Visa aktiva språk HUR ADMINISTRATIONSVERKTYGETS GRUNDKRAV ÄR UPPFYLLDA Inloggning Användarmenyn Uppdatera texter Demonstration av administrationsverktyget Språkadministrering DATABASEN TranslationManagement Lagrade procedurer LEVERANSFÖRFARANDE Kodbasen Databasen UTBYGGNAD Ärva TranslationManagement.Globilization.Translate Underlätta underhåll LÖSNINGSMETODER KOMMENTARER KRING KODEN Gemensam basklass Generics Gränssnitt MICROSOFT ENTERPRISE LIBRARY Caching Application Block Database Application Block MICROSOFT AJAX.NET AJAX Partiell rendering ENHETSTESTER OCH TDD NUnit Mock object Test Driven Development NCover KODANALYS FxCop Ants Profiler SLUTSATSER RESULTAT Grundkrav språkhantering Grundkrav administrationsgränssnitt JÄMFÖRELSE MED TREDJEPART Inbyggd resurshantering i Microsoft.Net EPiServer CMS Sammanfattning DISKUSSION FÖRSLAG TILL FÖRBÄTTRINGAR REFERENSER BÖCKER INTERNET ÖVRIGT TERMINOLOGI APPENDIX...46 v

6 8.1 APPENDIX A: DATABASEN Schema: Översättning Schema: Administrationsverktyg Lagrade procedurer Databasens tabeller APPENDIX B: KLASSDIAGRAM Administrationsgränssnitt Språkmotorn APPENDIX C: ANVÄNDARFALL - ADMINISTRATIONSGRÄNSSNITT Inloggning Förstasida Hämta text Uppdatera text Spara ny text Editera ett existerande språk Lägga till språk Lägga till textkategori Ta bort textkategori APPENDIX D: ANVÄNDARFALL - SPRÅKMOTORN Översättning av en fras Hämta text via kod APPENDIX E: ANVÄNDARFALL - ÖVRIGA Hämta aktiva språk Hämta lokal-information från besökaren APPENDIX F: FÅNGADE FEL AV FXCOP APPENDIX G: LADDNINGSTIDER...58 vi

7 LISTA AV ILLUSTRATIONER Figurförteckning Figur 1: Alla projekten i lösningen Figur 2: Ett flödesschema som visar vilka steg en sida på webbplatsen går igenom Figur 3: Visar en skärmbild där en text ska översättas Figur 4: Presentationsvy i administrationsverktyget Figur 5: Vyn "Översätt text" Figur 6: Välj text att översätta Figur 7: Nya översättningen presenteras på webbsidan Figur 8: Visar basstrukturen och innehållet i en MasterPage Figur 9: Innehållet på denna sida baseras på masterpage-filen i figur två Figur 10: En skärmdump när NUnit körs från Visual Studio Figur 11: En skärmbild över hur fuktionen GetTranslationManagementDB exekverats Figur 12: Relationerna mellan de olika tabellerna som utgör översättningshanteringen Figur 13: Relationerna mellan de olika tabeller som utgör administrationsverktyget Figur 14: Funktioner för att logga in och för att rita upp menyer Figur 15: Kategorihanterigen listar, lägger till och tar bort kategorier Figur 16: Interfacet ITextCategory beskriver en textkategori Figur 17: Interfacet IUserInfo beskriver en användare i administrationsverktyget Figur 18: Interfacet IAdminMenuItem beskriver ett val i administrationsverktyget Figur 19: Interfacet IRole beskriver en användarroll i administrationsverktyget Figur 20: Funktioner för hantering av språk Figur 21: Funktioner för hantering av texter Figur 22: Interfacet ILanguageInfo beskriver ett språk Figur 23: Interfacet ITextValueInfo beskriver en text Figur 24: Klassen Translation sköter översättning av texterna

8 Tabellförteckning Tabell 1: Sammanfattning och kort beskrivning över alla utformade användarfall Tabell 2: Översikt över användargruppernas behörigheter i administrationsverktyget Tabell 3: En sammanställning over de funktionerna som tog längst tid att exekvera Tabell 4: Innehåller en sammanställning över de termer som använts i rapporten Tabell 5: Beskriver de lagrade procedurer som är relaterade till inloggning och användare Tabell 6: Lagrade procedurer som hanterar texter och textkategorier Tabell 7: Lagrade procedurer som ansvarar för språkhanteringen Tabell 8: Webbplatsens alla texter finns sparade i tabellen Text Tabell 9: Tabellen TextCategory innehåller alla kategorier en text kan tillhöra Tabell 10: Tabellen Language innehåller alla språk som webbplatsen kan visa Tabell 11: Tabellen AdminUser innehåller användare som har tillgång till verktyget Tabell 12: Tabellen UserRole definierar administrationsgränssnittets olika roller Tabell 13: Tabellen AdminFunction innehåller de olika funktioner man kan utföra i administrationsgränssnittet Tabell 14: Tabellen RoleFunctionAccess är en kopplingstabell mellan UserRole och AdminFunction Tabell 15: De mest frekvent förekommande felen enligt FxCop Tabell 16: Tider (i ticks) för att ladda ett urval av de olika texterna på framsidan Tabell 17: Tiderna visar hur tiden varierar vid de tre första laddningarna av svenska texter

9 9 Inledning 1 INLEDNING Detta kapitel tar upp varför denna rapport skrivits och beskriver de grundläggande kraven som specificerades inför projektets start. 1.1 Företaget E-man AB E-man AB grundades på våren år 2000 av en liten grupp konsulter med det gemensamt att de alla har lång erfarenhet inom konsultverksamhet. Idag har företaget ca 35 anställda utspridda över fyra orter i Sverige. Huvudkontoret är beläget i Örebro, men E-man har även kontor i Västerås, Göteborg och nu senast i Stockholm. Grundidén är att erbjuda företag eller organisationer konsulttjänster från konsulter med lång branscherfarenhet och bred kunskap. E-man kan erbjuda specialistkompetens inom applikationsförvaltning, utveckling och systemintegration. 1.2 Om dokumentet Denna rapport riktar sig främst till personer med grundläggande kunskap inom webbutveckling och intresse för onlinebaserade projekt. Stort fokus riktas mot den tekniska lösningen av projektet. Därför bör läsaren ha kännedom om, framförallt Microsofts, olika teknologier för webbutveckling och programvara relaterat till onlinebaserade system. Inledande förklaringar finns skrivna till vissa nyare tekniker. För mer detaljerade beskrivningar hänvisar jag till referenslistan som innehåller de webbplatser och böcker där jag inhämtat information. 1.3 Bakgrund Efter ungefär ett år med en hemsida med ett visst språkstöd, men med ett undermåligt verktyg för att redigera och lägga in nya texter, så har E-man AB insett att de behöver förbättra situationen. Framförallt ville företaget komma ifrån att en anställd var tvungen att ta tid från sitt jobb för att sköta uppdateringen av översatt material. Istället vill man låta en översättare få direkt tillgång till att ändra i webbplatsens innehåll. För att minska extrajobbet vid förändringar på webbplatsen så önskar E-man gå över till MasterPage-konceptet som introducerades i Asp.Net Innehållshantering Att hålla webbplatsens innehåll uppdaterat och felfritt är oerhört viktigt för företag, dels för att göra ett seriöst intryck mot kunder men även ur ett sökmotorperspektiv. Att optimera sin webbplats för att få en bra placering i sökresultat kan generera betydande affärer. En uppdaterad webbplats är en förutsättning för en bra ranking 1. Att underlätta arbetet för att uppdatera och lägga till innehåll var därför den stora utmaningen. Samtidigt som företaget vill låta extern personal sköta översättning och redigering av texterna, vill man kunna begränsa vad de olika användarna får se och vilket innehåll de har rättighet att ändra. Krav på autentisering av användaren och rättighetshantering krävs därför. Till skillnad från ett komplett system för innehållshantering för en webbplats ligger fokus för denna rapport på redigering av texter. Det finns inga funktioner för 1 Denna fras, och efterföljande fraser i fetstil, definieras i terminologisektionen på sidan 44. 9

10 10 Inledning att skapa nya/ta bort befintliga sidor eller publiceringsfunktioner, t.ex. att sätta tider då en sida ska vara synlig Existerande system I det existerande systemet består översättningshanteringen av en funktion som listar vilka språk som finns tillgängliga och för varje sida på webbplatsen listas en länk som pekar mot en sida med översatt innehåll. När användaren är på förstasidan och den visas på det svenska språket är adressen till sidan /default.aspx. Skulle användaren vilja byta till det finska språket skulle han gå till /fin/default.aspx och engelska /eng/default.asp. För varje sida låg sedan innehållet statiskt direkt i aspx-sidan och det fanns då en uppsättning av den sidan för varje språk som webbplatsen stödde. Dessutom byggdes webbplatsen på den äldre versionen Asp.Net 1.1 som saknar MasterPages. Vill man då göra en designändring som är generell för webbplatsen så måste alla sidor på alla språk gås igenom; det kan handla om så mycket som 40 sidor. Detta var onödigt extraarbete som E-man ville undvika. Den existerande lösningen är en fullt fungerande implementation, men den leder till mångdubbelt arbete vid ändringar av innehållet. Dessutom behövs en resurs från E-man som lägger in texter som översättare tillhandahåller, då översättare inte har direkt tillgång till filerna på grund av företagets säkerhetspolicy Administrering För att förbättra och göra webbplatsen tillgänglig för ytterligare besökare, som inte behärskar de språk som finns tillgängliga, behövs ett fungerande administrationsverktyg. Verktyget tillhandahåller sedan funktioner för utbyggnad och uppdatering av webbplatsen. Som exempel på vad verktyget skall klara av kan nämnas att korrigera texter, lägga in nya texter, men även lansera helt nya språk. Ett verktyg skulle därför införas för att tillgodose dessa krav. Till ett administrationsverktyg tillkommer även grundläggande behov som autentisering och rättighetshantering. Verktygets alla användare som har tillgång till verktyget kan inte få tillgång till alla dess funktioner då oerfarna användare av misstag kan ta bort viktiga funktioner eller att hemligt innehåll läcker ut. 1.4 Problembeskrivning E-mans hemsida har under åren genomgått ett antal uppgraderingar och designförbättringar. I den senaste stora uppgraderingen fick webbplatsen stöd att visa innehållet på flera språk (svenska, engelska och finska). Av någon anledning infördes det aldrig något administrationsgränssnitt, vilket innebar en krånglig och komplicerad process för uppdateringar. Uppdateringar krävde ofta direkt tillgång till aspx-filen. Den samlade problematiken resulterade i att endast den svenska versionen blivit uppdaterad med nytt innehåll. För att minska extrajobbet vid förändringar på webbplatsen så önskar E-man gå över till ett administrationsverktyg för att ändra texter och översättningar på webbplatsen. 10

11 11 Inledning 1.5 Grundkrav Innan projektet startade sammanställdes en lista över punkter som skulle tilldelas extra fokus. Den listan låg sedan till grund för kravdokumenten som skrevs i den inledande perioden för specifikation. En ordentlig kravinsamling utfördes för att identifiera behoven, samt skriva användarfall och skapa klassdiagram som bas för kod och databasdiagram Mål för språkmotorn och demonstrationswebbplatsen Här följer de mål som sattes upp innan projektets start: - Alla typer av texter ska vara översättningsbara: sidtitlar, metadata och längre innehåll. - Presentera ett stort antal språk (låta användaren välja språk) - Presentera texter i alla större teckenuppsättningar. - Systemet skall använda så mycket information som möjligt av de data som användaren lämnar ut för att identifiera vilket språk som sidan skall presenteras på Mål för administrationsgränssnittet - Alla texter som presenteras på webbplatsen ska vara administrerbara. - Inloggning till systemet sker via formulär. Inloggningsuppgifter sparas i databasen för systemet. - Systemet ska kunna hantera att falla tillbaka till ett förvalt språk. Vid de tillfällen då en användares språk inte stöds skall systemet falla tillbaka till bäst applicerbara språk. Detta sköts via administrationsgränssnittet. - Administrationsgränssnittet skall använda minimalt antal omladdningar. Tekniken som gör detta möjligt sker via AJAX och Microsofts ramverk Atlas. En diskussion om framtida förbättringar finns i kapitlet slutsatser på sidan Arbetsgång För att på bättre struktur på projektgenomförandet valde jag att dela upp arbetet enligt följande delmoment: kravinsamling, implementation och dokumentering som presenteras i följande kapitel Kravinsamling och systemdesign I inledningen av projektet så sammanställde jag alla önskemål och krav som kunden (i detta fall E-man AB) vill ha för webbplatsen. Mer om kravinsamlingen se kapitel 3.1 Kravinsamling. Leverabler från detta delmoment inkluderar ett förstudiedokument, en databasmodell och ett klassdiagram. Efter kravinsamligen var klar så gjordes design av projektstrukturen samt databas och källkod. Klass- och databasdiagramen som producerades är bifogade i Appendix A: Databasen och Appendix B: Klassdiagram. Under denna period bestämde jag även vilka tekniker och vilken miljö jag skulle använda mig av vid utvecklingen; mer om detta i kapitlet Metoder och verktyg på sidan

12 12 Inledning Implementering av systemet Efter den inledande specifikationen var godkänd och designen av webbplatsens grund var klar så följde implementeringen, dvs. skriva kod. Till stöd för utvecklingen hade jag den sammansatta listan av användarfall och klassdiagram, men innan jag startade med kodningen tog jag mig tid att ordentligt läsa på om de tekniker jag hade bestämt mig för att använda. Efter förberedelserna gick det sedan enkelt att komma igång med kodningen. Jag sorterade upp användarfallen efter hur pass viktiga de var för systemets grundläggande funktioner och efter det så betade jag av dem en efter en Test och dokumentation Utvecklingsmetodiken jag följde när jag skrev webbplatsens kod var Test Driven Development. Denna utvecklingsmetod innebär att innan man skriver kod för t.ex. en funktion så fastställs vad som behöver testas i funktionen, och skriver kod för testet. När testet är klart implementeras funktionen (mer om detta i kapitel Enhetstester och TDD). Att skriva tester innan implementationskoden gjorde att antalet kodfel hölls på en låg nivå och jag kunde inrikta arbetet på nya funktioner istället för att leta och rätta fel. Relativt tidigt under projektet, redan innan implementationen startat, påbörjade jag arbetet med att designa dokumentet som skulle ligga till grund för denna rapport. Under arbetets gång kunde jag sedan fylla på allteftersom projektet pågick. 12

13 13 Metoder och verktyg 2 METODER OCH VERKTYG 2.1 Verktyg Dessa tekniker fanns som krav att systemet skulle utvecklas i: - Utvecklat i ASP.NET Programmeringsspråk: C# - Atlas för AJAX stöd - Systemet skall bygga på databasen SQL Server Webbplatsen körs på IIS - Enhetstester via NUnit Utvecklingen av språkmotorn och administrationsgränssnittet skedde i utvecklingsmiljön Visual Studio Utvecklingsmetoden Test Driven Development användes med framgång under stora delat av projektet. Under projektets gång lanserade Microsoft SQL Server 2005 Express, vilket är en gratisvariant av deras serverprogramvara för frågespråket SQL (Begg & Connolly, 2002). Jag valde då att gå över till denna nyare programvara. Dessutom så gick AJAX ramverket från alfa-stadie till beta-stadie och bytte under det skiftet namn från Atlas till Ajax.Net. Även denna uppdatering valde jag att installera. 2.2 Projektstruktur För de ingående projekten är koden för både webbplatsen och administrationsverktyget uppdelade enligt principen för designmönstret MVC (Model, View, Controller). Designmönstret beskriver hur ett projekt ska delas upp i tre lager: ett presentationslager, ett kontrollager och ett modellager. Kontrollagret svarar på interaktioner/anrop från användaren som utförs i presentationslagret. Modellagret används för att agera förvaringskälla för tänkbar data Presentationslager I detta projekt representeras presentationslagret av det gränssnitt som besökaren ser, både i administrationsverktyget och i den publika webbplatsen Kontrollager Till skillnad från traditionell 3-skitks arkitektur har detta projekt inget affärslager som sköter affärslogiken. Kontrollagret agerar endast som ett mellanlager som sköter kontakten mellan presentationslagret och modellagret. Jag har valt att i fortsättningen kalla detta lager för fasadlagret då det bättre passar in i detta sammanhang. Fasadlager är inte alls beroende av vilken sorts datakälla som används i modellagret. Kan modellagret returnera de datatyper som fasadlagret förväntar sig så kan valfri datakälla användas Modellagret Modellagret representeras i detta projekt av databasen och de klasser som används för att kommunicera med databasen. I största möjliga mån har jag försökt att enbart använda de primitiva datatyperna (int, string osv.) i detta lager. Detta lager kommer fortsättningen benämnas som databaslager. 13

14 14 Metoder och verktyg 2.3 CSS-baserad design En CSS-baserad design bygger på att alla direktiv om hur en sida skall renderas, dvs. vilka element som ska ligga vart och vilket utseende de skall få, ska ligga i en CSSfil. Html-filen skall endast skriva ut innehållet; det är sedan upp till CSS-filen att sätta design. Fördelarna är många: - Man kan återanvända design över flera sidor. - All design finns på ett ställe, man undviker upprepade instruktioner. - HTML-filerna blir mindre, ett företag kan spara pengar på minskade kostnader på grund av onödig data som skickas. Då CSS filen lagras hos användaren så behöver filen bara skickas en gång. - Designändringar förenklas då man enbart behöver ändra på ett ställe. 14

15 15 Genomförande 3 GENOMFÖRANDE Målet för projektet var att förenkla och förbättra processen kring översättning och innehållshantering av E-mans hemsida. Jag valde att från grunden skapa ett administrationsgränssnitt som både är specialskrivet för E-mans hemsida men även så pass generellt att det går att anpassa till andra typer av applikationer. Samtidigt behövde bakgrundskoden för E-mans publika hemsida skrivas om så att den integrerar mot applikationsverktyget. I samband med omstruktureringen av den publika webbplatsen valde vi att designa om strukturen för att komma ifrån mycket av kringarbetet. Dock ser sidan precis likadan ut som tidigare. 3.1 Kravinsamling Följande kapitel kommer att beskriva hur kraven specificerades och hur specifikationen användes av mig som utvecklare. Kravinsamling görs för att specificera vilken funktionalitet som ett system skall ha för projektet ska anses vara färdigt Användarfall Ett användarfall beskriver ett flöde som en användare kan utföra i ett system eller i en applikation. Fallen är vanligtvis skrivna i beskrivande textform, men man kan även skriva/rita dem i diagramform. I större applikationer begränsar man ofta användarfallen genom att kräva att ett system ska befinna sig i ett visst tillstånd då fallet startar. Ett användarfall kan anses klart då det har åstadkommit vad som specificerats, eller då applikationen befinner sig ett specificerat sluttillstånd Skrivna användarfall Denna sektion kommer att kort nämna vilka användarfall som skrevs och ge en kort beskrivning av dess betydelse. De fullständiga användarfallen finns bifogade i Appendix C: Användarfall med start på sidan 53. De fallen är mer detaljerade vad det gäller vad som skall utföras för att anse fallet som avklarat. Namn Beskrivning Administrationsgränssnitt Inloggning Förstasida Hämta text Uppdatera text Spara ny text För att få använda administrationsgränssnittet krävs att användaren loggar in på systemet. Den första sidan som användaren kommer till skall presentera möjliga delar/funktioner som den inloggade användaren har tillgång till. Användarfallet beskriver hur en användare navigerar i listor och väljer den text som skall översättas. Texten presenteras i en textruta. Detta fall beskriver hur en vald text uppdateras. Detta fall beskriver hur en ny text lagras i systemet. 15

16 16 Genomförande Editera ett existerande språk Lägga till ett språk Lägga till en textkategori Ta bort textkategori Detta användarfall behandlar hur man uppdaterar metadata för ett språk. Detta fall beskriver hur ett nytt språk läggs in i systemet. Detta användarfall beskriver hur en användare lägger till nya textkategorier. Detta fall beskriver hur en textkategori tas bort. Språkmotorn Översättning av en fras Hämta text via kod Detta användarfall beskriver hur fraser ur en längre text översätts. Detta fall besktiver hur en text hämtas baserat på en text-kod. Övriga Hämta aktiva språk Detta användarfall används på den publika webbplatsen för att hämta en lista över de aktiva språk som en besökare kan se webbplatsen på. Hämta lokalinformation från besökaren Systemet ska utgå från den informationen om geografi och språkval som webbläsaren delger och genom den välja det språk som sidan ska presenteras på. Tabell 1: Sammanfattning och kort beskrivning över alla utformade användarfall 16

17 17 Genomförande 3.2 Projektdesign För att få en överblick hur lösningen är uppbyggd så kommer detta kapitel presentera de ingående projekten som utgör webbplatsen. För att skapa en lösning som är lätt att underhålla och lätt att uppgradera med ny funktionalitet har jag valt att dela upp den stora lösningen i ett flertal mindre delprojekt. När man har delprojekt påverkas inte hela webbplatsen vid uppdateringar utan endast de beröra delprojekten. Figur 1: Alla projekten i lösningen Strukturen i figur ett gäller enbart så som miljön ser ut under utveckling. När webbplatserna (publika webbplatsen och administrationsverktyget) ska publiceras så kompileras varje delprojekt till en DLL-fil och kopieras till underkatalogen BIN som skapas upp för respektive webbplats. DDL-filerna får namn efter vad delprojektet heter, t.ex. TranslationManagement.Globalization.dll Uppdatering och underhåll Vid en initial lansering, dvs. första gången en lösning lanseras i en produktionsmiljö, så kopieras alla aspx-filer och alla kompilerade DLL-filer till en produktionsserver. Detta är en stor operation som innehåller många felkällor där mycket kan gå fel. Är produktionsmiljön dessutom lastbalanserad är risken för fel ännu större, då samma procedur måste upprepas på flera servrar. Lanseringsprocessen sker dessutom under tidspress, då önskan att starta webbplatsen så snart som möjligt är stor. Att undvika denna process leder till en större säkerhet för både personen som utför lanseringen, och att webbplatsens besökare snabbare får tillgång till webbplatsen. För att underlätta uppdateringar och underhåll av systemet så delades lösningen upp i flera delprojekt och varje delprojekt kompileras till en fristående DLL. Vid uppdateringar/felrättningar av en del av webbplatsen, eller kanske endast ett delprojekt, så behöver man endast byta ut de berörda filerna. 17

18 18 Genomförande Projektet CacheHelper Klassen CacheHelper används för att initiera objekt som kommunicerar med cachen. Detta är en statisk klass som returnerar en instans av CacheFactory, en klass som ingår i Enterprise Library (mer om detta på sidan 34). Initieringen sker endast då objektet är null, dvs. första gången cachen laddas Projektet DatabaseHelper Klassen DatabaseHelper används för att initiera ett objekt som kommunicerar med databasen. Detta är en statisk klass som returnerar en instans av DatabaseFactory, en klass som ingår i Enterprise Library (mer om detta på sidan 34). Initieringen sker endast då objektet är null, dvs. första gången databasen laddas Projektet TranslationManagementAdminArea I detta projekt ligger de filer som utgör presentationsdelen för administrationsverktyget. Administrationsverktyget består av en masterpage som styr design, en sida för inloggning och en välkomstsida. Övriga sidor är enbart skal för att ladda en User Control. All logik för kontrollerna ligger i projektet TranslationManagement.Admin. Administrationsverktygets basklass kontrollerar att användaren fortfarande är inloggad Projektet TranslationManagementWeb Projektet TranslationManagementWeb är en webbplats som utgör demowebbplatsen. Webbplatsen innehåller kopior av sidor från så som sidorna såg ut vid tillfället då detta dokument skrevs. Sidorna har ändrats så att det statiska innehållet är utbytt mot koder som sedan kommer att användas för att presentera översatt innehåll. Alla sidor på webbplatsen ärver en gemensam basklass. Basklassen innehåller logik för att identifiera det språk som passar en ny besökare bäst och anropar de funktioner som översätter texter Projektet TranslationManagement.Admin All logik för administrationsverktyget är samlat i detta projekt. Denna klass innehåller dessutom koden som ritar upp html-elementen för User Controller. Kontrollerna använder AJAX i den utsträckningen att de data som postas till webbservern enbart är data från formulären Projektet TranslationManagement.Authentication I detta projekt hittas logiken som styr användarrättigheter för webbplatsen. Projektet innehåller funktioner för att hantera användarinloggning och verifiering av användarrättigheter. Klassen består av ett fasadlager och ett databaslager Projektet TranslationManagement.Globalization Funktioner för att hantera texter och textkategorier finns samlade i detta projekt. Även en statisk klass för översättning av texter är placerad här Projektet TranslationManagement.LanguageHandling Funktioner som rör språk hanteras i detta projekt. Som de övriga projekten är det uppdelat i fasad- och databaslager. 18

19 19 Genomförande Projektet TranslationManagement.WebUtilities Gemensamma funktioner för webbplatsens olika webbsidor ligger i detta projekt. Även basklassen som alla sidor ärver ligger i detta projekt UnitTest -katalogen Innehåller de enhetstester som jag skrivit för lösningen. Dessa projekt ingår och kompileras endast då projektet byggs för utveckling. I en skarp version som går publikt kommer projekten i denna katalog att uteslutas. 3.3 Hur översättningskraven är uppfyllda Följande kapitel kommer att ge en mer tekniskt detaljerad genomgång av hur de olika projekten införts och hur delproblemen lösts. Flera kapitel innehåller kodexempel som är tagna ur källkoden för webbplatsen och administrationsverktyget. Grundkravet för applikationen var att innehållet på webbplatsen går att översätta så att webbplatsen kan presenteras på flera språk. Den tekniska lösningen baseras på att varje text som skall kunna översättas identifieras genom att märkas med tecknen ## före och efter ett id för en text. Identifikationen av en text, härmed kallat koden för en text, består av textens namn och namnet på kategorin som texten tillhör. Ett exempel på en text blir: ##Textkategori.Textnamn##. Den tredje parametern som behövs för att översätta en text är på vilket språk som besökaren just nu ser på webbplatsen. Med hjälp av dessa tre variabler kan systemet presentera rätt innehåll. Efter att sidans innehåll har genererats av ASP.Net ramverket så skickas den genererade HTML-koden för presentation. Precis innan HTML-koden skickas till webbläsaren så fångar applikationen upp HTML-koden. Alla textkoder letas sedan upp och byts ut mot det översatta innehållet. När alla textkoder är ersatta skickas HTML-koden vidare till webbläsaren. Ur kodperspektiv betyder det att applikationen skriver över händelsen Render (rendera) och här letar upp alla koder. Funktionssignaturen för denna funktion ser ut såhär: protected override void Render(HtmlTextWriter writer) { //Function body goes here... } Override -instruktionen i funktionssignaturen styr så att denna funktion används i stället för den inbyggda funktionen. Render-funktionen ligger i en basklass för webbplatsen Hämta text från databas För varje kod som hittas i HTML-koden så sätts en nyckel ihop; nyckeln består av kategori, textnamn och språkkod. Nyckeln används sedan för att hämta upp korrekt text-värde. För att beskriva hur översättningen sker kommer jag att använda följande testdata: Kategori: FrontPage Text-namn: SamplePhrase Nyckeln för de olika texterna blir "FrontPage.SamplePhrase_en" och "FrontPage.SamplePhrase_sv". 19

20 20 Genomförande Nästa steg är att slå upp text-koden mot databasen. Om applikationen lyckas matcha en text mot de tre variablerna returneras en data-rad. Innehållet i data-raden används för att initiera ett objekt som implementerar gränssnittet ITextValue. En cache används av applikationen för att spara de skapade objekten. Det extra steget utförs för att komma ifrån behovet att hämta varje värde från databasen och sedan skapa ett objekt. Nyckel som identifierar objektet i cachen är den ovan skapade nyckeln. Vid nästa laddning av sidan hämtas objektet från den snabbare cachen. En tabell över hur tiden det tar att ladda framsidan varierar finns att se i kapitlet Appendix G: Laddningstider på sidan Identifiera koder I den genererade HTML-strängen kommer det att finnas en mängd text-koder att söka reda på. Att leta upp alla koder samt att utföra detta utan märkbar tidsfördröjning är en utmaning. Till hjälp använder applikationen ett reguljärt uttryck som letar upp alla förekomster av en text som kan matchas mot uttrycket ##[text]##, dvs. de koder applikationen använder för att identifiera en text. Det uttrycket som applikationen använder ser ut såhär: "#{2}(.*?)#{2}" Den första och sista delen #{2} säger att texten den ska leta efter ska börja med ett #, och att det ska vara två i rad. Det sista betyder att koden ska avslutas på samma sätt. Den mittersta delen (.*?) betyder kort sagt allting där i mellan som har minst en punkt. De tre reglerna gäller för att en text ska matcha Ersätta koden När applikationen väl har identifierat koden och hämtat dess värde från databasen så ska applikationen ersätta textkoden med den översatta texten. Funktionen "Replace" på String-klassen används för detta ändamål. Funktionen tar textkoden och den översatta texten och ersätter alla förekomster av koden. Såhär ser funktionsanropet ut: translatedstring = translatedstring.replace(foundcode.value, translatedvalue); translatedstring är i detta fallet strängen med HTML, foundcode.value är textkoden och translatedvalue är det översatta värdet. Detta sker för varje översättbar-text, varenda gång en sida laddas. Skulle en textkod förekomma flera gånger i html-koden så kommer alla förekomster att ersättas med ett anrop. 20

21 21 Genomförande Flödesschema För att ge en tydligare bild hur flödet ser ut då en sida får sina texter utbytta mot översatt innehåll har detta schema skapats. 1) Start 3) Sök kod 2) Sidladdning 4a) Kod finns i cache 4b) Ingen kod i cachen 5a) Hämta text från cache 5b) Hämta text från DB 5c) Spara text i cache 7) Upprepa för varje kod 6) Ersätt text 8) Slut Figur 2: Ett flödesschema som visar vilka steg en sida på webbplatsen går igenom 1) Startpunkten. Här initieras en laddning av en av webbsidorna på den publika webbplatsen. 2) De olika delsteg som en sida går igenom utför olika funktioner som initierar webbsidan, t.ex. händelserna Page_Load ( sidladdning ) och Page_PreRender ( innan rendering ) genererar dynamiskt innehåll som ska skrivas ut på webbsidan. Alla kontroller på sidan binder data till sidan och den 21

22 22 Genomförande färdiga HTML-strukturen skickas för presentation. I detta läge innehåller HTMLstrukturen fortfarande de koder som översättningsmotorn använder. 3) Identifiera koder i HTML-strukturen. Systemet använder sig av reguljära uttryck för att hitta de koder som skall översättas. När en kod hittats går flödet vidare och när inga fler koder går att hitta tar flödet slut. 4) En kod har identifierats. Systemet gör nu en koll ifall denna kod har påträffats av tidigare sidladdningar. I så fall kan cachen användas annars måste databasen leverera texten. a. Systemet lyckades hitta koden i cachen och kan därmed genast returnera texten med hjälp av koden. b. Systemet har inte påträffat denna kod tidigare. Därför krävs att koden skickas till databasen som i sin tur returnerar texten som matchar koden. 3.4 Hur språkhanteringens grundkrav är uppfyllda Följande kapitel kommer beskriva hur grundkraven för språkhanteringen är uppfyllda. Listan över krav finns sammanställd i kapitel 1.5 Grundkrav Språk E-man har hittills valt att översätta hemsidan till tre språk: svenska, engelska och finska (finska då företaget har vissa affärer i Finland). För att korrekt visa upp en webbsida på ett specifikt språk, så att en webbläsare kan identifiera vilket språk som presenteras, behöver sidan ange denna information. Metoden för att identifiera språket sker främst via de meta-taggar som finns i html standarden. För att presentera vilket språk en sida visas på använder man en språkkod. Språkkoden sammanställs av en internationell standardorganisation och består av två bokstäver. I vissa fall kan fyra bokstäver användas, de extra två beskriver då vilken dialekt som används. För att presentera språkets olika bokstäver rätt behöver även språkets teckenuppsättning anges på sidan. Språkinformation är även viktig för sökmotoroptimering. På webbplatsen kan ett språk vara aktivt eller inaktivt. Ett språk ska även vara ett förvalt språk, dvs. det språk som applikationen faller tillbaka på i de fall ett önskat språk inte existerar i databasen. De aktiva språken visas på webbplatsen, medan de inaktiva endast går att nå via administrationsverktyget. Tanken är att när ett nytt språk läggs till så kan en översättare i lugn och ro översätta alla texter innan språket visas upp publikt på webbplatsen. I de fall då det språk som användaren helst vill se webbplatsen på inte är aktivt, alternativt då det inte finns i databasen, ska systemet använda funktionen GetDefaultLanguage i Language -klassen som returnerar det förvalda språket. Det språket ska webbplatsens innehåll sedan visas i. Systemet faller då tillbaka till det språk som är satt som förvalt i administrationsverktyget. För varje besökare av den publika webbplatsen associeras ett interface av typen ILanguageInfo. Det beskriver alla egenskaper som systemet använder för ett språk. Efter att objektet initierats så sparas det i besökarens session Hämta användarens önskade språk I dagens moderna webbläsare har det blivit allt viktigare att presentera för en webbplats vilken region en användare kommer ifrån. Behovet uppkommer för allt 22

23 23 Genomförande ifrån att visa rätt språk till att leverera riktade regionsspecifika annonser till användaren. Ofta väljer man vilket land man kommer ifrån när man laddar hem eller installerar webbläsaren, men man kan även styra denna information via inställningar i webbläsaren. Variablerna som beskriver användaren skickas till webbplatsen när användaren gör en anslutning. Alla variabler som webbläsaren ger ifrån sig kan man komma åt via klassen HttpRequest och egenskapen ServerVariables. Klassen ligger i namnrymden System.Web. ServerVariables är en datakälla där man skickar in en nyckel för att få tillbaka ett värde. Nyckeln för att få tag i användarens önskade språk heter HTTP_ACCEPT_LANGUAGE. Värdet för den variabeln får man tag igenom att använda nyckeln på detta sätt: string languageinfo = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; Värdet som returneras kan se ut som denna sträng: sv,en;q=0.7,en-us;q=0.3 Även om den kan anses något kryptisk så är den väldigt enkel. De språk som användaren har förvalt är sv = svenska, en = engelska och en-us = engelska med amerikansk dialekt. De olika språken separeras via kommatecknet, parametern q står för quality och anger vilken sannolikhet det är att det språket matchar besökarens preferens. Språkkoden för svenska sv har q=1 och har i detta fall högst sannolikhet, det vill säga att det är väldigt sannolikt att användaren vill att sidan visas på svenska. På grund av risken att användarens önskade språk inte stöds av webbplatsen, eller att det önskade språket inte är aktivt, görs en matchning där användarens önskade språk jämförs med webbplatsens aktiva språk. Hittas en matchning presenteras webbplatsen på det språket, annars faller applikationen tillbaka till det språk som har satts som det förvalda språket Visa aktiva språk De aktiva språken skrivs ut med hjälp av en kontroll som ligger på en av grundsidorna, denna kontroll blir därmed inkluderad på alla sidor. För att byta språk på webbplatsen implementerades användarfallet "Hämta aktiva språk". För att hämta aktiva språk används den lagrade proceduren "GetAllActiveLanguages". Språkbytet sker genom att en parameter "l" (kort för language ) läggs på sidans frågesträng (querystring). Adresserna till startsidan default.aspx blir: Default.aspx?l=en, Default.aspx?l=sv. När systemet ser att språkkoden bytts initieras ett ILanguageInfo-interface med hjälp av den nya språkkoden och den aktuella besökarens sessionsvärde uppdateras med det nya objektet. Information om användarens valda språk, det som sidan presenteras på, hämtas upp i basklassen från sessionsvariablerna via denna instruktion: ILanguageInfo currentlanguage = ((BaseWebPage)this.Page).WebUser.PreferredLanguage; 23

24 24 Genomförande Efter att gränssnittet hämtats från basklassen skrivs språkkoden och teckenuppsättningen ut på två ställen i sidans huvudsektion (header): literalcharacterset.text = currentlanguage.languagecharset; literallanguagecode.text = currentlanguage.languagecode; Webbläsaren kan då rendera sidans innehåll korrekt. Vanliga problem man kan råka ut för annars är att specialtecken inte presenteras korrekt, till exempel kan man få problem med att å, ä och ö skrivs ut felaktigt. 3.5 Hur Administrationsverktygets grundkrav är uppfyllda Följande kapitel kommer beskriva hur grundkraven för administrationsverktyget är uppfyllda. Listan över krav finns sammanställd i kapitel 1.5 Grundkrav Inloggning För att undvika att obehöriga besökare får tillgång till administrationsverktyget, där de kan göra stor skada, så krävs att användare autentiserar sig själva. Detta sker med hjälp av ett lösenord och ett användarnamn som personen blir tilldelad. När användaren anländer till förstasidan för administrationsverktyget så kontrollerar systemet huruvida användarens information finns sparad i användarens session. Användarinformation representeras med hjälp av interfacet IUserInfo och initieras när användaren loggar på administrationsverktyget. Finns objektet sparat så välkomnas användaren med namn, annars blir han/hon automatiskt omdirigerad till inloggnings-sidan. Har användaren en gång vart inloggad på systemet, men lämnat datorn så pass länge att session gått ut, kommer den besökaren bli ombedd att återigen logga in. Vid godkänd inloggning kommer sedan systemet automatiskt dirigera administrationsanvändaren till den sida som personen senast arbetade på. Logiken för att logga in användare och skicka dem rätt är inget som man behöver skriva själv, utan det är en funktionalitet som finns i.net-ramverket. Det man behöver göra är att instruera systemet hur anonyma användare ska hanteras; detta sker i konfigurationsfilen web.config. Denna regel instruerar ramverket att inte tillåta anonym åtkomst på webbplatsen: <authorization> <deny users="?"/> </authorization> Nedanstående regel säger till ramverket att användare ska logga in via ett formulär som heter adminform, att användaren ska sedan skickas vidare till sidan default.aspx när inloggningen är klar och att användare ska skickas till login.aspx för att logga in. <authentication mode="forms"> <forms loginurl="login.aspx" defaulturl="default.aspx" name="adminform"/> </authentication> 24

25 25 Genomförande I tabellen AdminUser ligger alla användare som har tillgång till systemet. Denna tabell är speciellt känslig då den innehåller inloggningsinformation. För att säkra systemet så lagras lösenordet krypterat i en hash, man kan alltså inte läsa ut lösenordet direkt från innehållet i databasen. Vid inloggningen så skapas en hash av det värde som användaren matar in och hashvärdet för den inmatningen jämförs sedan med hashvärdet av lösenordet som redan ligger i tabellen. Krypteringsfunktionen som krypterar hashvärdet är sha-1. Krypteringen gör det avsevärt mycket svårare att få fram lösenordet och därmed ta sig in i systemet, men det är dock inte omöjligt. Sha-1 ska i sig vara oknäckbart, men det finns en möjlighet att någon lyckas mata in rätt kombination, och därmed kan ta sig in i systemet Användarmenyn För att navigera runt bland administrationsverktygets olika sidor så innehåller administrationsverktyget en navigeringsmeny. Samtidigt som man vill göra det enkelt för en användare att hitta i systemet vill man inte att en användare ska kunna komma åt information den inte ska få se. Vissa användargrupper ska till exempel enbart få översätta texter. Beroende på vilken användarroll som den inloggade användaren är tilldelad, ska innehållet i menyn varieras. Menystrukturen i sig är enkel, den består av tre större sektioner: texter, textkategorier och språk. Varje sektion har i sin tur undersidor. Användargrupp Administratörer Översättare Sektion och funktion/undersida Texter o Lägga till text o Översätta text Textkategorier o Lägga till kategori o Ta bort kategori o Ändra kategorinamn Språk o Lägga till språk o Ändra språkegenskaper o Sätta förvalt språk Texter o o Lägga till text Översätta text Tabell 2: Översikt över användargruppernas behörigheter i administrationsverktyget I databasen har varje funktion ett id och en förälder. Texter som är en toppfunktion har förälder-id=0 och funktions-id=1, Lägga till text är ett barn till Texter, den har funktions-id=11 och förälder-id=1. Baserat på den strukturen kan man sedan hämta ut menyn, först hämtas alla toppfunktioner, när de skrivs ut på sidan skrivs dess barn ut. Hela strukturen laddas via ett anrop till databasen. På detta vis presenteras menyn enligt liknande: Texter (Funktions-id 1, Förälder-id = 0) 25

26 26 Genomförande o Lägg till text (Funktions-id 11, Förälder-id = 1) o Översätt text (Funktions-id 12, Förälder-id = 1) o Det presenteras som en oordnad lista (UL-taggen i HTML). En uppenbar brist i säkerhetstänkandet i denna applikation är att säkerhetskollen görs enbart i rendreringen av menyn. Kan användaren adressen till webbsidan finns inget som hindrar sidan att laddas. Den enklaste och bästa lösningen för detta vore att lägga en kontroll för att se till så att användaren har tillgång till funktionen. Behörighetskontrollen placeras lämpligtvis i administrationsverktygets basklass, vilket förenklar administration och förebygger duplicering av kod (mer om detta i kapitlet Gemensam basklass på sidan 33). Det går även att precisera så att enbart enstaka funktioner ur varje grupp visas, dvs. en användargrupp kan tilldelas olika underfunktioner Uppdatera texter När väl applikationen har lagrat en text i cachen så kommer den alltid att hämta texten från cachen. Att hämta data från cachen är något man eftersträvar då cachen är mycket snabbare att jobba mot än att gå via databasen. Ett problem uppstår dock på grund av denna funktion; när en administratör eller översättare ändrar i en text, så sparas innehållet enbart i databasen. Det värde som lagrats i cachen kommer inte att uppdateras. Detta är på grund av att administrationsverktyget och den publika webbplatsen är två skilda applikationer, som enbart har det gemensamt att de kommunicerar mot samma databas. Den publika webbplatsen har därför ingen vetskap om att en text har ändrats. För att lösa detta problem så infördes ett datum på texten. Datumet beskriver när texten senast blev uppdaterad eller skapad. Dessutom infördes en timer som sattes att klocka var 30:e minut. Till händelsen att timern klockade kopplades en funktion vars uppgift är att leta reda på alla texter vars datumstämpel var uppdaterad inom de senaste 30 minuterna. En nyckel som beskrev texten skapas, och denna nyckel används sedan för att plocka bort texten ur cachen. Nästa gång texten ska visas på webbplatsen så kommer applikationen i vanlig ordning först leta i cachen, sedan falla tillbaka och hämta upp den då uppdaterade texten ur databasen för att sedan spara den i cachen. I.Net-ramverket finns inbyggda säkerhetsprinciper för att minska riskerna för webbplatsen. En av de principerna är att man i grundutförandet ej får mata in htmlkoder i textformulär som postas till webbservern. Detta är dock ett behov för texterna på webbplatsen. För att komma runt regeln måste man sätta följande instruktion i sidans definition: ValidateRequest="false" Med denna säger man till ramverket att inte validera innehåll som postas till servern. 26

27 27 Genomförande I och med att man lämnar sidan öppen för valfri inmatning mot databasen är det viktigt att man HTML-kodar den text som skall sparas. På det sättet försvarar man systemet som illasinnade användare som annars kan orsaka skada. Instruktionen för att säkra den inmatade texten ser ut såhär: string textvaluehtmlencoded = System.Web.HttpUtility.HtmlEncode(tbTextContent.Text); Där tbtextcontent.text är innehållet i textfältet där användaren matar in text Demonstration av administrationsverktyget I detta kapitel följer en demonstration av administrationsverktyget. Demonstrationen kommer att visa hur det går till när en text ska översättas. Det är titel-texten på demosidan som ska läggas till på det svenska språket. Som man kan se på bilden så skrivs text-koden för en text ut på webbsidan ifall systemet inte lyckades matcha en text till koden. I detta fall är det koden ##Title.FrontPage##. Det är en finess som gör det enkelt att hitta koder som behöver uppdateras med riktigt innehåll. Figur 3: Visar en skärmbild där en text ska översättas. Den engelska översättningen syns kort i den högra fliken under addressfältet. För att redigera/lägga till texten så loggar jag in i administrationsgränssnittet. Min användare har statusen Administratör vilket gör att jag får se alla menyalternativ i vänstermenyn. Förstasidan i administrationsverktyget visar en presentationbild där användaren välkomnas: Figur 4: Presentationsvy i administrationsverktyget. Eftersom texten redan finns inlagd på svenska ska vi enbart översätta texten till engelska. Översättningar sker på vyn Translate text ( Översätt text ). För att 27

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering

Läs mer

Manual för din hemsida

Manual för din hemsida Manual för din hemsida Dynamiska hemsidor är en lösning för att man på ett enkelt sätt skall kunna lägga till, ändra och ta bort sidor på sin hemsida. För att detta skall vara möjligt bygger lösningen

Läs mer

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering

Läs mer

DOTNETNUKE SKOLNING Skapat: den 20 november 2012

DOTNETNUKE SKOLNING Skapat: den 20 november 2012 DOTNETNUKE SKOLNING Skapat: den 20 november 2012 CONTENTS WebbSidans Layout... 3 Inloggning... 3 Kontroller för administrering... 4 Växla visnings läge... 4 View Läge... 4 Edit Läge... 4 Layout Läge...

Läs mer

Zimplit CMS Manual. Introduktion. Generell Information

Zimplit CMS Manual. Introduktion. Generell Information Zimplit CMS Manual Introduktion Detta dokument ger en överblick av Zimplit CMS (Content Management System) användargränssnitt och dess funktioner. (För mer information och hjälp-forum, se zimplit.org.)

Läs mer

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE VT-09 Innehållsförteckning Inledning & problembeskrivning...1 Systembeskrivning...2 Affärsobjekt...2 Databasen...4

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

FLEX Personalsystem. Uppdateringsanvisning

FLEX Personalsystem. Uppdateringsanvisning FLEX Personalsystem Uppdateringsanvisning Innehållsförteckning UPPDATERING... 3 Allmänt... 3 Förberedelser... 3 Informera om uppdatering... 3 Ladda hem uppdateringsfiler... 4 Att observera vid uppdatering...

Läs mer

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm Användarhandbok (testsite http://www.pahlm.com/dynapahlm/ Förord DynaPahlm är levererat tillsammans med din webbplats från KM-Företagsutveckling. DynaPahlm är ett Content Management System (CMS), fritt

Läs mer

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1 Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1 Allmänt Releasen omfattar uppgradering av Tekis Aviseringsprogram version 6.3.1 (för både Tekis-FIR och Tekis-KID avisering) samt databasuppgradering

Läs mer

Dokumentation för editering av sl.se

Dokumentation för editering av sl.se Version: 1 Datum: 2014-03-24 evry.com Redaktörsdokumentation Redaktörsdokumentation Dokumentation för editering av sl.se Versionshistorik Ändring nr. Ändring datum Förändringar Reviderad av 1 2014-03-24

Läs mer

Moodle2 STUDENTMANUAL

Moodle2 STUDENTMANUAL Moodle2 STUDENTMANUAL Moodle är en lärplattform med hjälp av vilket du kan kommunicera, dela med dig av information och upprätthålla kontakten med lärarna, handledarna och de andra kursdeltagarna. För

Läs mer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript

Läs mer

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18 Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18 Innehåll Inledning... 3 Fakta... 4 Innehåll... 4 Texthantering... 4 Granskning och versionshantering...

Läs mer

IT-system. BUP Användarmanual

IT-system. BUP Användarmanual IT-system Användarmanual Innehållsförteckning 1. Att komma igång med... 1 1.1 Installera... 1 1.1.1 Byt databas... 1 1.1.2 Behörighet att byta databas... 2 1.2 Logga in... 3 1.2 Inloggad... 3 1.3 Logga

Läs mer

Lathund - webbsidor och filer

Lathund - webbsidor och filer Lathund - webbsidor och filer 2005-09-07 Manualen nås via denna webbadress: http://www.med.lu.se/support Lathund - webbsidor och filer... 1 1. Inloggning... 2 Efter inloggningen... 2 2 Översikt över gränssnittet...

Läs mer

Ellibot 1.0. Interaktivmedia Content Management System. Publicera för webben

Ellibot 1.0. Interaktivmedia Content Management System. Publicera för webben Ellibot 1.0 Interaktivmedia Content Management System Publicera för webben Innehåll Logga in 3 Skapa en ny webbsida 4 o Publicering 5 o Information 5 o Standardfiler 6 o Innehåll 7 Hur man skapar en länk

Läs mer

Användarmanual för Content tool version 7.5

Användarmanual för Content tool version 7.5 Användarmanual för Content tool version 7.5 TM WEB Express AB Manual Content tool 7.5 Sid 2 INNEHÅLLSFÖRTECKNING 1 OM PUBLICERINGSVERKTYGET... 3 1.1 ALLMÄNT... 3 2 ÖVERSIKT... 3 3 ALLMÄNT OM WEBBSIDAN

Läs mer

Innehåll. Dokumentet gäller från och med version 2014.3 1

Innehåll. Dokumentet gäller från och med version 2014.3 1 Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen

Läs mer

InSite Prepress Portal

InSite Prepress Portal InSite Prepress Portal System Version 5.0 Kundens snabbhandledning Svenska Innehåll Vad är InSite Prepress Portal?...1 Vad har ändrats i version 5.0...1 Logga in till Prepress Portal...1 Få hjälp...2 Kontrollera

Läs mer

Ekonomiportalen Sa kommer du iga ng

Ekonomiportalen Sa kommer du iga ng Ekonomiportalen Sa kommer du iga ng Innehållsförteckning Inloggningssidan... 2 Så här loggar du in... 3 Glömt ditt lösenord? Så här återställer du ditt lösenord... 4 Glömt lösenord till kundgemensamt rapportkonto?...

Läs mer

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas Ort och datum Ort och datum Namn Namn Magnus Einarsson/+46 (0)+46 54 291742 2010-06-29 1.0 1 (5) Innehållsförteckning 3 1 Inledning 3 1.1 Introduktion... 3 1.2 Revisionshistoria... 3 1.3 Referenser...

Läs mer

Att använda ELSA. Vad behövs för att använda ELSA?. Felrapportering och support

Att använda ELSA. Vad behövs för att använda ELSA?. Felrapportering och support KI Biobank Instruktion Användarmanual för ELSA Innehållsförteckning Allmänt... 1 Vad är ELSA?... 1 Vad behövs för att använda ELSA?... 2 Felrapportering och support... 2 Att använda ELSA... 2 Viktig information...

Läs mer

Henrik Häggbom Examensarbete Nackademin Våren 2015

Henrik Häggbom Examensarbete Nackademin Våren 2015 AV Henrik Häggbom Examensarbete Nackademin Våren 2015 1 INLEDNING Som examensarbete på min utbildning på Nackademin Programutveckling.NET kommer jag skapa ett webbaserat system för statistik, tabeller

Läs mer

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. .0.0 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6 poäng Denna tentamen

Läs mer

Snabbguide för användare SourceTech Telllus

Snabbguide för användare SourceTech Telllus Snabbguide för användare SourceTech Telllus Copyright SourceTech AB 2000-2012 Innehållet i denna manual är skyddat enligt upphovsrättslagen och får varken helt eller delvis kopieras utan uttrycklig tillåtelse

Läs mer

Kursplanering Utveckling av webbapplikationer

Kursplanering Utveckling av webbapplikationer Kursplanering Utveckling av webbapplikationer Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-WEB Klass Systemutvecklare.NET Syfte och koppling till yrkesrollen För att kunna arbeta som systemutvecklare

Läs mer

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.2.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

Introduktion till MySQL

Introduktion till MySQL Introduktion till MySQL Vad är MySQL? MySQL är ett programmerings- och frågespråk för databaser. Med programmeringsspråk menas att du kan skapa och administrera databaser med hjälp av MySQL, och med frågespråk

Läs mer

Pyramid Business Studio - e-line & Betalkort

Pyramid Business Studio - e-line & Betalkort Pyramid Business Studio - e-line & Betalkort 21 mars 2005 Pyramid E-handel med betalkort via DebiTech fr om 3.39A Betalningssätt I kontaktregistret har val av betalningssätt tillkommit betalkort eller

Läs mer

Översikt av kapitlet. Ge databasen ett lösenord. Förhindra ändringar av koden i databasen

Översikt av kapitlet. Ge databasen ett lösenord. Förhindra ändringar av koden i databasen Översikt av kapitlet Ge databasen ett lösenord Förhindra ändringar av koden i databasen 10 Säkraochdelaut information I detta kapitel kommer du att få lära dig att: Tilldela ett lösenord till en databas.

Läs mer

Säkerhet. Säkerhet. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Säkerhet. Säkerhet. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449 Säkerhet Säkerhet Webbteknik II, 1DV449 Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet F06 Säkerhet Dagens agenda HTTPS Autentisiering - Egen autentisiering - Lösenordshantering

Läs mer

Joomla CMS Del 2 av 2

Joomla CMS Del 2 av 2 JOOMLA 3 CMS GRUNDKURS DEL 2 AV 2 Innehåll Extern Struktur Menyer och Sidor Användare och Åtkomstnivåer Skapa en sida som kräver inloggning Moduler och Positioner Sökmotor och undermenyer Copyright Mahmud

Läs mer

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet WP-Edit Robin Larsson Martin Davik 2014 Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet Handledare: Anders Jackson Examinator: Carina Pettersson WP-Edit av Robin Larsson Martin

Läs mer

Manual HSB Webb brf 2004 03 23

Manual HSB Webb brf 2004 03 23 TERMINOLOGI I Polopoly används ett antal grundläggande begrepp för publicering och hantering av information, eller innehåll som det också benämns. Nedan följer en kort genomgång av denna grundläggande

Läs mer

Använda Office 365 på en iphone eller en ipad

Använda Office 365 på en iphone eller en ipad Använda Office 365 på en iphone eller en ipad Snabbstartsguide Kontrollera e-post Konfigurera din iphone eller ipad så att du kan skicka och ta emot e-post från ditt Office 365-konto. Kontrollera din kalender

Läs mer

Decentraliserad administration av gästkonton vid Karlstads universitet

Decentraliserad administration av gästkonton vid Karlstads universitet Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå

Läs mer

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1 Installation/uppdatering av Hogia Personal fr.o.m. version 13.1 Viktig information gällande installation Från version 12.2 av Hogia Personal krävs Microsoft.Net Framework 3.5 SP1 för att installation skall

Läs mer

DGC IT Manual Citrix Desktop - Fjärrskrivbord

DGC IT Manual Citrix Desktop - Fjärrskrivbord DGC IT Manual Citrix Desktop - Fjärrskrivbord Ver 130912 Innehåll 1 Använda Citrix Desktop - Fjärrskrivbord... 2 2 Inställningar i Fjärrskrivbordet... 7 Kontrollera att de applikationer du har tillgång

Läs mer

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2) 1 Instruktioner Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 2. Logga in (SIDA 2) 3. Hem (SIDA 2) 4. Skapa/redigera sidor (SIDA 3) 41. Lägg till ny sida (SIDA 3) 42. Avancerat (SIDA 4) 5. Texteditor (SIDA

Läs mer

Installationsguide fo r CRM-certifikat

Installationsguide fo r CRM-certifikat Installationsguide fo r CRM-certifikat För att säkerställa en säker inloggning till CRM Finance webb så behöver alla kunder installera ett kund-unikt klientcertifikat innan man kan försöka logga in i systemet.

Läs mer

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1 Användarhandbok Trio Visit Web Trio Enterprise 4.1 COPYRIGHT NOTICE: No part of this document may be reproduced, distributed, stored in a retrieval system or translated into any language, including but

Läs mer

Användarmanual - OVK. Användarmanual OVK Version 1.5 Daterad: 2014-09-09

Användarmanual - OVK. Användarmanual OVK Version 1.5 Daterad: 2014-09-09 1 Användarmanual - OVK 2 Inloggning... 3 Allmänt... 4 Öppna protokoll... 6 Fylla i protokoll... 7 Skriva ut protokoll... 16 Returnera protokoll... 17 Uppföljning anmärkningar/åtgärder... 17 3 Inloggning

Läs mer

Twisted Scissors. Ett projekt i kursen tnm047 2006/2007. Björn Gustafsson bjogu419@student.liu.se. Mats Wedell matwe812@student.liu.

Twisted Scissors. Ett projekt i kursen tnm047 2006/2007. Björn Gustafsson bjogu419@student.liu.se. Mats Wedell matwe812@student.liu. Twisted Scissors Ett projekt i kursen tnm047 2006/2007 Björn Gustafsson bjogu419@student.liu.se Mats Wedell matwe812@student.liu.se Innehållsförteckning Innehållsförteckning...2 Inledning...3 Bakgrund...3

Läs mer

Uppdaterad: 2014-05-07. Lathund. Logga in

Uppdaterad: 2014-05-07. Lathund. Logga in Uppdaterad: 2014-05-07 Lathund Logga in 1 1 Skriv ej ut manualen! För att alltid ha aktuell information och slippa dyra utskriftskostnader ber vi dig att ladda hem manualen som en PDF från vår hemsida

Läs mer

Logga in... 3. Översikt/Dashboard... 4. Avvikande produkter... 4. Arbeten misslyckades... 4. Senaste gjorda... 4. Systemmeddelanden...

Logga in... 3. Översikt/Dashboard... 4. Avvikande produkter... 4. Arbeten misslyckades... 4. Senaste gjorda... 4. Systemmeddelanden... Innehållsförteckning Logga in... 3 Översikt/Dashboard... 4 Avvikande produkter... 4 Arbeten misslyckades... 4 Senaste gjorda... 4 Systemmeddelanden... 4 Användare... 6 Lägg till ny användare... 6 Redigera/radera

Läs mer

Arg-administratörens guide till Umbraco v 1.2.1

Arg-administratörens guide till Umbraco v 1.2.1 Arg-administratörens guide till Umbraco v 1.2.1 Logga in 1. Öppna en webbläsare och gå till inloggningssidan: https://www.sfog.se/umbraco/ 2. Skriv in följande användarnam & lösenord : 3. Klicka på Logga

Läs mer

Stored procedure i ASP.NET

Stored procedure i ASP.NET Stored procedure i ASP.NET OBS! Om du vill jobba med att skapa en stored procedure i en SQL Serverdatabas ifrån VS2010 måste du ha fullversion, expressversionen tillåter dig ej att skapa triggers, stored

Läs mer

Lab 5: ASP.NET 4.5 Site Navigation

Lab 5: ASP.NET 4.5 Site Navigation Lab 5: ASP.NET 4.5 Site Navigation Enkel navigering är en viktig del av en modern webbapplikation. Eftersom en stor del av utvecklingstiden för en site används för att bygga menyer, trädstrukturer och

Läs mer

CMS. - Content management system

CMS. - Content management system CMS - Content management system Agenda CMS Server, webbhotell och FTP Wordpress, ställ mycket frågor Om vi hinner - Snabb genomgång av CMS - uppgiften Nu & Då Sidor med bara HTML och CSS kräver manuell

Läs mer

Att arbeta med. Müfit Kiper

Att arbeta med. Müfit Kiper Att arbeta med Müfit Kiper Att skriva nya inlägg Alla inlägg som är postade visas i kronologisk ordning, det vill säga det senast postade inlägget kommer visas först om inget annat angetts i temafilerna.

Läs mer

Tips & Trix - Teknik Jeeves World 2011. Copyright 2011 Jeeves Information Systems AB

Tips & Trix - Teknik Jeeves World 2011. Copyright 2011 Jeeves Information Systems AB Tips & Trix - Teknik Jeeves World 2011 Copyright 2011 Jeeves Information Systems AB Agenda Formulärdesign Förbättra användarvänlighet För systemadministratören Tips vid sökning Nätverkskonfigurering Säkerhet

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt. Kom igång Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.se/login Nu dyker en ruta upp på skärmen. Fyll i ditt användarnamn och lösenord och klicka på "logga in". Nu

Läs mer

Vad säger lagen om cookies och andra frågor och svar

Vad säger lagen om cookies och andra frågor och svar Vad säger lagen om cookies och andra frågor och svar Vad är en cookie? En cookie är en liten textfil som webbplatsen du besöker begär att spara på din dator. Cookies används på många webbplatser för att

Läs mer

Manual för visionutv.net Redigera

Manual för visionutv.net Redigera Manual för visionutv.net Redigera Version 2.0 Visionutveckling 2004 Innehåll: 1 Om Redigera 3 1.1 Bakgrund 3 1.2 Hur Redigera är uppbyggt 3 1.3 Vad är? 4 2 Inloggning 6 3 Nyheter i Redigera 2.0 7 3.1 Funktionsknappar

Läs mer

Mamut Open Services. Mamut Kunskapsserie. Kom i gång med Mamut Online Survey

Mamut Open Services. Mamut Kunskapsserie. Kom i gång med Mamut Online Survey Mamut Open Services Mamut Kunskapsserie Kom i gång med Mamut Online Survey Kom i gång med Mamut Online Survey Innehåll MAMUT ONLINE SURVEY... 1 KOM I GÅNG MED MAMUT ONLINE SURVEY... 3 MAMUT-ANVÄNDARE:

Läs mer

Grundläggande funktioner i CMS ifrån Argonova Systems, 2011.

Grundläggande funktioner i CMS ifrån Argonova Systems, 2011. Grundläggande funktioner i CMS ifrån Argonova Systems, 2011. Syfte Detta dokument tar upp grundläggande funktioner i Argonova Systems CMS i syfte att förbereda och stödja användaren, vid sidan av och inför

Läs mer

Lathund för Novell Filr

Lathund för Novell Filr 1(57) Stadsledningsförvaltningen IT-avdelningen Lathund för Novell Filr 2(57) Innehåll 1. Introduktion... 4 2. Termer... 4 3. Icke tillåtna tecken i filnamn... 4 4. ipad... 5 4.1 Installation... 5 4.2

Läs mer

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.1.2 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

Tele2 Växel. Användarmanual Statistik

Tele2 Växel. Användarmanual Statistik Tele2 Växel Användarmanual Statistik Innehåll 1. Tele2 Växel Statistik... 3 1.1 Få tillgång till Tele2 Växel Statistik... 4 1.2 Översikt Tele2 Växel Statistik... 5 2. Tele2 Växel Statistik Bas... 7 2.1

Läs mer

Nya internwebben. manual i Drupal 2012-03-16. Version 1.9. Ändringar från version 1.8

Nya internwebben. manual i Drupal 2012-03-16. Version 1.9. Ändringar från version 1.8 Nya internwebben manual i Drupal 2012-03-16 Version 1.9 Ändringar från version 1.8 Ny adress för inloggning Administrativ title/title Externa länkar Bildstorlekar Innehåll Inloggning... 4 My workbench...

Läs mer

Flytt av. Vitec Mäklarsystem

Flytt av. Vitec Mäklarsystem Flytt av Vitec Mäklarsystem Augusti 2014 Innehållsförteckning 1. Inledning... 2 Förutsättningar... 2 Läs noga igenom manualen... 2 Systemkrav... 2 Kundservice/Teknisk support... 2 2. Skapa säkerhetskopia...

Läs mer

Webbmanual hittaut.nu

Webbmanual hittaut.nu Webbmanual hittaut.nu - Webbmanual för hittaut.nu Manualen är sammanställd av hittaut.nu-kansliet. Saknas något eller är det något som inte stämmer? Kontakta då hittaut.nu-kansliet på info@hittaut.nu!

Läs mer

Nya webbservern Dvwebb.mah.se

Nya webbservern Dvwebb.mah.se Nya webbservern Dvwebb.mah.se Bakgrund: BIT (Bibliotek och IT) beslutar att ta ner Novell systemet 28/3 som är en katalogtjänst som styr bland annat alla studenter s.k. hemkataloger på Malmö högskola såväl

Läs mer

Moodle. en snabbguide för utvecklare av virtuella rum - Hans Lindetorp 2007. http://moodle.kmh.se

Moodle. en snabbguide för utvecklare av virtuella rum - Hans Lindetorp 2007. http://moodle.kmh.se Moodle en snabbguide för utvecklare av virtuella rum - Hans Lindetorp 2007 http://moodle.kmh.se Moodle är en plattform för nätbaserat flexibelt samarbete och lärande. Det bygger på den nya generationens

Läs mer

Blogga med Wordpress

Blogga med Wordpress Blogga med Wordpress Introduktion En blogg kan användas på en lång rad olika sätt, även om det vanligaste kanske är att se den som en mer eller mindre publik yta på nätet att dela med sig av tankar och

Läs mer

Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.

Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå. MAGENTO 3.3.4.5 SVEAWEBPAY MAGENTO INSTALLATION INFORMATION Detta dokument är framtaget i syfte att beskriva hur SveaWebPays Betalmodul för Magento (version 3.3.4.5) uppgraderas, installeraras och konfigureras.

Läs mer

Workshop IBA internet based assessment

Workshop IBA internet based assessment Workshop IBA internet based assessment 2003-04-02 Ulf Jonsson Målsätttning Efter denna workshop så skall du förstå/kunna: * Beskriva olika delarna som ingår i verktyget Perception. * Konstruera enkla frågor

Läs mer

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet

Läs mer

ASP.NET MVC. Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se. Innehåll

ASP.NET MVC. Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se. Innehåll ASP.NET MVC Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se Innehåll Introduktion till MVC Controller Action-metoder Views Arbeta med Layout-sidor och sektioner Route konfiguration

Läs mer

Manual - Storegate Team

Manual - Storegate Team Manual - Storegate Team Om tjänsten Med Storegate Team får du full kontroll över företagets viktiga digitala information. Du kan enkelt lagra, dela och arbeta i filer med högsta säkerhet inom ditt företag.

Läs mer

Hogia Personal version 13.1.138 (2013-01-16)

Hogia Personal version 13.1.138 (2013-01-16) Hogia Personal version 13.1.138 Här följer en sammanställning av programförändringar som skett i version 12.1.16 till 13.1.138 av Hogia Personal. Hogia Personal version 13.1.138 (2013-01-16) Vi har gjort

Läs mer

SGH-A400 WAP Browser Användarhandbok

SGH-A400 WAP Browser Användarhandbok * Vissa innehåll i denna handbok kan skilja sig från din telefon beroende på mjukvaran som installerats eller din operatör. SGH-A400 WAP Browser Användarhandbok ELECTRONICS Behöver du hjälp eller har frågor,

Läs mer

www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.

www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003. 2 3 1 Är samhällsviktiga tjänster på Internet tillgängliga för personer med funktionshinder? PTS-ER-2004:14, ISSN 1650-9862. www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.pdf

Läs mer

Lathund Behörighetshantering

Lathund Behörighetshantering Lathund Behörighetshantering För att kunna ställa in behörigheter krävs det att SiteVision är kopplat till en katalogtjänst. Behörigheter Hantering av behörigheter och rättigheter kan göras för hela webbplatsen,

Läs mer

KIWAS LATHUND FÖR KURSGIVARE

KIWAS LATHUND FÖR KURSGIVARE 1 KIWAS LATHUND FÖR KURSGIVARE Söka kursplan i KIWAS Sök efter skapade kursplaner genom att klicka på Lista kursplaner i menyn under fliken Kurser. Listan som visas är begränsad till de kursplaner som

Läs mer

ServiceFirst Webbhandledning, version 2.0. 2010 Assessio International AB. All rights reserved

ServiceFirst Webbhandledning, version 2.0. 2010 Assessio International AB. All rights reserved ServiceFirst Webbhandledning, version 2.0 2010 Assessio International AB. All rights reserved 1. Log-in Logga in till ServiceFirst på: www.servicef.com. Skriv in ditt användarnamn och lösenord Klicka på

Läs mer

ENTRÉ DOKUMENTHANTERING...

ENTRÉ DOKUMENTHANTERING... Entré Innehåll ENTRÉ DOKUMENTHANTERING... - 2 - Starta Dokumenthantering... - 3 - Lägga till dokument via frågeguide... - 4 - Frågeguiden... - 5 - Lägga till dokument manuellt... - 7 - Lägg till fil...

Läs mer

Cactus Informationssystem - CIS. Revision 1.1

Cactus Informationssystem - CIS. Revision 1.1 Cactus Informationssystem - CIS Revision 1.1 1 Innehåll 1 Inledning...2 1.1 Objekt...2 1.2 Kategorier...2 2 Webbgränssnittet...3 2.1 Start av webbgränssnittet...3 2.2 Operatörsingång...4 2.2.1 Startsida...4

Läs mer

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB Anvisningar för inkoppling till Mikrodataåtkomst vid SCB Välkommen till systemet för mikrodataåtkomst, MONA. Denna handledning hjälper dig att snabbt komma igång och arbeta med MONA-systemet. Om du stöter

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Med koppling till EmiWeb

Med koppling till EmiWeb Datavetenskap Opponent(er): Jonas Brolin Mikael Hedegren Respondent(er): David Jonsson Fredrik Larsson Webbaserad släktträdsmodul Med koppling till EmiWeb Oppositionsrapport, C/D-nivå 2005:xx 1 Sammanfattat

Läs mer

SMART Ink 3.0 ANVÄNDARHANDBOK FÖR MAC OS X-OPERATIVSYSTEM

SMART Ink 3.0 ANVÄNDARHANDBOK FÖR MAC OS X-OPERATIVSYSTEM SMART Ink 3.0 ANVÄNDARHANDBOK FÖR MAC OS X-OPERATIVSYSTEM Varumärkesinformation SMART Ink, SMART Meeting Pro, smarttech, SMART-logotypen och alla SMART-slogans är varumärken eller registrerade varumärken

Läs mer

Blackboard CE8 Användarmanual Student

Blackboard CE8 Användarmanual Student Blackboard CE8 Användarmanual Student 2009-09-02 (CE 8.0.3) Inledning 1 Logga in på Blackboard 1 Verktyg 2 Diskussionsforum 2 Läsa ett diskussionsinlägg (trådade forum) 3 Läsa ett diskussionsinlägg (bloggforum)

Läs mer

Dokumentation för användning av administrationspanelen på Xtractor.se

Dokumentation för användning av administrationspanelen på Xtractor.se Dokumentation för användning av administrationspanelen på Xtractor.se Kontrollpanelen når man på: http://xtractor.se/admin Xtractors webbplats är uppbyggt på en skräddarsydd variant av publiceringssystemet

Läs mer

Uppdaterad: 2014-03-18. Lathund. Arbetsrum

Uppdaterad: 2014-03-18. Lathund. Arbetsrum Uppdaterad: 2014-03-18 Lathund Arbetsrum 1 1 Innehållsförteckning Inledning 3 Arbetsrum 4 Skapa arbetsrum, steg 1 4 Skapa arbetsrumslista 4 Olika typer av arbetsrum 6 Skapa arbetsrum, steg 2 6 Lägg in

Läs mer

Labb 4: ASP.NET 2.0 Medlemskap, Inloggningskontroller, Rollhantering

Labb 4: ASP.NET 2.0 Medlemskap, Inloggningskontroller, Rollhantering Labb 4: ASP.NET 2.0 Medlemskap, Inloggningskontroller, Rollhantering Autentisering via formulär är ett vanligt sätt skapa säker åtkomst till internetresurser. Med de inloggnings och autentiseringskotroller

Läs mer

Manual för webbpublicering. Enköpings kommun

Manual för webbpublicering. Enköpings kommun Manual för webbpublicering Enköpings kommun Innehåll ATT LOGGA IN I SWWWING 3 Inloggningsrutan 3 GRÄNSSNITTET 4 Filhanteraren 4 Content Management 4 Verktyget Notify - Dags att uppdatera 4 SKAPA OCH REDIGERA

Läs mer

1 Installationsinstruktioner

1 Installationsinstruktioner 1 Installationsinstruktioner 1.1 Förbereda installationen Kontrollera systemkraven. Försäkra dig om att din dators hårdvara uppfyller de systemkrav som är specificerade. Vid installering av Engineering

Läs mer

Lathund Blogg hos moobis.se (skapad av Marie Linder marielinder.se)

Lathund Blogg hos moobis.se (skapad av Marie Linder marielinder.se) Lathund Blogg hos moobis.se (skapad av Marie Linder marielinder.se) 1) Gå till moobis.se 2) Klicka på skapa blogg i menyn längst upp och sedan på 4) Välj användarnamn och fylla i din epostadress. Du kan

Läs mer

Certifikatbaserad inloggning via SITHS, tillämpningsexempel

Certifikatbaserad inloggning via SITHS, tillämpningsexempel Certifikatbaserad inloggning via SITHS, tillämpningsexempel För att logga in i en webbapplikation med hjälp av SITHS-kort och certifikat behöver webservern och applikationen konfigureras för hantering

Läs mer

Användarhandbok för administratörer av tjänsten för Mobil och surfplatta

Användarhandbok för administratörer av tjänsten för Mobil och surfplatta Användarhandbok för administratörer av tjänsten för Mobil och surfplatta Ideon Science Park Scheelevägen 17 223 70 Lund, Sweden Innehåll Inledning... 3 Om Handboken... 3 Målgrupp... 3 Översikt av Applikationen...

Läs mer

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2 Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering

Läs mer

Användarmanual Allmän REQS 7

Användarmanual Allmän REQS 7 1 Användarmanual Allmän REQS 7 2 Innehållsförteckning: Inloggning... 3 Allmänt... 4 Bokmärken statistik... 5 Fastighetsinformation... 6 Uppdragsöversikt... 7 Listläge filtrera/sortera... 8 Listläge skriv

Läs mer

Dokumentation för VLDIT AB. Online classroom

Dokumentation för VLDIT AB. Online classroom Dokumentation för VLDIT AB Online classroom 2 Introduktion VLDIT AB önskar area för att tillhandahålla ett kursutbud online för sina befintliga deltagare, men även för nya. Syfte för applikationen: tillhandhålla

Läs mer

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Insamlingsverktyg - teknisk beskrivning av metadataformuläret Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera

Läs mer

Snabbstart för Novell Vibe Mobile

Snabbstart för Novell Vibe Mobile Snabbstart för Novell Vibe Mobile Mars 2015 Komma igång Mobil tillgång till Novell Vibe-webbplatsen kan inaktiveras av din Vibe-administratör. Om du inte kan använda Vibemobilgränssnittet enligt beskrivningen

Läs mer

Storegate Pro Backup. Innehåll

Storegate Pro Backup. Innehåll Storegate Pro Backup Välkommen! I denna manual kan du bland annat läsa om funktioner och hur du ska konfigurerar programmet. Läs gärna vårt exempel om versionshantering och lagringsmängd innan du konfigurerar

Läs mer

Användarmanual för Pagero Kryptering

Användarmanual för Pagero Kryptering för Pagero Kryptering Version 1.1-1 - Allmänt... 3 Kryptering av filer... 3 Dekryptering av filer... 3 Installation... 4 Inställningar... 5 Skapa nycklar... 6 Lägg till kataloger för övervakning... 6 Lägg

Läs mer