Show the recently commented pages

This commit is contained in:
Flavio Copes 2015-10-18 11:12:28 +02:00
parent 85bb5c2ef4
commit ba09e9a865
2 changed files with 42 additions and 24 deletions

View File

@ -105,32 +105,28 @@
<p class="center">Showing <span class="totalRetrieved">{{grav.twig.comments.totalRetrieved}}</span> comments of <span class="totalAvailable">{{grav.twig.comments.totalAvailable}}</span></p>
</div>
<h1>Recently commented pages</h1>
{% if grav.twig.pages %}
<h1>Recently commented pages</h1>
<div class="admin-block">
<table>
<tbody class="js__pages-container">
<tr class="h">
<th class="page">Page</th>
<th class="number-of-comments">Number of comments</th>
<th class="last-comment-date">Last commented on</th>
</tr>
{% for page in grav.twig.pages %}
<tr>
<td class="page">{{page.title}}</td>
<td class="number-of-comments">{{page.commentsCount}}</td>
<td class="last-comment-date"><strong>Page</strong>: {{page.lastCommentDate}}</td>
<div class="admin-block">
<table>
<tbody class="js__pages-container">
<tr class="h">
<th class="page">Page</th>
<th class="number-of-comments">Number of comments</th>
<th class="last-comment-date">Last commented on</th>
</tr>
{% endfor %}
</tbody>
</table>
{% if grav.twig.comments.totalRetrieved < grav.twig.comments.totalAvailable %}
<button type="button" class="button center js__load-more">
Load more
</button>
{% endif %}
</div>
{% for page in grav.twig.pages %}
<tr>
<td class="page">{{page.title}}</td>
<td class="number-of-comments">{{page.commentsCount}}</td>
<td class="last-comment-date">{{page.lastCommentDate}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
{% endblock %}

View File

@ -129,6 +129,7 @@ class CommentsPlugin extends Plugin
}
$this->grav['twig']->comments = $comments;
$this->grav['twig']->pages = $this->fetchPages();
}
}
@ -295,6 +296,27 @@ class CommentsPlugin extends Plugin
return $this->getDataFromFilename($filename)['comments'];
}
/**
* Return the latest commented pages
*/
private function fetchPages() {
$files = [];
$files = $this->getFilesOrderedByModifiedDate();
$pages = [];
foreach($files as $file) {
$pages[] = [
'title' => $file->data['title'],
'commentsCount' => count($file->data['comments']),
'lastCommentDate' => gmdate('D, d M Y H:i:s', $file->modifiedDate)
];
}
return $pages;
}
/**
* Given a data file route, return the YAML content already parsed
*/