Att anpassa kommentering för Google Blogger I

12/15/2008

Nu blev det av att få igång kommenteringsfunktionen på Pryltrend.com. Det krävdes en del ändringar av aktuell template för att det skulle ta ett första steg till att bli en acceptabel lösning. Hur sådant här fungerar kan naturligtvis variera från template till template men de template jag tittade på som man går att nå direkt från Blogger hade alla likartade problem.

Nu delar jag upp den här bloggpostningen i vad som förhoppningsvis blir två delar. I den här första gör vi enkla ändringar. I den andra hoppas jag berätta hur man anpassar utseendet på den nya funktionen för inline-kommentarer. Det anses inte gå att göra och jag har inte lyckats än. Men jag fick precis för mig att det nog kan gå även om risken finns att jag tar fel eftersom jag egentligen inte kan någon "modern" html alls.

Engelska istället för svenska
Åtminstone om man utgår från kommentarer som ska vara inline översätts inte alla uttryck till svenska trots att man valt det som språk. Resultatet blir att Blogger skriver Comments i samband med information om antal kommentarer på startsida (och indexsidor). Det berör också själva inlägget via annan kod. Dessutom blev det åtminstone i den template jag utgick från felaktig grammatik även på engelska avseende när exakt en kommentar fanns.

För startsida (eller vilken index-sida som helst) är det följande kod (eller motsvarande) som ställer till det:

<a name='comments'/>
<b:if cond='data:post.allowComments'>
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/:>
<b:else/>
<data:post.numComments/> <data:commentLabelPlural/:>
</b:if>
</h4>

Varken commentLabel och commentLabelPlural översätts till svenska (åtminstone med inline kommentarer). commentLabelPlural verkar förövrigt vara odokumenterad. Vi ser ovan också att information om antal kommentarer av någon anledning sätts som rubrik. Det är helt orimligt eftersom de inte har något med det faktiska innehållet att göra utan är meta-information som dessutom i de flesta fall inte ens referar till något som är på aktuell sida. Jag skrev därför om detta till:

<a name='comments'/>
<b:if cond='data:post.allowComments'>
<b:if cond='data:post.numComments == 0'>Ingen kommentar</b:if>
<b:if cond='data:post.numComments == 1'>1 kommentar</b:if>
<b:if cond='data:post.numComments > 1'><data:post.numComments/>
kommentarer</b:if> </a>

Problemenet med commentLabel och commentLabelPlural löste jag helt enkelt genom att skriva text på svenska direkt i template. Dessutom valde jag att hantera tre fall för att språket skulle kännas rimligt.

För koden för själva blogginläggen finns motsvarande problem. Det löste jag helt enkelt genom att ta bort den koden. När (om någonsin) att det blir så många kommentarer att det känns viktigt att skriva ut antalet på samma sida som för bloggpostningen kan jag lägga till det då. Tills dess är det bara onödigt:

  • Onödig information för besökaren att tvingas se.
  • Försämrar laddningstid något lite.
  • Gör koden lite mindre överskådlig.

Fler problem fanns emellertid och vi ser nedan att en länk skapas till det datum respektive kommentar skett på. Den länken går till en lista över de kommentarer som gjorts just för den bloggpostningen samma dag. Det känns väldigt onödigt. Lite experimenterade visade också att det ger samma problem som jag beskrev tidigare av och till p.g.a. search: För Blogger.com: Optimera laddningstiden (unikt tips) för din blogg. Dessutom skriver koden ut en liten ikon som jag varken tror uppmuntrar till kommentering eller ger andra läsare något av värde. Vi ser i skärmdumpen hur det såg ut:

Här ser vi hur länken skapas vilken dessutom har en link-title på engelska:

<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='data:comment.url' title='comment permalink'>
<data:comment.timestamp/>
</a>
<b:include data='comment' name='commentDeleteIcon'/>
</span>
</dd>

Det förenklade jag till följande vilket också löste problemet med att Blogger hängde sig enstaka gånger (inga search-länkar):

<dd class='comment-footer'>
<span class='comment-timestamp'>
<font class='date-header'><data:comment.timestamp/></font>
</span>
</dd>

Jag kortade ner koden även i övrigt kring en del andra saker men utan att funktion påverkades.

Om de här lösningen är de mest effektiva vet jag egentligen inte eftersom jag egentligen aldrig hållit på med sådant här efter html 1.0 och Livescript. Hur som helst ser det tillsvidare ut så här på postsidorna:

Det är just inline-kommenteringen ovan jag vill anpassa lite bl.a. avseende bakgrundsfärgen den gör i iframe efter kommentar samt även knapparna.

8 kommentarer
SSSpatient.tk sa...

..jag fattade nada. help?

2009-02-04 13:12
Anonym sa...

Vet du vad,

Ta och skriv i kommentaren ungefär vad du vill göra med din Blogger.com blogg så ska jag försöka förklara hur du gör.

2009-02-04 13:15
SSSpatient.tk sa...

Jag skulle vilja att man kan se folks "kommentarer" direkt under ett inlägg, så folk slipper trycka på "kommentarer" för att läsa dom....

är det ens möjligt?

2009-02-04 13:25
Anonym sa...

Ja det är det men inte på något sätt som ens är i närheten av enkelt. Tvärtom tror jag att det är riktigt bökigt, svårt och krångligt. Så det är lite mer än jag kan hjälpa dig med.

Annars är ju en bra start att börja med att få kommentarer och kommentering under blogginläggen. Bra start på Blogger.

2009-02-04 13:30
SSSpatient.tk sa...

ja, det var ju typ det jag menade, tror jag, så dom slipper klicka för att läsa kommentarerna?

2009-02-04 13:33
Anonym sa...

Excellent,

Då tar jag och gör en uppföljande bloggpostning där jag bättre beskriver hur man gör. Det är väldigt enkelt (#^_^#)

Jag trodde du menade att du ville ha kommentarerna synliga i pagination. D.v.s. att de syns t.ex. på din förstasida tillsammans med alla blogginlägg.

Du vill ha som jag har här. Den här bloggen är byggd på Blogger.

2009-02-04 13:37
SSSpatient.tk sa...

jupp

2009-02-04 13:38
Anonym sa...

Fixar en enkel steg-för-steg-beskrivning för det under dagen. Det är verkligen inte svårt.

Lycka till med dina bloggar också!

2009-02-04 13:42

Kommentera