Bra bloggar med tydlig struktur

Events happening in the community are now at Drupal community events on www.drupal.org.
hansroberto's picture

Eftersom det alltid funkar att fråga i den här gruppen (- man får ju svar och förslag tokfort!!) så passar jag på att fråga igen ;-)

Om man vill ha bloggar på sin sida (bloggar verkar ju vara extremt populära, även om jag själv är mer av en tvåvägskommunikator...), så finns ju blog i drupal som default. Men det blir inte så snyggt och tydligt!

Så här ser jag en blogg framför mig:
- en lista med alla bloggar
- väl inne i bloggen så finns det möjlighet att navigera via kategorier som bloggaren själv bestämmer över.
- sortera inläggen efter datum eller kategorier
- Möjlighet att skapa snygga bilder, kanske till och med en bild som anger tonen i bloggen
- man ser hela tiden att man är inne i just den bloggarens sida.
- kan lätt byta till andra bloggar

Inget avancerat alltså, men: Hur gör man??

Att använda "fria" kategorier gör väl en del av jobbet, men hur styr man att de bara visar bloggarens inlägg i kategorierna.

Jag är definitivt INTE en views-expert, men jag kanske måste bli det för att få bättre struktur på sajterna...

MVH
/Hans

Comments

Views rätt sätt

TBarregren's picture

Blog modulen hör (liksom Image modulen) till Drupals fornhistoria. Idag bygger man denna typ av lösning med Views. Se t.ex.


Thomas BarregrenWebbredaktören

OG

zoo33's picture

Jag har faktiskt använt Organic Groups för detta ändamål vid ett tillfälle. Kravet var nämligen att flera användare skulle kunna skriva i en och samma blogg. Föra att det skulle se rätt ut gjorde jag en egen "översättning" av OG där alla "group" blev "blogg". Men man kan göra samma sak med lite CSS/Views-magi. Särskilt om det handlar om en användare per blogg så är OG-spåret bara onödigt krångligt.

/ Hannes Lilljequist – SthlmConnection

Modulen Blogger

hansroberto's picture

Ja, det verkar vara dags att lära sig cck och views... Har någon provat modulen Blogger? Av beskrivningen så verkar den ha ganska mycket av det jag behöver. Även om det inte är "State of the art" så är jag tacksam för att det finns moduler som skapar funktionalitet åt mig ;-)

EDIT: Har provat den och den är faktiskt ganska "snajdig"!! Enkel och smidig.

/Hans

Du behöver inte CCK

roxpace's picture

Förstår inte varför du ska överge blog modulen, ja visst är den dålig, men inte så dålig, den är perfekt att utöka ifrån.

Du kan designmässigt göra det mesta från temahanteringen (themes), du kan ha specifika teman för blog innehållstyper.

Dessutom visst kan man använda Views till att lista vissa saker osv, men jag skulle inte överutnyttja det för mycket, att alltid ligga så nära grunden som möjligt ger dig dessutom bättre framtida uppgraderingsmöjligheter. Det är dagens underbara scenario bra praktiskt exempel på, alla med Drupal 5.x och CCK/Views som såg fram emot Drupal 6.x. Drupal 6.x lanserades, men vart var CCK och Views ? Fortfarande efter lång tid efter lanserandet finns inga CCK eller Views utom testversion som inte fungerar med allt och saknar funktioner. De som använde standard blog lär inte haft problem med att gå över till Drupal 6.x.

Standard bra men oflexibelt

hansroberto's picture

Jag håller med om att man ska försöka hålla sig till grunden så mycket som möjligt, men det blir samtidigt tråkigt.

Fast det där med themes lät ju extremt intressant. Jag har för mig att jag såg en sida på drupal.org som tog upp att man kunde ha olika xxx.tpl.php beroende på typ av node, t.ex. blog.tpl.php, men jag kan inte hitta den igen... Är det så du menar? Kan man även styra blocken som syns via themes?

Jag skulle vilja ha ett block som visar information om författaren direkt när man är på en användares blogg, inte bara när man läser inläggen. För det endamålet finns ju blocket "Författarinformation".

Jag har kollat på den funktionen i modulen profile och försökt ändra den lite:

if ((arg(0) == 'node') && is_numeric(arg(1)) && (arg(2) == NULL)) {
        $node = node_load(arg(1));
        $account = user_load(array('uid' => $node->uid));

till:

if ((arg(0) == 'blog') && is_numeric(arg(1)) && (arg(2) == NULL)) {
        $node = node_load(arg(1));
        $account = user_load(array('uid' => $node->uid));

Genom att ändra argumentet till 'blog' så får jag önskad effekt, men den visar inte rätt användare, bara min (nr 1) eller gäst (nr 0)... VARFÖR? Förutsättningarna är ju exakt de samma...

Tacksam för alla tips!

/Hans
PS: CCK + views + DHTML menu + Taxonomy menu rockar!!!

Anpassade node themes

roxpace's picture

Sant, det är svårhittad fakta om detta men den finns :)

Gå till http://drupal.org/node/46012 och där kan du läsa "use in your custom node.tpl.php or node-type.tpl.php layout files" och dessutom listar en bra att ha lista över variablar.

Sedan finns denna också, http://drupal.org/node/17565

För att sammanfatta just det bör man ange node-book.tpl.php och det borde fungera även med block-book.tpl.php men har inte testat det, men du kan även redigera block.tpl.php och ange villkor för vissa nodtyper inte ska visa vissa block och vise versa. Från $hook borde du kunna få ut om sidan är en book eller liknande och då styra detta med if eller switch.

En annan variant är också att ha olika teman beroende på sökväg (URL), som exempel, om du vill besöka sidan www.varldsklass.org/node/1/edit, om du kör med PHPTemplate kommer denna sökmotor att lita efter mallar i denna sökordning:

page-node-edit.tpl.php
page-node-1.tpl.php
page-node.tpl.php
page.tpl.php

Detta på ett sätt beskriver bara utförligare det jag nämnde tidigare :)

Jag personligen skulle aldrig direkt redigera Profile modulen, detta är en core modul och de rekommenderas starkt att man inte rör dessa i onödan.

Jag skulle istället som jag beskrev tidigare redigera block.tpl.php och ange villkor att visa på book sidor denna författarinformation, direkt styrt från mallen.

/Roberth Andersson

Administrator/Developer @ Jump-Gate and Webworqs, Inc
Personal page: http://www.roberth.se and Jump-Gate Projects site: http://www.jump-gate.com

Så lång tid är det inte ännu

AdrianB's picture

Det är dagens underbara scenario bra praktiskt exempel på, alla med Drupal 5.x och CCK/Views som såg fram emot Drupal 6.x. Drupal 6.x lanserades, men vart var CCK och Views ? Fortfarande efter lång tid efter lanserandet finns inga CCK eller Views utom testversion som inte fungerar med allt och saknar funktioner. De som använde standard blog lär inte haft problem med att gå över till Drupal 6.x.

Bara för att modulerna inte är klara så betyder det inte att dom är sämre alternativ. Detta är ju en del av open source-världen, vill man skynda på en sådan process kan man hugga in själv och hjälpa till eller sponsra andra som gör det. "Det är dagens underbara scenario" låter lite väl syrligt, det är många som jobbar häcken av sig för att få till det, men allt går inte att tajma perfekt. Det är lätt att klaga utan att hjälpa till.

Många som sitter på Drupal 5 idag behöver ändå vänta in andra moduler så de flesta med existerande sajter brukar sällan ha speciellt bråttom över till en ny Drupal-version. Däremot är det lite mer olyckligt för de som ska starta en helt ny sajt och inte kan använda dessa viktiga verktyg.

Väl talat. Dessutom handlar

henrrrik's picture

Väl talat. Dessutom handlar det ju inte om en enkel portning av Views till 6:an utan en helt ny version vilket gör att det har tagit längre tid. CCK i sin tur väntar på att Views ska bli klar.

Vilket styrker det jag sa

roxpace's picture

Vilket styrker det jag sa ännu mer, att skylla på att en mjukvara är opensource och det är frivilligarbete bakom och samtidigt pusha för att denna produkt ska användas kommersiellt går tyvärr inte ihop, om upphovsmakarna vill att Drupal som exempel i framtiden ska bli mer framgångsrikt och mindre rörigt måste man se till oavsett frivilliga eller ej att vissa projekt synkas vid lanseringar som är väldigt avhängiga av varandra som Drupal 6.x + CCK + Views, det är väldigt många som är besvikna på senaste lanseringen som inte lyckades få med sig speciellt Views 2 som drar med sig CCK i fallet med sin fördröjning och därmed Drupal 6.x.

Men nu ska vi inte diskutera detta i denna tråd, vi alla har åsikter, opensource eller inte och beroenden hit eller dit, men glöm inte att Drupal används av väldigt många företag och myndigheter, det borde inte ens vara svårt att förmå IBM att bidra med viss kommersiell hjälv av betalt arbetskraft då de tidigt har använt sig av Drupal.

En sista kommentar

AdrianB's picture

Vilket styrker det jag sa ännu mer, att skylla på att en mjukvara är opensource och det är frivilligarbete bakom och samtidigt pusha för att denna produkt ska användas kommersiellt går tyvärr inte ihop...

Jag "skyllde" aldrig på att det var open source som enda orsaken och jag tycker fortfarande att det går utmärkt ihop med kommersiell användning. Har du aldrig varit med om att en kommersiell produkt varit försenad? Det är sådant som händer även andra produkter, faktum är att det kan vara en fördel med open source i sammanghanget då du har all källkod och kan själv påverka processen om du vill, något du knappast kan i en kommersiell produkt.

Om man ska "skylla" på någonting så tror jag det handlar mer om beslutet att göra om Views helt och hållet just i samband med D6, vilket på kort sikt orsaker en försening av Drupal 6-användandet men antagligen kommer att visa sig bra på lite längre sikt. Jag tror inte för ett ögonblick att Drupal som projekt stå och faller med att D6 inte kunnat användas fullt ut ännu. D5 är fortfarande fullt användbart.

...men glöm inte att Drupal används av väldigt många företag och myndigheter, det borde inte ens vara svårt att förmå IBM att bidra med viss kommersiell hjälv av betalt arbetskraft då de tidigt har använt sig av Drupal.

Näe, jag har inte glömt det, men dessa företag och myndigheter ligger antagligen inte i frontlinjen för att uppdatera sina installationer ändå. Jag vet inte om IBM bidragit till D6, men dom bidrog med uppskattade artiklar om Drupal tidigare.

Men du har rätt i att det är fel tråd för detta ämne, så i och med detta kommer jag inte att säga något mer här om det.

Alla som har intresse och

henrrrik's picture

Alla som har intresse och nytta av koden kan bidra med patchar, testning, dokumentation och annan hjälp, det är bara att kavla upp ärmarna och hjälpa till:

http://drupal.org/project/issues/views

Detta borde funka: if

solipsist's picture

Detta borde funka:

if ((arg(0) == 'blog') && is_numeric(arg(1)) && (arg(2) == NULL)) {
  $account = user_load(array('uid' => arg(1)));
}

Jakob Persson
Webbredaktören - www.webbredaktoren.se

Jamenvisst!!

hansroberto's picture

Kanon! Månge tack! Det funkar.

MEN det stör mig att jag inte fattar varför... Vad har $node med uid att göra på den ursprungliga koden?? Och vad gör arg() över huvud taget?

Ja, jag vet... mina phpkunskaper är mycket basala, men jag försöker lära mig mer...

Hur som helst: tack för hjälpen!

/Hans

Du kan slå upp funktioner

solipsist's picture

Du kan slå upp funktioner som node_load och arg på api.drupal.org

arg() returnerar elementen i URLn, om du tex är på sidan www.example.com/?q=node/123 (eller www.example.com/node/123 med Clean URLs) kommer arg(0) att returnera "node" och arg(1) att returnera 123.

user_load() laddar in en användare från databasen givet användarens UID, användarnamn eller något annat fält, funktionen returnerar ett objekt.

Förklaring av koden:

// om URL innhåller "blog" följt av ett nummer och saknar ett tredje element, ex: blog/123 (användare med UID 123s blogg)
if ((arg(0) == 'blog') && is_numeric(arg(1)) && (arg(2) == NULL)) {
  // ladda in användarens information i variabeln $account givet arg(1) som UID (user ID), i detta fall 123
  $account = user_load(array('uid' => arg(1)));
}

Jakob Persson
Webbredaktören - www.webbredaktoren.se

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week