Mercurial > hg > isophonics-drupal-site
diff core/modules/comment/src/CommentStorageInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/comment/src/CommentStorageInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,113 @@ +<?php + +namespace Drupal\comment; + +use Drupal\Core\Entity\EntityInterface; +use Drupal\Core\Entity\ContentEntityStorageInterface; +use Drupal\Core\Entity\FieldableEntityInterface; + +/** + * Defines an interface for comment entity storage classes. + */ +interface CommentStorageInterface extends ContentEntityStorageInterface { + + /** + * Gets the maximum encoded thread value for the top level comments. + * + * @param \Drupal\comment\CommentInterface $comment + * A comment entity. + * + * @return string + * The maximum encoded thread value among the top level comments of the + * node $comment belongs to. + */ + public function getMaxThread(CommentInterface $comment); + + /** + * Gets the maximum encoded thread value for the children of this comment. + * + * @param \Drupal\comment\CommentInterface $comment + * A comment entity. + * + * @return string + * The maximum encoded thread value among all replies of $comment. + */ + public function getMaxThreadPerThread(CommentInterface $comment); + + /** + * Calculates the page number for the first new comment. + * + * @param int $total_comments + * The total number of comments that the entity has. + * @param int $new_comments + * The number of new comments that the entity has. + * @param \Drupal\Core\Entity\FieldableEntityInterface $entity + * The entity to which the comments belong. + * @param string $field_name + * The field name on the entity to which comments are attached. + * + * @return array|null + * The page number where first new comment appears. (First page returns 0.) + */ + public function getNewCommentPageNumber($total_comments, $new_comments, FieldableEntityInterface $entity, $field_name); + + /** + * Gets the display ordinal or page number for a comment. + * + * @param \Drupal\comment\CommentInterface $comment + * The comment to use as a reference point. + * @param int $comment_mode + * The comment display mode: CommentManagerInterface::COMMENT_MODE_FLAT or + * CommentManagerInterface::COMMENT_MODE_THREADED. + * @param int $divisor + * Defaults to 1, which returns the display ordinal for a comment. If the + * number of comments per page is provided, the returned value will be the + * page number. (The return value will be divided by $divisor.) + * + * @return int + * The display ordinal or page number for the comment. It is 0-based, so + * will represent the number of items before the given comment/page. + */ + public function getDisplayOrdinal(CommentInterface $comment, $comment_mode, $divisor = 1); + + /** + * Gets the comment ids of the passed comment entities' children. + * + * @param \Drupal\comment\CommentInterface[] $comments + * An array of comment entities keyed by their ids. + * @return array + * The entity ids of the passed comment entities' children as an array. + */ + public function getChildCids(array $comments); + + /** + * Retrieves comments for a thread, sorted in an order suitable for display. + * + * @param \Drupal\Core\Entity\EntityInterface $entity + * The entity whose comment(s) needs rendering. + * @param string $field_name + * The field_name whose comment(s) needs rendering. + * @param int $mode + * The comment display mode: CommentManagerInterface::COMMENT_MODE_FLAT or + * CommentManagerInterface::COMMENT_MODE_THREADED. + * @param int $comments_per_page + * (optional) The amount of comments to display per page. + * Defaults to 0, which means show all comments. + * @param int $pager_id + * (optional) Pager id to use in case of multiple pagers on the one page. + * Defaults to 0; is only used when $comments_per_page is greater than zero. + * + * @return array + * Ordered array of comment objects, keyed by comment id. + */ + public function loadThread(EntityInterface $entity, $field_name, $mode, $comments_per_page = 0, $pager_id = 0); + + /** + * Returns the number of unapproved comments. + * + * @return int + * The number of unapproved comments. + */ + public function getUnapprovedCount(); + +}