Här är en beskrivning på hur Drupal används på http://vetenskapsjournalistik.org - webbplatsen för Svenska föreningen för vetenskapsjournalistik.
Snabb beskrivning
Webbplatsen är till för medlemmar i Svenska föreningen för vetenskapsjournalistik. De funktioner som finns på webbplatsen är i princip följande:
- Möjligheter för medlemmar att posta allmänna nyheter, för att uppmärksamma medlemmar och andra på händelser.
- Möjligheter för medlemmar att diskutera med varandra.
- Möjligheter för frilansande medlemmar att marknadsföra sina kunskaper och färdigheter inom olika fackämnen.
- Möjligheter för styrelsen att kontakta medlemmar.
Grundinstallation
Webbplatsen använder webbhotellet one.com - ett budgetalternativ som jag tycker fungerar bra. Drupal 5.3 laddades upp med hjälp av ftp-klienten FileZilla, och för att få Drupal att fungera med webbplatsen kommenterade jag bort option-raderna i .htaccess-filen. Som alltid skapade jag också en katalog med namnet "files", och gav denna skrivrättigheter för Drupal.
Core-moduler som används: Contact, Help, Locale, Menu, Path, Ping, Poll, Search, Statistics, Taxonomy, Tracker, Upload.
Övriga moduler som används:
- Organic groups, för att skapa flexibla diskussionsgrupper.
- Bio, för att ge möjlighet att knyta taxonomier (och noder) till medlemmar.
- Poormanscron, för att one.com inte stödjer den vanliga cron-funktionen.
- Registration code, för att begränsa vilka som kan registrera sig som medlemmar.
- Tagadelic, för att göra tag cloud.
- Views (med Views, Views RSS och Views UI aktiverade), för Organic Groups.
De externa modulerna installerades förstås i katalogen sites/all/modules, och inte i /modules.
Ändring av några inställningar: Tidszon, namn på webbplats, kontaktuppgifter och liknande ändrades för att passa Sverige. Jag skapade också en superadmin-roll, en roll för styrelsemedlemmar, och ett konto för mig själv (till skillnad för användare nr 1). Behörigheter ändrades för att passa med syftet med webbplatsen.
Jag skapade också några kontakt-kategorier för att få e-posta styrelsen eller webmaster.
Diskussionsgrupper
En viktig poäng med webbplatsen är att medlemmar och styrelse ska kunna kommunicera och diskutera med varandra. För detta används Organic groups.
Jag skapade en enkel nodtyp, som blev modernodtypen för diskussionsgrupper. En ny nodtyp "Wiki-sida" skapades, som samtliga inloggade medlemmar gavs rättigheter att redigera.
En diskussionsgrupp (organic group) skapades för styrelsen, och ytterligare en för alla medlemmar (för föreningsmeddelanden). Styrelsen fick behörighet att skapa nya diskussionsgrupper efter hand (exempelvis för radiojournalister, medlemmar som ska på en viss konferens, eller vad man nu kan tänka sig är efterfrågat).
Tag cloud av kategorier för användare
En poäng med webbplatsen är att besökare ska kunna kontakta frilansande journalister. För att göra detta lite mer lockande ville jag ha ett tag cloud med fackämnen som medlemmar anser sig bra på - genom att klicka exempelvis på "nanoteknik" skulle besökare få upp en lista över medlemmar som anser sig bra på just detta. Att knyta kategorier/taxonomi till användare visade sig dock vara lite knepigt, eftersom användare inte är noder.
Problemet löstes genom att installera Bio-modulen, som skapar en bio-nod till varje medlem. Alternativet "Use bio for user profiles" aktiverades, för att låta användare redigera sina egna bio-noder. Jag bytte så namn på bio-noden till "Presentation". Titelfältet fick heta "Namn som visas på webbplatsen" och beskrivningen fick heta "Presentation" - det gjorde visserligen att användare blir tvungna att skriva in sitt namn två gånger, men å andra sidan att användarnamnet inte behöver vara samma sak som namnet som visas utåt.
Slutligen skapade jag en taxonomi med namn "Ämnesområden", med "fri märkning/free tagging". Taxonomin knöts till bio-nodtypen Presentation, för att låta medlemmar lista sina ämneskunskaper. I administrationen av block aktiverade jag ett tag cloud för taxonomin.
Tema och utseende
Temat SEO Position laddades hem och installerades - förstås i katalogen sites/all/themes (och inte i /themes). Jag har upptäckt ett par brister i temat (som att rubriker i admin-menyer ibland inte visas och numrerade listor inte funkar), men det har generellt trevlig och lättanvänd layout - speciellt har den två högerkolumner med en toppbox som täcker båda kolumnerna. Taxonomiblocket hamnade i denna box.
Jag gjorde små justeringar i temat:
- Header-bilden byttes ut till något som hänger samman med SFVJ.
- En favicon.ico skapades och lades i tema-katalogen. (Detta kan man göra enkelt själv genom att rita en 16x16 bitmap i 256 färgers upplösning, och sedan byta filnamn.)
- Sidfotstexten anpassades till svenska. Jag behöll hänvisningen till dem som gjort temat, och la även in länkar till Drupals och min egen webbplats.
Språkanpassning
Svenska laddades hem och installerades. En hel del grejor blev inte översatta, speciellt sådant som kommer från externa moduler, men jag blev positivt överraskad av att e-posttexter för Organic groups översattes till svenska.
För att göra ytterligare språkanpassning klickade jag runt på webbplatsen och kollade var jag stötte på engelska uttryck. Dessa sökte jag sedan i administrera > inställningar > språkanpassning, fliken "hantera strängar". Jag visste inte hur det fungerade innan jag började, men det var enkelt att lista ut hur nyckelord som !user och liknande skulle användas.
Några ytterligare språkjusteringar gjordes genom template-filerna i temat - där några uttryck tyvärr låg inskrivna endast på engelska. Jag letade runt i .tpl.php-filer närhelst uttrycket jag sökte efter inte dök upp i Drupals egna verktyg för att hantera språköversättning.
Allt på webbplatsen blev inte översatt, men allt som syns för anonyma besökare, nästan allt som syns för vanliga medlemmar, och en stor del av det som syns för styrelsemedlemmar. (Något som tyvärr förblev oöversatt var uttrycket "Read the full story", som jag fram till denna dag inte hittat något sätt att översätta.)
Gränssnitt
För att göra webbplatsen lättare att använda gjorde jag ett antal anpassningar:
- Jag ändrade inställningarna för navigations-menyn (meny-menyn) så att endast superadmin-medlemmar fick tillgång till den.
- Jag skapade en meny synlig för alla, som innehåller länkar till "Om SFVJ", bli medlem, logga in, kontakt, och liknande allmänna länkar.
- Jag skapade en meny för medlemmar, med "skapa nyhet", "mitt konto", "mina diskussionsgrupper" och även den rätt viktiga länken "hjälp" (som också har underlänkar).
- Jag skapade en meny för styrelsemedlemmar, med saker som "ny informationssida", "ny diskussionsgrupp", "hantera menyer" och "hantera url-alias".
- Jag aktiverade blocket som visar de senast skapade diskussionsgrupperna.
- Jag skapade en egen superadmin-meny, med direktlänkar till adminuppgifter som moduler, block admin-by-module, användarlistor och språkanpassning.
- Jag la in ett antal länkar i primär-menyn: "hem", "mina grupper", "olästa meddelanden" och "logga ut".
- Jag skapade ett antal hjälpsidor som förklarar hur man ändrar sina användaruppgifter och sin presentation, samt berättade lite om hur man skapar nya inlägg, diskussionsgrupper och ändrar i gamla inlägg.
När jag ändå är inne på ämnet gränssnitt kan jag passa på att säga att jag behåll temat Garland som administrationstema.
Sista förberedelser
Innan trafiken på webbplatsen sattes igång skapade jag konton för de få personerna i styrelsen. Jag la in dem diskussionsgruppern för styrelsemedlemmar, och stängde sedan den diskussionsgruppen (så att den inte finns med bland diskussionsgrupper att bli medlem i vid registrering). Jag importerade också ett antal nyheter från föreningens gamla webbplats - jag la dock inte tid på att ta reda på hur automatisk import skulle kunna ske, utan copy-pastade de nyheter som var extra viktiga eller var skapade de senaste månaderna. (Det blev totalt inte mer än 20 inlägg.)
Jag bad styrelsemedlemmarna skriva in ämnesområden de är bra på, så att övriga medlemmar direkt får en aning om vad tag cloud:et är till för.
Sista steget (som i skrivande stund inte är genomfört) är att välja en kod man måste ha för att registrera sig som medlem, och maila ut till alla medlemmar att den nya webbplatsen är igång.

Comments
Väldigt användbara
har dina step-by-step-guider blivit för mig! Så det är väl inte mer än rätt att jag bidrar med en liten, liten hjälp tillbaka: "Read the full story" genereras på rad 73 (jag är dock inte helt säker på att radnumret är samma i originalfilen) i template.php
elseif ($key=="node_read_more") {$outputbuffer .= l("Read the full story...", $link['href'], $link['attributes'], $link['query'], $link['fragment'], FALSE, $html);
/Lena
Enkelsnuffar
Jag rekommenderar du använder enkelsnuffar istället för dubbelsnuffar om du inte absolut behöver det.
elseif ($key == 'node_read_more') {$outputbuffer .= l('Read the full story...', $link['href'], $link['attributes'], $link['query'], $link['fragment'], false, $html);
...
}
Jakob Persson
Webbredaktören - www.webbredaktoren.se
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Ja, fast varför?
När jag skriver kod själv (den här var ju klippt ur SEOposition-temat) så gör jag det, mest av bekvämlighetsskäl. Det är enklare att inte använda shift än att göra det. Men jag antar att det finns något bättre skäl bakom din rekommendation? Man tar i regel till sig tips och rekommendationer (och regler också för den delen) om man vet skälet bakom... ;)
/Lena
Priset
Bra förklaring:
http://www.jeroenmulder.com/weblog/2005/04/php_single_and_double_quotes.php
Single quotes (') är billigare... så ha för vana att alltid skriva dessa, såvida det inte leder till hemskt oläsbar kod.
Jakob Persson
Webbredaktören - www.webbredaktoren.se
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Benchmark
Det vanligaste argumentet varför man skall använda
'istället för"brukar mycket riktigt vara snabbhet. Men hur mycket snabbar är'än"egentligen? Jag skrev nedanstående kod för att ta reda på det.<?php$start = microtime(true);
for ($i = 0; $i < 100000; ++$i) {
echo 'Detta är test nummer '. $i .' för att mäta skillnaden mellan \' och ".'; // ALTERNATIV 1
// echo "Detta är test nummer $i för att mäta skillnaden mellan ' och \"."; // ALTERNATIV 2
}
$stop = microtime(true);
print "\n\nTotal tidåtgång: ". ($stop - $start) * 1000 ." ms.\n\n";
?>
Mycket riktigt visade det sig att alternativ 1 (
') är snabbare än alternativ 2 ("). På min maskin tog det 2,2 och 2,7 sekunder att köra alternativ1 respektive 2 de 100 000 gångerna. Det innebär att alternativ 1 är 18 % snabbare än alternativ 2. Det verkar ju vara ett bra skäl att välja'framför"om man kan. Eller...?På 100 000 körningar skiljer endast 0,5 sekunder de två alternativen. Det innebär att skillnaden endast är 5 mikrosekunder!! Om så små tidsrymder har betydelse så finns en hel massa saker vi kan göra. Använd
echoistället förprintoch du vinner 1 mikrosekund. Använd++iistället föri++och du vinner ytterligare 1 mikrosekund.Med andra ord är följande kod 0,7 sekunder snabbare
<?phpfor ($i = 0; $i < 100000; ++$i) {
echo 'Detta är test nummer '. $i .' för att mäta skillnaden mellan \' och ".';
}
?>
än denna kod:
<?phpfor ($i = 0; $i < 100000; $i++) {
print "Detta är test nummer $i för att mäta skillnaden mellan ' och \".";
}
?>
Vad blir slutsatsen? Om man har kod som skall köras 100 000 gånger per sidvisning så kan det vara värt att anstränga sig att använda
'istället för"(ochechoistället förprintoch++$iistället för$i++). Men i normalfallet så är prestanda inget skäl att välja det ena före det andra.Personligen föredrar jag, precis som min kollega, att använda
'framför"om det inte föreligger skäl att använda". Jag använder"när jag verkligen behöver escape sequences eller variable parsing. Jag väljerprintframförechoeftersomprintbeter sig som en funktion (fast det inte är det!). Jag väljer++$iframför$i++bara för att glänsa. :-)Thomas Barregren – Webbredaktören
Bevisat
Tänkte just skriva något om att jag läst liknande diskussioner tidigare och att prestandavinsten är försumbar och mera en myt än verkligt problem. Men nu behöver jag inte ens leta reda på referens efter ditt utförliga svar :)
Vi fortsätter på annan plats :-)
Denna sidodiskussion fortsätter på annan plats. :-)
Thomas Barregren – Webbredaktören
Tackar!
Jag blev så uppslukad av diskussionen kring enkla eller dubbla citattecken att jag helt glömde bort att tacka för informationen om hur "Read the full story" plockas bort. Tackar!
//Johan Falk, Uppsala
Tack för fin instruktion - men bilder?
Hej!
Tack för din fina steg-för-steg instruktion och tack för dina trevliga och informativa screencasts!
Det vore jättefint att få en sådan steg-för-steg instruktion till hur man skapar lika enkel bildhantering som den WordPress erbjuder out-of-the-box. Jag har ägnat timmar åt at söka i forum och testa moduler men ännu inte lyckats. Om vissa moduler (Image Assist t ex) rapporteras allvarliga problem - kanske ska man inte ta för allvarligt på dem? Köpte en bok - Drupal 6, David Mercer, men ingenting. Och detta är väl ändå basic?
Allt gott
Henrik
Drupal gör inte
Drupal gör inte bildhantering out of the box, med andra ord finns inte ett gränssnitt för att hantera bilder på ett sätt man kan förvänta sig.
Boken Using Drupal tar upp hur man gör ett bildgalleri med Drupal:
http://www.usingdrupal.com/
Det handlar om att kombinera rätt moduler, inte att välja en enda som löser allting. CCK ImageField, ImageCache, Views och Thickbox är egentligen allt du behöver.
Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Tack för snabbt svar! SFW Tools?
Jag har arbetat på den modell du föreslog och lärt mig nya saker. Hittade en screencast som demonstrerade en liknande lösning. (http://blip.tv/file/256997). Lyckades inte helt men en bit på vägen.
Sen fortsatte jag med att testa SFW Tools och även där kom jag en bit på vägen - modulerna är installerade och rapporterar att allt är ok. Men.. jag lyckas inte få SWF Tools att ta över ansvaret för mp3, jpg och flash-film. (Jag har använt Görans - Jeroen - mediaspelare och image rotator länge i flera php/html-sajter, så det är kul att se en modul som gör grovjobbet. Fattar bara inte varför det inte funkar när installationen är felfri..)