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
Blog modulen hör (liksom Image modulen) till Drupals fornhistoria. Idag bygger man denna typ av lösning med Views. Se t.ex.
Thomas Barregren – Webbredaktören
OG
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
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
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
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
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
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
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
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
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.
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
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
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
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Jamenvisst!!
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
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
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog