示例#1
0
文件: ui.php 项目: stonyyi/anahita
 /**
  * Renders the comments for a commentable.
  *
  * @param AnDomainEntityAbstract $entity The parent of the comments
  * @param array                  $config An array of configuration
  *
  * @return string
  */
 public function comments($entity, $config = array())
 {
     $config = array_merge(array('truncate_body' => array(), 'editor' => false, 'pagination' => true, 'show_guest_prompt' => true, 'content_filter_exclude' => array()), $config);
     $data = $this->getTemplate()->getData();
     $limit = isset($data['limit']) ? $data['limit'] : 0;
     $offset = isset($data['start']) ? $data['start'] : 0;
     if (!isset($config['comments'])) {
         $config['comments'] = $entity->comments->order('creationTime', 'ASC')->limit($limit, $offset);
     }
     if (!isset($config['can_comment'])) {
         $config['can_comment'] = false;
         if ($entity && $entity->isAuthorizer()) {
             $config['can_comment'] = $entity->authorize('add.comment');
             //if can't comment then check if it needs to follow
             if ($config['can_comment'] === false && $entity->__require_follow) {
                 $config['require_follow'] = true;
             }
         }
     }
     if (!isset($config['strip_tags'])) {
         $config['strip_tags'] = false;
     }
     $config['entity'] = $entity;
     if ($config['pagination'] === $config['comments'] instanceof AnDomainEntitysetDefault) {
         $config['pagination'] = $this->pagination($config['comments'], array('paginate' => true, 'options' => array('scrollToTop' => true)));
     }
     return $this->_render('comments', $config);
 }