More comments, removing dead code, fixing small bugs.
This commit is contained in:
parent
86612bb1ff
commit
2a9f76d2f0
@ -12,8 +12,18 @@
|
|||||||
require_once "lib/akismet.class.php";
|
require_once "lib/akismet.class.php";
|
||||||
|
|
||||||
class CommentPostingEvent extends Event {
|
class CommentPostingEvent extends Event {
|
||||||
var $image_id, $user, $comment;
|
/** @var int */
|
||||||
|
public $image_id;
|
||||||
|
/** @var \User */
|
||||||
|
public $user;
|
||||||
|
/** @var string */
|
||||||
|
public $comment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $image_id
|
||||||
|
* @param \User $user
|
||||||
|
* @param string $comment
|
||||||
|
*/
|
||||||
public function __construct($image_id, $user, $comment) {
|
public function __construct($image_id, $user, $comment) {
|
||||||
$this->image_id = $image_id;
|
$this->image_id = $image_id;
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
@ -27,8 +37,12 @@ class CommentPostingEvent extends Event {
|
|||||||
* and what should be kept?
|
* and what should be kept?
|
||||||
*/
|
*/
|
||||||
class CommentDeletionEvent extends Event {
|
class CommentDeletionEvent extends Event {
|
||||||
var $comment_id;
|
/** @var int */
|
||||||
|
public $comment_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $comment_id
|
||||||
|
*/
|
||||||
public function __construct($comment_id) {
|
public function __construct($comment_id) {
|
||||||
$this->comment_id = $comment_id;
|
$this->comment_id = $comment_id;
|
||||||
}
|
}
|
||||||
@ -54,11 +68,18 @@ class Comment {
|
|||||||
$this->posted = $row['posted'];
|
$this->posted = $row['posted'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \User $user
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
public static function count_comments_by_user($user) {
|
public static function count_comments_by_user($user) {
|
||||||
global $database;
|
global $database;
|
||||||
return $database->get_one("SELECT COUNT(*) AS count FROM comments WHERE owner_id=:owner_id", array("owner_id"=>$user->id));
|
return $database->get_one("SELECT COUNT(*) AS count FROM comments WHERE owner_id=:owner_id", array("owner_id"=>$user->id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return null|User
|
||||||
|
*/
|
||||||
public function get_owner() {
|
public function get_owner() {
|
||||||
if(empty($this->owner)) $this->owner = User::by_id($this->owner_id);
|
if(empty($this->owner)) $this->owner = User::by_id($this->owner_id);
|
||||||
return $this->owner;
|
return $this->owner;
|
||||||
@ -265,19 +286,20 @@ class CommentList extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onSearchTermParse(SearchTermParseEvent $event) {
|
public function onSearchTermParse(SearchTermParseEvent $event) {
|
||||||
|
global $database;
|
||||||
|
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
|
||||||
if(preg_match("/^comments([:]?<|[:]?>|[:]?<=|[:]?>=|[:|=])(\d+)$/i", $event->term, $matches)) {
|
if(preg_match("/^comments([:]?<|[:]?>|[:]?<=|[:]?>=|[:|=])(\d+)$/i", $event->term, $matches)) {
|
||||||
$cmp = ltrim($matches[1], ":") ?: "=";
|
$cmp = ltrim($matches[1], ":") ?: "=";
|
||||||
$comments = $matches[2];
|
$comments = $matches[2];
|
||||||
$event->add_querylet(new Querylet("images.id IN (SELECT DISTINCT image_id FROM comments GROUP BY image_id HAVING count(image_id) $cmp $comments)"));
|
$event->add_querylet(new Querylet("images.id IN (SELECT DISTINCT image_id FROM comments GROUP BY image_id HAVING count(image_id) $cmp $comments)"));
|
||||||
}
|
}
|
||||||
else if(preg_match("/^commented_by[=|:](.*)$/i", $event->term, $matches)) {
|
else if(preg_match("/^commented_by[=|:](.*)$/i", $event->term, $matches)) {
|
||||||
global $database;
|
|
||||||
$user = User::by_name($matches[1]);
|
$user = User::by_name($matches[1]);
|
||||||
if(!is_null($user)) {
|
if(!is_null($user)) {
|
||||||
$user_id = $user->id;
|
$user_id = $user->id;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$user_id = -1;
|
$user_id = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -290,13 +312,18 @@ class CommentList extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// page building {{{
|
// page building {{{
|
||||||
|
/**
|
||||||
|
* @param int $current_page
|
||||||
|
*/
|
||||||
private function build_page(/*int*/ $current_page) {
|
private function build_page(/*int*/ $current_page) {
|
||||||
global $page, $config, $database, $user;
|
global $database, $user;
|
||||||
|
|
||||||
if(class_exists("Ratings")) {
|
if(class_exists("Ratings")) {
|
||||||
$user_ratings = Ratings::get_user_privs($user);
|
$user_ratings = Ratings::get_user_privs($user);
|
||||||
|
} else {
|
||||||
|
$user_ratings = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
$where = SPEED_HAX ? "WHERE posted > now() - interval '24 hours'" : "";
|
$where = SPEED_HAX ? "WHERE posted > now() - interval '24 hours'" : "";
|
||||||
|
|
||||||
$total_pages = $database->cache->get("comment_pages");
|
$total_pages = $database->cache->get("comment_pages");
|
||||||
@ -341,8 +368,12 @@ class CommentList extends Extension {
|
|||||||
// }}}
|
// }}}
|
||||||
|
|
||||||
// get comments {{{
|
// get comments {{{
|
||||||
|
/**
|
||||||
|
* @param int $count
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
private function get_recent_comments($count) {
|
private function get_recent_comments($count) {
|
||||||
global $config, $database;
|
global $database;
|
||||||
$rows = $database->get_all("
|
$rows = $database->get_all("
|
||||||
SELECT
|
SELECT
|
||||||
users.id as user_id, users.name as user_name, users.email as user_email, users.class as user_class,
|
users.id as user_id, users.name as user_name, users.email as user_email, users.class as user_class,
|
||||||
@ -361,8 +392,14 @@ class CommentList extends Extension {
|
|||||||
return $comments;
|
return $comments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $user_id
|
||||||
|
* @param int $count
|
||||||
|
* @param int $offset
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
private function get_user_comments(/*int*/ $user_id, /*int*/ $count, /*int*/ $offset=0) {
|
private function get_user_comments(/*int*/ $user_id, /*int*/ $count, /*int*/ $offset=0) {
|
||||||
global $config, $database;
|
global $database;
|
||||||
$rows = $database->get_all("
|
$rows = $database->get_all("
|
||||||
SELECT
|
SELECT
|
||||||
users.id as user_id, users.name as user_name, users.email as user_email, users.class as user_class,
|
users.id as user_id, users.name as user_name, users.email as user_email, users.class as user_class,
|
||||||
@ -382,8 +419,12 @@ class CommentList extends Extension {
|
|||||||
return $comments;
|
return $comments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $image_id
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
private function get_comments(/*int*/ $image_id) {
|
private function get_comments(/*int*/ $image_id) {
|
||||||
global $config, $database;
|
global $database;
|
||||||
$i_image_id = int_escape($image_id);
|
$i_image_id = int_escape($image_id);
|
||||||
$rows = $database->get_all("
|
$rows = $database->get_all("
|
||||||
SELECT
|
SELECT
|
||||||
|
@ -18,8 +18,12 @@ class CommentListTheme extends Themelet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a page with a list of images, and for each image,
|
* Display a page with a list of images, and for each image, the image's comments.
|
||||||
* the image's comments
|
*
|
||||||
|
* @param array $images
|
||||||
|
* @param int $page_number
|
||||||
|
* @param int $total_pages
|
||||||
|
* @param bool $can_post
|
||||||
*/
|
*/
|
||||||
public function display_comment_list($images, $page_number, $total_pages, $can_post) {
|
public function display_comment_list($images, $page_number, $total_pages, $can_post) {
|
||||||
global $config, $page, $user;
|
global $config, $page, $user;
|
||||||
@ -119,9 +123,9 @@ class CommentListTheme extends Themelet {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add some comments to the page, probably in a sidebar
|
* Add some comments to the page, probably in a sidebar.
|
||||||
*
|
*
|
||||||
* $comments = an array of Comment objects to be shown
|
* @param \Comment[] $comments An array of Comment objects to be shown
|
||||||
*/
|
*/
|
||||||
public function display_recent_comments($comments) {
|
public function display_recent_comments($comments) {
|
||||||
global $page;
|
global $page;
|
||||||
@ -136,7 +140,11 @@ class CommentListTheme extends Themelet {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show comments for an image
|
* Show comments for an image.
|
||||||
|
*
|
||||||
|
* @param Image $image
|
||||||
|
* @param \Comment[] $comments
|
||||||
|
* @param bool $postbox
|
||||||
*/
|
*/
|
||||||
public function display_image_comments(Image $image, $comments, $postbox) {
|
public function display_image_comments(Image $image, $comments, $postbox) {
|
||||||
global $page;
|
global $page;
|
||||||
@ -153,9 +161,12 @@ class CommentListTheme extends Themelet {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show comments made by a user
|
* Show comments made by a user.
|
||||||
|
*
|
||||||
|
* @param \Comment[] $comments
|
||||||
|
* @param \User $user
|
||||||
*/
|
*/
|
||||||
public function display_recent_user_comments($comments, $user) {
|
public function display_recent_user_comments($comments, User $user) {
|
||||||
global $page;
|
global $page;
|
||||||
$html = "";
|
$html = "";
|
||||||
foreach($comments as $comment) {
|
foreach($comments as $comment) {
|
||||||
@ -170,7 +181,13 @@ class CommentListTheme extends Themelet {
|
|||||||
$page->add_block(new Block("Comments", $html, "left", 70, "comment-list-user"));
|
$page->add_block(new Block("Comments", $html, "left", 70, "comment-list-user"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function display_all_user_comments($comments, $page_number, $total_pages, $user) {
|
/**
|
||||||
|
* @param \Comment[] $comments
|
||||||
|
* @param int $page_number
|
||||||
|
* @param int $total_pages
|
||||||
|
* @param \User $user
|
||||||
|
*/
|
||||||
|
public function display_all_user_comments($comments, $page_number, $total_pages, User $user) {
|
||||||
global $page;
|
global $page;
|
||||||
|
|
||||||
assert(is_numeric($page_number));
|
assert(is_numeric($page_number));
|
||||||
@ -203,7 +220,12 @@ class CommentListTheme extends Themelet {
|
|||||||
$this->display_paginator($page, "comment/beta-search/{$user->name}", null, $page_number, $total_pages);
|
$this->display_paginator($page, "comment/beta-search/{$user->name}", null, $page_number, $total_pages);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function comment_to_html($comment, $trim=false) {
|
/**
|
||||||
|
* @param \Comment $comment
|
||||||
|
* @param bool $trim
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function comment_to_html(Comment $comment, $trim=false) {
|
||||||
global $config, $user;
|
global $config, $user;
|
||||||
|
|
||||||
$tfe = new TextFormattingEvent($comment->comment);
|
$tfe = new TextFormattingEvent($comment->comment);
|
||||||
@ -276,6 +298,10 @@ class CommentListTheme extends Themelet {
|
|||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $image_id
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
protected function build_postbox(/*int*/ $image_id) {
|
protected function build_postbox(/*int*/ $image_id) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user