Donnerstag, 26. Januar 2006
Story-Titel zum Kommentar anzeigen
In der Liste der letzten Kommentare kann ich über verschiedene <% story...%>-Makros den Text, Autor, Zeitpunkt etc. des Kommentars selbst anzeigen. Ich würde dem Leser darüber hinaus gerne einen Anhaltspunkt geben, auf welchen Blogeintrag sich der jeweilige Kommentar bezieht (die reine Kommentar-URL mit ihrer darin enthaltenen Story-Nummer ist ja nicht sprechend).

Gibt es eine Möglichkeit, per Makro auf den Titel eines Blogeintrags zu kommen, zu der ein Kommentar gehört?

Vielen Dank im Voraus.

Läßt sich das vielleicht über <% story.id %> regeln?
kid37, 26. Jan 2006, 20:23  | link
 
Danke für den Hinweis, Hr. Kid. Leider ergibt das Macro wieder nur die id des Kommentars selbst. Nach Durchwühlen der Dokumentation kann ich jetzt mit relativer Sicherheit sagen, dass es kein Macro gibt, dass einem zu einem Kommentar die dazugehörige Story bzw. deren Eigenschaften liefert, somit brächte auch das Ausweichen auf selbstdefinierte Skins nichts. (Kann natürlich sein, es gibt noch versteckte Hacks, mit denen man beliebige Objektreferenzen durchreichen kann. Aber die wird mir hier sicher keiner verraten :-).

Nun gut, geht halt nicht. Auch kein Beinbruch.
blue sky, 27. Jan 2006, 00:18  | link
 
Ich hab grad mal bissel rumgespielt und einen schnellen Hack gefunden, der zumindest im Firefox/Win funktioniert. Fügen Sie in die folgenden Skins jeweils am Anfang ein:

Skin 'Full story view'

<a name="<% story.content part='title' %>" id="ueberschrift">

Skin 'Toplevel comment'
Skin 'Reply'

<script type="text/javascript">
<!--
document.writeln(document.getElementById('ueberschrift').name);
// -->
</script>


Das wars schon. Nur hübsch formatieren müssen Sie es noch selber. Aber: Keine Ahnung, ob es irgendwelche Längenbeschränkungen für das Attribut "name" gibt, also ob es bei langen Überschriften auch noch funktioniert. Ach, und man sollte noch probieren, was bei leeren Überschriften passiert. Aber das Prinzip sollte klar sein.
ichichich, 27. Jan 2006, 01:37  | link
 
Ach Quatsch, vergessen Sie es. Ich hatte Ihre Frage so verstanden, dass Sie vor jedem Kommentar nochmal den Titel der Story haben wollen. Sie meinen aber die Recently-Modified-Liste.

Thema verfehlt. Nochmal neu nachdenken.
ichichich, 27. Jan 2006, 01:38  | link
 
Jetzt aber!
Eine Lösung könnte so aussehen:

Es ist ja nicht so bekannt, dass man bei Antville-Formularen für Stories und Kommentare keinesfalls nur auf die vorgegebenen Eingabefelder angewiesen ist - man kann auch einfach neue hinzufügen. Das hab ich hier mal für das Kommentarformular getan: Da gibt es jetzt ein zusätzliches, verstecktes Feld namens "zustory", das beim Absenden des Formulars per Javascript mit dem Titel der zugehörigen Story befüllt wird. Dafür den Inhalt der Skin 'Comment editor' komplett ersetzen durch folgenden Code:

<script type="text/javascript">
<!--
function insert() {
titel = "<% response.title %>".replace(/<% site.title %> - /,"");
document.getElementsByName("content_zustory")[0].value = titel;
}
// -->
</script>

<br /><a name="form"></a>
<form method="post" action="<% response.action %>" onsubmit="insert();">

<% comment.content part="zustory" as="editor" style="visibility:hidden;" %>

<p><span class="small">Title:<br /></span>
<% comment.content part="title" as="editor" size="25" class="formTitle" %></p>

<p><span class="small">Text:</span><br />
<% comment.content part="text" as="editor" cols="31" rows="10" class="formText" %></p>

<p><% input type="submit" name="save" value="Save" %>&nbsp;<% input type="submit" name="cancel" value="Cancel" %></p>
</form>



Jetzt nur noch in der Skin 'recently modified item' das entsprechende Feld hinzufügen und fertig:

<% story.content part="zustory" %>
ichichich, 27. Jan 2006, 03:25  | link
 
Nachtrag:
Hier bei blogger.de ist der Response-Titel anders aufgebaut als drüben bei antville.org. In der JS-Funktion muss daher stehen:

titel = "<% response.title %>".replace(/<% site.title %>: /,"");

Genereller Nachteil: Ditt janze ist ein statischer Datenbankeintrag. Das merken Sie dann, wenn Sie den Storytitel ändern, nachdem jemand einen Kommentar geschrieben hat...
ichichich, 27. Jan 2006, 11:45  | link
 
Großartig!
Die Kombination von storypart und Javascript zum Rausschneiden der Überschrift aus dem Seitentitel ist genial.

Hab's jetzt in meine Kommentar-History eingebaut, vorerst als "mouseover". Funktioniert wie ne 1, danke!
blue sky, 27. Jan 2006, 11:45  | link
 
zum Nachtrag: Das hat schon gepasst, wahrscheinlich weil ich bereits das Basislayout von layout.antville gezogen hatte. Und dass "zustory" nur ein Snapshot des aktuellen Titels sein kann, ist glaube ich kein Beinbruch. Bislang habe ich noch keine Titel im Nachhinein ändern müssen, und selbst wenn: Die History ist ja nicht so langlebig.
blue sky, 27. Jan 2006, 11:48  | link
 
Jetzt fehlt nur noch eine Möglichkeit, die Einträge nach Story zu gruppieren...
ichichich, 27. Jan 2006, 14:47  | link