In post #2 I explained how to get a user's posts. Today it's about the comments on a post.
Comments on the last post
If you have read the last two posts, you will already know that
in line 9 there is a field to enter the username and a button to display the output.
The output is in the div in line 11.
In lines 17-32, the last post of the user is retrieved first.
In line 19 it is checked if there is a result at all, it could be that the user has not posted at all yet.
If there is a post, hive.api.getContentReplies is used to retrieve the comments for the post. The function first expects the username and then the permailink of the post as parameters.
In lines 23-26, the return is passed through and the names of the commenters are output. In the console (F12 in Chrome or Firefox) you can display all the data.
I don't show the comments here for now, this will come later, then the reason will be explained by me.
Here you can see and test it directly:
https://jsfiddle.net/hive_coding/2zhqewu6/
Last post with comments
The second example I changed a little bit, I now retrieve the last 10 posts. Via I check if the post also has comments. Via "children" I can find out if and how many comments there are. "Cchildren" gives the number, of all comments, also the comments on comments, so this is not the number of comments, replyed directly to the post..
getContentReplies however only returns the direct comments, if you want to have the replies to the comments as well, you have to retrieve them separately by passing the commenter and the permalink of the comment.
You can find the example here:
https://jsfiddle.net/hive_coding/s6rtv9wy/1/
That was a bit more complicated, at least for newbies. I still hope it was understandable. I still kept it simple, what if there are no comments to the 10 posts, but the user has published more? Then the next 10 posts would have to be retrieved. You could of course enter 100, but you certainly understand what I'm about.
But for now it is enough I think, I will make it later more complicated.
In Beitrag #2 habe ich erklärt, wie man die Beiträge eines Nutzers erhält. Heute geht es um die Kommentare zu einem Beitrag.
Kommentare zum letzten Beitrag
Wer die letzten beiden Postings gelesen hat, wird schon wissen, dass
in Zeile 9 ein Feld zur Eingabe des Usernamen und ein Button zum Anzeigen der Ausgabe eingebunden ist.
Die Ausgabe erfolgt in dem Div in Zeile 11.
In Zeile 17-32 wird zunächst der letzte Beitrag des Users abgerufen.
In Zeile 19 wird geprüft, ob es überhaupt ein Ergebnis gibt, kann ja sein, dass der Nutzer noch gar nicht gepostet hat.
Wenn es einen Beitrag gibt, werden über hive.api.getContentReplies die Kommentare zu dem Beitrag abgerufen. Die Funktion erwartet zunächst den Usernamen und dann den Permailink des Beitrages als Parameter.
In Zeile 23-26 wird die Rückgabe durchlaufen und die Namen der Kommentatoren ausgegeben. In der Konsole (F12 in Chrome oder Firefox) könnt ihr euch die ganzen Daten anzeigen lassen.
Ich gebe hier die Kommentare erst mal nicht aus, das kommt später nochmal, dann wird auch der Grund von mir erklärt.
Hier könnt ihr das euch direkt angucken und testen:
https://jsfiddle.net/hive_coding/2zhqewu6/
Letzter Beitrag mit Kommentaren
Das zweite Beispiel habe ich nun etwas abgeändert, ich rufe nun die letzten 10 Beiträge ab. Über prüfe ich, ob der Beitrag auch Kommentare hat. Über "children" kann man somit in Erfahrung bringen, ob und wie viele Kommentare es gibt. Dabei gibt children die Anzahl, mit allen Kommentaren auch zu Kommentaren an, also nicht die Anzahl der Kommentare, die direkt auf den Post erfolgt sind.
getContentReplies gibt jedoch nur die direkten Kommentare ab, möchte man auch die Antworten auf die Kommentare haben, so muss man diese extra abrufen, in dem man den Kommentator und den Permalink des Kommentars übergibt.
Das Beispiel findet ihr hier:
https://jsfiddle.net/hive_coding/s6rtv9wy/1/
Das war jetzt mal etwas komplizierter, zumindest für Neulinge. Hoffe dennoch, dass es verständlich war. Ich habe es noch einfach gehalten, was, wenn es zu den 10 Beiträgen keine Kommentare gibt, aber der User mehr veröffentlicht hat? Dann müssten ja die nächsten 10 Beiträge abgerufen werden. Man könnte natürlich auch 100 eingeben, aber ihr versteht sicherlich, worum es mir geht.
Aber fürs Erste reicht es denke ich, komplizierter werde ich es erst später machen.