2016
Året då jag åkte till Thailand, fick tre nya medarbetare, stängde av mobilen i en vecka, var utomhus mer än något annat år, spelade massor med brädspel, började spela tennis, min bror fyllde 30 och jag träffade en bunt nya vänner.
...om webbdesign
Nu har jag äntligen lärt mig något nytt som PHP-programmerare och tänkte försöka dela med mig av min kunskap. Det jag tänkte skriva om idag är internets vanligaste programvara för forum. Mjukvaran heter PhpBB där BB står för Bulletin Board och koden är skriven i PHP med öppen källkod.
Att starta ett forum på det här sättet är jätteenkelt. Själva installationen består i av att packa upp en zip-fil och lägga på sin webbserver. Därefter finns en webbaserad guide som tar dig igenom installationsprocessen. Om du bara har koll på strukturen på din webbserver och hur man ansluter till webbhotellets databas så ska det inte vara några problem. Efter installationen finns 100-tals alternativ att välja bland för att få precis det forumet du vill ha.
Jag har sedan tidigare haft två PhpBB-forum. En för mitt korplags hemsida och en på företaget jag jobbar för, Winlas. Korplagets forum var dock inte använt på några år eftersom webbsidan i sig var så pass avancerad att det inte riktigt kändes att det behövdes. Nu hade jag däremot ambitionen att få till ett nytt forum som skulle vara mer integrerat i hemsidan och därmed förhoppningsvis användas i högre utsträckning. PhpBB har moddar och öppen källkod så att det ska gå att integrera den i din hemsida. De här modifikationerna ville jag göra:
Logga in på forumet ifrån startsidan på webbplatsen
Min inloggningsfunktion på startsidan var tidigare inte helt säker och lite ostabil. Jag tog därför tidigt beslutet att helt ersätta den gamla inloggningen med forumets inloggning. En sak som är bra med PhpBB och att det är så spritt och används av många webbutvecklare. Därför är det lätt att googla fram svar på vad man än kan tänkas fråga om. Inloggningsformuläret är bara några enkla input-rutor som skickar post-information till en funktion på forumet. Man behöver skicka med inloggningsnamn, lösenord, vilken sida användaren ska dirigeras till och om användaren vill fortsätta vara inloggad. Längst upp på sidan med inloggningsformuläret behöver man dessutom skapa en klass som skapar en session. Jag hade inga större problem så här långt. Tänk bara på att sidan man ska hamna på efter att loggat in dröjer några sekunder innan den laddas, då man först ser en bekräftelse på forumet att man har loggat in. På varje sida som ska kontrollera inloggningsstatus behöver man inkludera forumklassen. Jag lade den koden i en egen fil som jag includar längst upp på varje sida där det behövs.
Exportera en användartabell till forumets databas
Den här funktionen finns inte i ursprungliga forumet, utan jag var tvungen att hämta en expansionsmodul som kan stoppa in data ifrån en csv-fil i databasen.
Jag använda det här verktyget: http://www.phpbb.com/community/viewtopic.php?f=65&t=1494875
CSV-listan skapade jag genom en databasfråga där jag manuellt skrev ut semikolon och avskiljare i en while-loop ifrån den data sql-frågan generarade. Jag tänkte behålla den gamla databastabellen och har en dubbel uppsättning av användartabeller. PhpBBs inbyggda för inloggning i forumet/på hemsidan och den gamla som fortfarande lagrar behörighet och kopplingen till spelarprofilen. För att länka ihop tabellerna har jag en SQL-fråga på varje sida, där själva användarnamnet är främmande nyckel och länkar ihop tabellerna.
Stänga forumet för nya användare
Att inaktivera nyregistrering var det lättaste steget i min integration. Det finns en kryssruta när man loggar in som administratör på forumet under Allmänt -> Inställningar för användarregistrering och bocka för ”Inaktivera registrering” bland alternativen för kontoregistrering.
Visa senaste foruminläggen på hemsidans startsida
För att få till en full integration mellan hemsida och forum var det en viktig del att integrera senaste händelserna på forumet i nyhetsflödet på startsidan. Flödet består av en databastabell där jag manuellt sparat en post varje gång någon ny information sparas på hemsidan. Det finns för tillfället 23 olika typer av händelser. Att lägga in ytterligare en databaspost varje gång någon skriver ett inlägg i forumet var för avancerat då jag var tvungen att ändra för mycket i källkoden. Jag gick istället en enklare väg, med PHP-programmering som jag kan och är bra på: Databasfrågor och arrayer. Senaste inlägget sparas i en egen databastabell och går att söka upp med en relativt enkel SQL-fråga som sorteras efter tidpunkt inlägget skrevs. Jag får sedan fram hela det önskade dataflödet genom att först mellanlagra resultatet från SQL-frågan som hämtar ut loggen i en array, sedan lägga till arrayen med senaste poster i forumet och tillslut sortera arrayen efter datum och tidordning. Kanske inte en helt ulitmat lösning, men det fungerar och slutresultatet ser bra ut.
Nu blev det här mycket en beskrivning om hur min webbsida fungerar, men jag hoppas att någon hittar något som går att tillämpa på erat projekt. Det går att göra jättemycket med PhpBB-forum och det finns jättemycket information bara en Google-sökning bort.
Det var länge sedan jag uppdaterade den här bloggen. Nu minns jag inte ens när det var senast. Och sitter på tåget mot Göteborg, så har ingen Internetåtkomst så jag kan kolla. Då jag glömt någon tidning att läsa tänkte jag istället försöka underhålla mig på tågresan genom att skriva lite här.
Nu är vi som sagt på väg mot Göteborg där jag och två kollegor ska ha utbildning för Delphi, programmeringsverktyget vi använder för våra grundprogram. Chefen hoppas att den här utbildningen kan vara inkörsporten för mig för att börja programmera mera. Nu jobbar jag inte alls med Windowsapplikationer utan ägnar största delen av min arbetstid åt att underhålla mina webbapplikationer. Jag tror inte jag kommit så jättelångt där jämfört med sist jag skrev, det är tre moduler jag sysslar med:
Den sistnämnda applikationen är ny sedan sist. Det är mitt första helt egna projekt och jag hoppas få sälja in den till Kalmar kommun.
Förutom webbapplikationera har jag ansvar för att uppdatera vår hemsida och jag brukar få fixa med våra loggor och grafiska broschyrer då jag har högst kompetens med Photoshop på företaget.
Utanför jobbet har jag stannat upp lite med mina övriga projekt. Spelet XinY har i princip självdött. Det samma gäller tyvärr bokstavligen för Mössebergsfestivalen, då dess drivande kraft Lars-Åke Albinsson gick bort härom året. Det jag har kvar är korplagets hemsida, som är så komplett nu att inte så mycket behöver göras. Triathleten Davids sida pysslar jag också om då och då. Nu har jag också fått i uppdrag att göra en hemsida åt hans sambo som driver en stickbutik. Jag är dock i ett sånt ekonomiskt läge att jag inte känner att jag har behov att ta fler jobb om det inte är något som jag verkligen ty– tycker det är ett kul projekt. Fast anställning på Winlas och små utgifter gör att jag känner att jag har det bra ställt. Istället ägnar jag min fritid åt Farmville och Playstation 3. Ärligt talat har jag varit lite nere det senaste året sedan det tog slut mellan mig och min flickvän. Dessutom är jag väldigt lat.
Jag har funderat på vem som läser den här bloggen egentligen? Jämfört med andra ställen jag skriver väljer jag här att vara ganska formell med det jag skriver. I mina privata bloggar kan jag bli lite väl självutlämnande ibland, i motsatts till IRL där jag har hög personlig integritet och ett starkt behov av att ha kontroll på varje situation.Vem tror jag läser det här? Jag har märkt att om man Googlar på ”Fredrik Olsson Falköping” så kommer den här bloggen nästan längst upp på träfflistan. Något jag märkte när en kille som jag tränade badminton tillsammans med direkt visste vem jag var eftersom han också heter Fredrik Olsson. Likadant om man söker på ”Vikariekalendern” eller ”Winlas”. Och jag vill väl kanske inte att mina användare av webbapplikationerna ska få se för mycket av mina privata tankar.