Guten Morgen,
bei meinem ersten Podcastprojekt landnerdschaft (www.landnerdschaft.com) nutze ich auf Anraten des Entwicklers firtz und bin auch sehr froh drum. Davor zog ich mich wie Gummi, podlove installieren zu müssen, nicht wegen podlove sondern wegen Wordpress… Wordpress installieren und aktuell zu halten ist etwas, wofür mich meine Kunden bezahl(t)en und ich sah die Entlohnung stets als Schmerzensgeld an.
Nicht viel anders geht es mir bei der Programmierung in PHP; Kann ich zwar und war früher Teil meines Broterwerbs, bin aber froh, heute andere Plattformen zu nutzen. Nichtsdestotrotz fummelte ich ein wenig in der firtz index.php rum, um eine episodenbasierte Kommentarfunktion für meinen Podcast zu ermöglichen.
Da ich bereits länger (durch dieses Forum kennengelernt) mehrere Discourse Installationen betreibe, wollte ich die “embedding” Möglichkeiten der Discourse Plattform verwenden, die sich auch an anderen Stellen bereits bewährten. (https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963)
Hier eine Auflistung, was ich tat, Screenshots des Ergebnisses sowie Wünsche für die Zukumpft™.
index.php:
39: $main->set('itemattr', array('title', 'description', 'link', 'guid', 'article', 'payment', 'chapters', 'enclosure', 'duration', 'keywords', 'image', 'date', 'noaudio', 'location', 'comments'));
das Attribut “comments” hinzugefügt.
templates/default/site.html:
(nach <!--//episode downloads-->
)
<!--Komentare-->
<check if="{{(trim(@item.comments)!='')}}">
<check if="{{count(@items)==1}}">
{{@item.comments | raw}}
</check>
<check if="{{count(@items)>1}}">
<h3>Kommentare / Diskussion:</h3>
<a href="<check if="{{@singlepage==false}}">{{@BASEURL}}{{@feedattr.slug}}/show/{{@item.slug}}</check>" title="{{@item.slug}}" name="{{@item.slug}}">Zum Kommentieren die Episode aufrufen: "{{@item.title}}"</a>
</check>
</check>
<!--//Kommentare-->
004.epi
(die jeweiligen Episoden Files)
comments:
<h3>Kommentare / Diskussion:</h3>
<div id='discourse-comments'></div>
<script type="text/javascript">
DiscourseEmbed = { discourseUrl: 'https://f.z6c.de/',
topicId: 547 };
(function() {
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
</script>
Auf den Übersichtsseiten wird jeweils nur der Link zur Episode unter Kommentare geposted, da das JavaScript von Discourse regulär nach einem div
mit der id discourse-comments
sucht und dieses durch die Kommentare ersetzt. Hätte ich in der Übersicht mehrere solcher divs, würde nur das erste durch die Kommentare aller aufgelisteten Episoden ersetzt. Um dies zu ändern müsste ich die Discourse Installation anpacken und mich nach jedem Update erneut drum kümmern. Sollte jemand einen eleganteren Weg finden ohne die Discourse Installation anzufassen, freue ich mich sehr über Feedback.
Befindet man sich auf einer Einzelseite zu einer Episode, wird der Thread aus dem Discourse Forum eingebunden.
Derzeit vergebe ich die IDs für die Forenthreads noch manuell, indem ich in meinem Forum einen neuen thread pro Folge anlege und dessen ID dann dem embedd Code mitgebe. Discourse bietet wohl auch an, die Threads automatisiert zu generieren, derzeit ist es für mich aber nicht mehr Arbeit, einmal pro Woche nen Thread anzulegen und die Nummer zu übernehmen, als mich in die Sache einzulesen. Durchklicken und testen muss ich es eh, wenn es angelegt ist, dann kann ich vorab auch die drei Klicks selbst durchführen.
Vielleicht wird der Eine oder Andere mit diesem Workaround etwas anfangen können, sollte es in firtz Einzug finden freue ich mich natürlich auch.