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,6 +105,7 @@
<p class="center">Showing <span class="totalRetrieved">{{grav.twig.comments.totalRetrieved}}</span> comments of <span class="totalAvailable">{{grav.twig.comments.totalAvailable}}</span></p> <p class="center">Showing <span class="totalRetrieved">{{grav.twig.comments.totalRetrieved}}</span> comments of <span class="totalAvailable">{{grav.twig.comments.totalAvailable}}</span></p>
</div> </div>
{% if grav.twig.pages %}
<h1>Recently commented pages</h1> <h1>Recently commented pages</h1>
<div class="admin-block"> <div class="admin-block">
@ -119,18 +120,13 @@
<tr> <tr>
<td class="page">{{page.title}}</td> <td class="page">{{page.title}}</td>
<td class="number-of-comments">{{page.commentsCount}}</td> <td class="number-of-comments">{{page.commentsCount}}</td>
<td class="last-comment-date"><strong>Page</strong>: {{page.lastCommentDate}}</td> <td class="last-comment-date">{{page.lastCommentDate}}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% if grav.twig.comments.totalRetrieved < grav.twig.comments.totalAvailable %}
<button type="button" class="button center js__load-more">
Load more
</button>
{% endif %}
</div> </div>
{% endif %}
{% endblock %} {% endblock %}

View File

@ -129,6 +129,7 @@ class CommentsPlugin extends Plugin
} }
$this->grav['twig']->comments = $comments; $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 $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 * Given a data file route, return the YAML content already parsed
*/ */