mirror of
https://github.com/processwire/processwire.git
synced 2025-08-09 00:06:55 +02:00
Add new allowChildren() method to Comment class indicating whether or not replies are allowed to the comment. Update the editUrl() method to point to ProcessCommentsManager comment editor, when installed.
This commit is contained in:
@@ -280,10 +280,11 @@ class Comment extends WireData {
|
|||||||
*
|
*
|
||||||
* @param string $key One of: text, cite, email, user_agent, website
|
* @param string $key One of: text, cite, email, user_agent, website
|
||||||
* @param array $options
|
* @param array $options
|
||||||
* @return mixed|null|Page|string
|
* @return string
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getFormatted($key, array $options = array()) {
|
public function getFormatted($key, array $options = array()) {
|
||||||
|
|
||||||
$value = trim($this->get($key));
|
$value = trim($this->get($key));
|
||||||
$sanitizer = $this->wire()->sanitizer;
|
$sanitizer = $this->wire()->sanitizer;
|
||||||
|
|
||||||
@@ -291,7 +292,7 @@ class Comment extends WireData {
|
|||||||
$value = $this->getFormattedCommentText($options);
|
$value = $this->getFormattedCommentText($options);
|
||||||
} else if(in_array($key, array('cite', 'email', 'user_agent', 'website'))) {
|
} else if(in_array($key, array('cite', 'email', 'user_agent', 'website'))) {
|
||||||
$value = $sanitizer->entities($value);
|
$value = $sanitizer->entities($value);
|
||||||
} else if(is_string($value)) {
|
} else {
|
||||||
$value = $sanitizer->entities1($value);
|
$value = $sanitizer->entities1($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -543,7 +544,7 @@ class Comment extends WireData {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function setIsLoaded($loaded) {
|
public function setIsLoaded($loaded) {
|
||||||
$this->loaded = $loaded ? true : false;
|
$this->loaded = (bool) $loaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -612,10 +613,11 @@ class Comment extends WireData {
|
|||||||
$field = $this->getField();
|
$field = $this->getField();
|
||||||
$comments = $page->get($field->name);
|
$comments = $page->get($field->name);
|
||||||
$children = $comments->makeNew();
|
$children = $comments->makeNew();
|
||||||
if($page) $children->setPage($this->getPage());
|
$children->setPage($this->getPage());
|
||||||
if($field) $children->setField($this->getField());
|
if($field) $children->setField($this->getField());
|
||||||
$id = $this->id;
|
$id = $this->id;
|
||||||
foreach($comments as $comment) {
|
foreach($comments as $comment) {
|
||||||
|
/** @var Comment $comment */
|
||||||
if(!$comment->parent_id) continue;
|
if(!$comment->parent_id) continue;
|
||||||
if($comment->parent_id == $id) $children->add($comment);
|
if($comment->parent_id == $id) $children->add($comment);
|
||||||
}
|
}
|
||||||
@@ -655,6 +657,21 @@ class Comment extends WireData {
|
|||||||
return $numChildren;
|
return $numChildren;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Are child comments (replies) allowed?
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
* @since 3.0.204
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function allowChildren() {
|
||||||
|
$field = $this->getField();
|
||||||
|
if(!$field) return false;
|
||||||
|
$maxDepth = $field->depth;
|
||||||
|
if(!$maxDepth) return false;
|
||||||
|
return $this->depth() < $maxDepth;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Does this comment have the given child comment?
|
* Does this comment have the given child comment?
|
||||||
*
|
*
|
||||||
@@ -672,6 +689,7 @@ class Comment extends WireData {
|
|||||||
|
|
||||||
// direct children
|
// direct children
|
||||||
foreach($children as $child) {
|
foreach($children as $child) {
|
||||||
|
/** @var Comment $child */
|
||||||
if($child->id == $id) $has = true;
|
if($child->id == $id) $has = true;
|
||||||
if($has) break;
|
if($has) break;
|
||||||
}
|
}
|
||||||
@@ -746,6 +764,7 @@ class Comment extends WireData {
|
|||||||
*/
|
*/
|
||||||
public function renderStars(array $options = array()) {
|
public function renderStars(array $options = array()) {
|
||||||
$field = $this->getField();
|
$field = $this->getField();
|
||||||
|
/** @var CommentArray $comments */
|
||||||
$comments = $this->getPage()->get($field->name);
|
$comments = $this->getPage()->get($field->name);
|
||||||
if(!isset($options['stars'])) $options['stars'] = $this->stars;
|
if(!isset($options['stars'])) $options['stars'] = $this->stars;
|
||||||
if(!isset($options['blank'])) $options['blank'] = false;
|
if(!isset($options['blank'])) $options['blank'] = false;
|
||||||
@@ -800,10 +819,14 @@ class Comment extends WireData {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function editUrl() {
|
public function editUrl() {
|
||||||
if(!$this->page || !$this->page->id) return '';
|
if(!$this->page || !$this->page->id || !$this->id) return '';
|
||||||
if(!$this->field) return '';
|
if(!$this->field) return '';
|
||||||
|
if($this->wire()->modules->isInstalled('ProcessCommentsManager')) {
|
||||||
|
return $this->wire()->config->urls->admin . "setup/comments/list/{$this->field->name}/?id=$this->id";
|
||||||
|
} else {
|
||||||
return $this->page->editUrl() . "?field={$this->field->name}#CommentsAdminItem$this->id";
|
return $this->page->editUrl() . "?field={$this->field->name}#CommentsAdminItem$this->id";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set meta data (custom fields for comments)
|
* Set meta data (custom fields for comments)
|
||||||
|
Reference in New Issue
Block a user