pools checked and tidied again

This commit is contained in:
Shish 2009-12-26 00:31:02 +00:00
parent 6c42cf73c7
commit 53f990bce8
2 changed files with 369 additions and 508 deletions

View File

@ -93,7 +93,7 @@ class Pools extends SimpleExtension {
} }
case "view": case "view":
{ {
$poolID = $event->get_arg(1); $poolID = int_escape($event->get_arg(1));
$this->get_posts($event, $poolID); $this->get_posts($event, $poolID);
break; break;
} }
@ -105,7 +105,7 @@ class Pools extends SimpleExtension {
case "revert": case "revert":
{ {
if(!$user->is_anonymous()) { if(!$user->is_anonymous()) {
$historyID = $event->get_arg(1); $historyID = int_escape($event->get_arg(1));
$this->revert_history($historyID); $this->revert_history($historyID);
@ -116,7 +116,7 @@ class Pools extends SimpleExtension {
} }
case "edit": case "edit":
{ {
$poolID = $event->get_arg(1); $poolID = int_escape($event->get_arg(1));
$pools = $this->get_pool($poolID); $pools = $this->get_pool($poolID);
foreach($pools as $pool) { foreach($pools as $pool) {
@ -125,7 +125,7 @@ class Pools extends SimpleExtension {
$this->theme->edit_pool($page, $this->get_pool($poolID), $this->edit_posts($poolID)); $this->theme->edit_pool($page, $this->get_pool($poolID), $this->edit_posts($poolID));
} else { } else {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/view/".$poolID."")); $page->set_redirect(make_link("pool/view/".$poolID));
} }
} }
break; break;
@ -134,12 +134,12 @@ class Pools extends SimpleExtension {
{ {
$poolID = int_escape($_POST["pool_id"]); $poolID = int_escape($_POST["pool_id"]);
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/edit/".$poolID."")); $page->set_redirect(make_link("pool/edit/".$poolID));
break; break;
} }
case "order": case "order":
{ {
$poolID = $event->get_arg(1); $poolID = int_escape($event->get_arg(1));
$pools = $this->get_pool($poolID); $pools = $this->get_pool($poolID);
foreach($pools as $pool) { foreach($pools as $pool) {
@ -148,7 +148,7 @@ class Pools extends SimpleExtension {
$this->theme->edit_order($page, $this->get_pool($poolID), $this->edit_order($poolID)); $this->theme->edit_order($page, $this->get_pool($poolID), $this->edit_order($poolID));
} else { } else {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/view/".$poolID."")); $page->set_redirect(make_link("pool/view/".$poolID));
} }
} }
break; break;
@ -157,7 +157,7 @@ class Pools extends SimpleExtension {
{ {
$poolID = int_escape($_POST["pool_id"]); $poolID = int_escape($_POST["pool_id"]);
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/order/".$poolID."")); $page->set_redirect(make_link("pool/order/".$poolID));
break; break;
} }
case "import": case "import":
@ -208,7 +208,7 @@ class Pools extends SimpleExtension {
if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) {
$this->remove_posts(); $this->remove_posts();
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/view/".$pool_id )); $page->set_redirect(make_link("pool/view/".$pool_id));
} else { } else {
$this->theme->display_error("Permssion denied."); $this->theme->display_error("Permssion denied.");
} }
@ -217,7 +217,7 @@ class Pools extends SimpleExtension {
} }
case "nuke": case "nuke":
{ {
$pool_id = $event->get_arg(1); $pool_id = int_escape($event->get_arg(1));
$pool = $this->get_single_pool($pool_id); $pool = $this->get_single_pool($pool_id);
// only admins and owners may do this // only admins and owners may do this
@ -261,7 +261,7 @@ class Pools extends SimpleExtension {
foreach ($poolsIDs as $poolID){ foreach ($poolsIDs as $poolID){
$pools = $this->get_pool($poolID['pool_id']); $pools = $this->get_pool($poolID['pool_id']);
foreach ($pools as $pool){ foreach ($pools as $pool){
$linksPools .= "<a href='".make_link("pool/view/".$pool['id']."")."'>".$pool['title']."</a>, "; $linksPools .= "<a href='".make_link("pool/view/".$pool['id'])."'>".$pool['title']."</a>, ";
} }
} }
$linksPools = substr($linksPools, 0, -2); $linksPools = substr($linksPools, 0, -2);
@ -277,7 +277,7 @@ class Pools extends SimpleExtension {
private function list_pools(Page $page, $event){ private function list_pools(Page $page, $event){
global $config, $database; global $config, $database;
$pageNumber = $event->get_arg(1); $pageNumber = int_escape($event->get_arg(1));
if(is_null($pageNumber) || !is_numeric($pageNumber)) if(is_null($pageNumber) || !is_numeric($pageNumber))
$pageNumber = 0; $pageNumber = 0;
else if ($pageNumber <= 0) else if ($pageNumber <= 0)
@ -307,51 +307,38 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE CREATE A NEW POOL * HERE WE CREATE A NEW POOL
*/ */
private function add_pool(){ private function add_pool() {
global $user, $database; global $user, $database;
$public = html_escape($_POST["public"]); $public = $_POST["public"] == "Y" ? "Y" : "N";
$title = mysql_real_escape_string(html_escape($_POST["title"]));
$description = mysql_real_escape_string(html_escape($_POST["description"]));
if($public <> "Y"){
$public = "N";
}
$database->execute(" $database->execute("
INSERT INTO pools INSERT INTO pools (user_id, public, title, description, date)
(user_id, public, title, description, date) VALUES (?, ?, ?, ?, now())",
VALUES array($user->id, $public, $_POST["title"], $_POST["description"]));
(?, ?, ?, ?, now())",
array($user->id, $public, $title, $description));
$result = $database->get_row("SELECT LAST_INSERT_ID() AS poolID", array()); $result = $database->get_row("SELECT LAST_INSERT_ID() AS poolID"); # FIXME database specific?
log_info("pools", "Pool {$result["poolID"]} created by {$user->name}"); log_info("pools", "Pool {$result["poolID"]} created by {$user->name}");
return $result["poolID"]; return $result["poolID"];
} }
private function get_pool($poolID){ private function get_pool($poolID) {
global $database; global $database;
$poolID = int_escape($poolID);
return $database->get_all("SELECT * FROM pools WHERE id=?", array($poolID)); return $database->get_all("SELECT * FROM pools WHERE id=?", array($poolID));
} }
private function get_single_pool($poolID) private function get_single_pool($poolID) {
{
global $database; global $database;
$poolID = int_escape($poolID);
return $database->get_row("SELECT * FROM pools WHERE id=?", array($poolID)); return $database->get_row("SELECT * FROM pools WHERE id=?", array($poolID));
} }
/* /*
* HERE WE GET THE ID OF THE POOL FROM AN IMAGE * HERE WE GET THE ID OF THE POOL FROM AN IMAGE
*/ */
private function get_pool_id($imageID){ private function get_pool_id($imageID) {
global $database; global $database;
$imageID = int_escape($imageID); return $database->get_all("SELECT pool_id FROM pool_images WHERE image_id=?", array($imageID));
return $database->get_all("SELECT pool_id FROM pool_images WHERE image_id =?", array($imageID));
} }
@ -359,15 +346,14 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE GET THE IMAGES FROM THE TAG ON IMPORT * HERE WE GET THE IMAGES FROM THE TAG ON IMPORT
*/ */
private function import_posts(){ private function import_posts() {
global $page, $config, $database; global $page, $config, $database;
$pool_id = int_escape($_POST["pool_id"]); $pool_id = int_escape($_POST["pool_id"]);
$pool_tag = mysql_real_escape_string(html_escape($_POST["pool_tag"]));
$poolsMaxResults = $config->get_int("poolsMaxImportResults", 1000); $poolsMaxResults = $config->get_int("poolsMaxImportResults", 1000);
$images = $images = Image::find_images(0, $poolsMaxResults, Tag::explode($pool_tag)); $images = $images = Image::find_images(0, $poolsMaxResults, Tag::explode($_POST["pool_tag"]));
$this->theme->pool_result($page, $images, $pool_id); $this->theme->pool_result($page, $images, $pool_id);
} }
@ -376,20 +362,17 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE ADD CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY * HERE WE ADD CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY
*/ */
private function add_posts(){ //ADD CHECKED POSTS private function add_posts() {
global $database; global $database;
$poolID = int_escape($_POST['pool_id']); $poolID = int_escape($_POST['pool_id']);
$images = ""; $images = "";
foreach ($_POST['check'] as $imageID){ foreach ($_POST['check'] as $imageID){
if(!$this->check_post($poolID, $imageID)){ if(!$this->check_post($poolID, $imageID)){
$database->execute(" $database->execute("
INSERT INTO pool_images INSERT INTO pool_images (pool_id, image_id)
(pool_id, image_id) VALUES (?, ?)",
VALUES
(?, ?)",
array($poolID, $imageID)); array($poolID, $imageID));
$images .= " ".$imageID; $images .= " ".$imageID;
@ -397,25 +380,33 @@ class Pools extends SimpleExtension {
} }
if(!strlen($images) == 0){ if(!strlen($images) == 0) {
$count = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?", array($poolID)); $count = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?", array($poolID));
$this->add_history($poolID, 1, $images, $count); $this->add_history($poolID, 1, $images, $count);
} }
$database->Execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?) WHERE id=?", array($poolID, $poolID)); $database->Execute("
UPDATE pools
SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?)
WHERE id=?",
array($poolID, $poolID)
);
return $poolID; return $poolID;
} }
private function order_posts(){ //ORDER POSTS private function order_posts() {
global $database; global $database;
$poolID = int_escape($_POST['pool_id']); $poolID = int_escape($_POST['pool_id']);
foreach ($_POST['imgs'] as $data) { foreach($_POST['imgs'] as $data) {
list ($imageORDER, $imageID) = $data; list($imageORDER, $imageID) = $data;
$database->Execute("
$imageID = int_escape($imageID); UPDATE pool_images
$database->Execute("UPDATE pool_images SET image_order = ? WHERE pool_id = ? AND image_id = ?", array($imageORDER, $poolID, $imageID)); SET image_order = ?
WHERE pool_id = ? AND image_id = ?",
array($imageORDER, $poolID, $imageID)
);
} }
return $poolID; return $poolID;
@ -426,15 +417,14 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE REMOVE CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY * HERE WE REMOVE CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY
*/ */
private function remove_posts(){ private function remove_posts() {
global $database; global $database;
$poolID = int_escape($_POST['pool_id']); $poolID = int_escape($_POST['pool_id']);
$images = ""; $images = "";
foreach ($_POST['check'] as $imageID){ foreach($_POST['check'] as $imageID) {
$database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID)); $database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID));
$images .= " ".$imageID; $images .= " ".$imageID;
} }
@ -449,14 +439,10 @@ class Pools extends SimpleExtension {
* HERE WE CHECK IF THE POST IS ALREADY ON POOL * HERE WE CHECK IF THE POST IS ALREADY ON POOL
* USED IN add_posts() * USED IN add_posts()
*/ */
private function check_post($poolID, $imageID){ private function check_post($poolID, $imageID) {
global $database; global $database;
$result = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=? AND image_id=?", array($poolID, $imageID)); $result = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=? AND image_id=?", array($poolID, $imageID));
if($result == 0) { return ($result != 0);
return FALSE;
} else {
return TRUE;
}
} }
@ -464,10 +450,10 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE GET ALL IMAGES FOR THE POOL * HERE WE GET ALL IMAGES FOR THE POOL
*/ */
private function get_posts($event, $poolID){ private function get_posts($event, $poolID) {
global $config, $user, $database; global $config, $user, $database;
$pageNumber = $event->get_arg(2); $pageNumber = int_escape($event->get_arg(2));
if(is_null($pageNumber) || !is_numeric($pageNumber)) if(is_null($pageNumber) || !is_numeric($pageNumber))
$pageNumber = 0; $pageNumber = 0;
else if ($pageNumber <= 0) else if ($pageNumber <= 0)
@ -480,53 +466,38 @@ class Pools extends SimpleExtension {
$imagesPerPage = $config->get_int("poolsImagesPerPage"); $imagesPerPage = $config->get_int("poolsImagesPerPage");
// WE CHECK IF THE EXTENSION RATING IS INSTALLED, WICH VERSION AND IF IT WORKS TO SHOW/HIDE SAFE, QUESTIONABLE, EXPLICIT AND UNRATED IMAGES FROM USER // WE CHECK IF THE EXTENSION RATING IS INSTALLED, WICH VERSION AND IF IT WORKS TO SHOW/HIDE SAFE, QUESTIONABLE, EXPLICIT AND UNRATED IMAGES FROM USER
if($config->get_int("ext_ratings2_version") < 3) { if(!class_exists("Ratings") || $config->get_int("ext_ratings2_version") < 3) {
$result = $database->get_all("SELECT image_id ". $result = $database->get_all("
"FROM pool_images ". SELECT image_id
"WHERE pool_id=? ". FROM pool_images
"ORDER BY image_order ASC ". WHERE pool_id=?
"LIMIT ?, ?" ORDER BY image_order ASC
, array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage)); LIMIT ?, ?",
array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage));
$totalPages = ceil($database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?",array($poolID)) / $imagesPerPage); $totalPages = ceil($database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?",array($poolID)) / $imagesPerPage);
} }
else if(class_exists("Ratings") && $config->get_int("ext_ratings2_version") >= 3) {
$rating = Ratings::privs_to_sql(Ratings::get_user_privs($user));
if($config->get_int("ext_ratings2_version") >= 3) { $result = $database->get_all("
if($user->is_anonymous()) { SELECT p.image_id
$sqes = $config->get_string("ext_rating_anon_privs"); FROM pool_images AS p
} INNER JOIN images AS i ON i.id = p.image_id
else if($user->is_admin()) { WHERE p.pool_id = ? AND i.rating IN ($rating)
$sqes = $config->get_string("ext_rating_admin_privs"); ORDER BY p.image_order ASC
} LIMIT ?, ?",
else { array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage));
$sqes = $config->get_string("ext_rating_user_privs");
}
$arr = array();
for($i=0; $i<strlen($sqes); $i++) {
$arr[] = "'" . $sqes[$i] . "'";
}
$rating = join(', ', $arr);
$result = $database->get_all("SELECT p.image_id ". $totalPages = ceil($database->db->GetOne("
"FROM pool_images AS p ". SELECT COUNT(*)
"INNER JOIN images AS i ". FROM pool_images AS p
"ON i.id = p.image_id ". INNER JOIN images AS i ON i.id = p.image_id
"WHERE p.pool_id = ? ". WHERE pool_id=? AND i.rating IN ($rating)",
"AND i.rating IN ($rating) ". array($poolID)) / $imagesPerPage);
"ORDER BY p.image_order ASC ".
"LIMIT ?, ?"
, array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage));
$totalPages = ceil($database->db->GetOne("SELECT COUNT(*) ".
"FROM pool_images AS p ".
"INNER JOIN images AS i ".
"ON i.id = p.image_id ".
"WHERE pool_id=? ".
"AND i.rating IN ($rating) "
,array($poolID)) / $imagesPerPage);
} }
$images = array(); $images = array();
foreach ($result as $singleResult) { foreach($result as $singleResult) {
$image = Image::by_id($singleResult["image_id"]); $image = Image::by_id($singleResult["image_id"]);
$images[] = array($image); $images[] = array($image);
} }
@ -539,9 +510,8 @@ class Pools extends SimpleExtension {
/* /*
* WE GET THE ORDER OF THE IMAGES * WE GET THE ORDER OF THE IMAGES
*/ */
private function edit_posts($poolID){ private function edit_posts($poolID) {
global $database; global $database;
$poolID = int_escape($poolID);
$result = $database->Execute("SELECT image_id FROM pool_images WHERE pool_id=? ORDER BY image_order ASC", array($poolID)); $result = $database->Execute("SELECT image_id FROM pool_images WHERE pool_id=? ORDER BY image_order ASC", array($poolID));
@ -556,23 +526,20 @@ class Pools extends SimpleExtension {
} }
/* /*
* WE GET THE ORDER OF THE IMAGES BUT HERE WE SEND KEYS ADDED IN ARRAY TO GET THE ORDER IN THE INPUT VALUE * WE GET THE ORDER OF THE IMAGES BUT HERE WE SEND KEYS ADDED IN ARRAY TO GET THE ORDER IN THE INPUT VALUE
*/ */
private function edit_order($poolID){ private function edit_order($poolID) {
global $database; global $database;
$poolID = int_escape($poolID);
$result = $database->Execute("SELECT image_id FROM pool_images WHERE pool_id=? ORDER BY image_order ASC", array($poolID)); $result = $database->Execute("SELECT image_id FROM pool_images WHERE pool_id=? ORDER BY image_order ASC", array($poolID));
$images = array(); $images = array();
while(!$result->EOF) { while(!$result->EOF) {
$image = $database->get_row("SELECT * FROM images AS i ". $image = $database->get_row("
"INNER JOIN pool_images AS p ". SELECT * FROM images AS i
"ON i.id = p.image_id ". INNER JOIN pool_images AS p ON i.id = p.image_id
"WHERE pool_id=? AND i.id=?" WHERE pool_id=? AND i.id=?",
, array($poolID, $result->fields["image_id"])); array($poolID, $result->fields["image_id"]));
$image = ($image ? new Image($image) : null); $image = ($image ? new Image($image) : null);
$images[] = array($image); $images[] = array($image);
$result->MoveNext(); $result->MoveNext();
@ -593,15 +560,15 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE NUKE ENTIRE POOL. WE REMOVE POOLS AND POSTS FROM REMOVED POOL AND HISTORIES ENTRIES FROM REMOVED POOL * HERE WE NUKE ENTIRE POOL. WE REMOVE POOLS AND POSTS FROM REMOVED POOL AND HISTORIES ENTRIES FROM REMOVED POOL
*/ */
private function nuke_pool($poolID){ private function nuke_pool($poolID) {
global $user, $database; global $user, $database;
if($user->is_admin()){ if($user->is_admin()) {
$database->execute("DELETE FROM pool_history WHERE pool_id = ?", array($poolID)); $database->execute("DELETE FROM pool_history WHERE pool_id = ?", array($poolID));
$database->execute("DELETE FROM pool_images WHERE pool_id = ?", array($poolID)); $database->execute("DELETE FROM pool_images WHERE pool_id = ?", array($poolID));
$database->execute("DELETE FROM pools WHERE id = ?", array($poolID)); $database->execute("DELETE FROM pools WHERE id = ?", array($poolID));
} elseif(!$user->is_anonymous()){ } elseif(!$user->is_anonymous()) {
// WE CHECK IF THE USER IS THE OWNER OF THE POOL IF NOT HE CAN'T DO ANYTHING // FIXME: WE CHECK IF THE USER IS THE OWNER OF THE POOL IF NOT HE CAN'T DO ANYTHING
$database->execute("DELETE FROM pool_history WHERE pool_id = ?", array($poolID)); $database->execute("DELETE FROM pool_history WHERE pool_id = ?", array($poolID));
$database->execute("DELETE FROM pool_images WHERE pool_id = ?", array($poolID)); $database->execute("DELETE FROM pool_images WHERE pool_id = ?", array($poolID));
$database->execute("DELETE FROM pools WHERE id = ? AND user_id = ?", array($poolID, $user->id)); $database->execute("DELETE FROM pools WHERE id = ? AND user_id = ?", array($poolID, $user->id));
@ -614,27 +581,23 @@ class Pools extends SimpleExtension {
* HERE WE ADD A HISTORY ENTRY * HERE WE ADD A HISTORY ENTRY
* FOR $action 1 (one) MEANS ADDED, 0 (zero) MEANS REMOVED * FOR $action 1 (one) MEANS ADDED, 0 (zero) MEANS REMOVED
*/ */
private function add_history($poolID, $action, $images, $count){ private function add_history($poolID, $action, $images, $count) {
global $user, $database; global $user, $database;
$user_id = $user->id;
$database->execute(" $database->execute("
INSERT INTO pool_history INSERT INTO pool_history (pool_id, user_id, action, images, count, date)
(pool_id, user_id, action, images, count, date) VALUES (?, ?, ?, ?, ?, now())",
VALUES array($poolID, $user->id, $action, $images, $count));
(?, ?, ?, ?, ?, now())",
array($poolID, $user_id, $action, $images, $count));
} }
/* /*
* HERE WE GET THE HISTORY LIST * HERE WE GET THE HISTORY LIST
*/ */
private function get_history($event){ private function get_history($event){
global $config, $database; global $config, $database;
$pageNumber = $event->get_arg(1); $pageNumber = int_escape($event->get_arg(1));
if(is_null($pageNumber) || !is_numeric($pageNumber)) if(is_null($pageNumber) || !is_numeric($pageNumber))
$pageNumber = 0; $pageNumber = 0;
else if ($pageNumber <= 0) else if ($pageNumber <= 0)
@ -666,29 +629,29 @@ class Pools extends SimpleExtension {
/* /*
* HERE GO BACK IN HISTORY AND ADD OR REMOVE POSTS TO POOL * HERE GO BACK IN HISTORY AND ADD OR REMOVE POSTS TO POOL
*/ */
private function revert_history($historyID){ private function revert_history($historyID) {
global $database; global $database;
$status = $database->get_all("SELECT * FROM pool_history WHERE id=?", array($historyID)); $status = $database->get_all("SELECT * FROM pool_history WHERE id=?", array($historyID));
foreach ($status as $entry) foreach($status as $entry) {
{
$images = trim($entry['images']); $images = trim($entry['images']);
$images = explode(" ", $images); $images = explode(" ", $images);
$poolID = $entry['pool_id']; $poolID = $entry['pool_id'];
$imageArray = ""; $imageArray = "";
if ($entry['action'] == 0) { if($entry['action'] == 0) {
// READD ENTRIES // READ ENTRIES
foreach ($images as $image) { foreach($images as $image) {
$imageID = $image; $imageID = $image;
$this->add_post($poolID, $imageID); $this->add_post($poolID, $imageID);
$imageArray .= " ".$imageID; $imageArray .= " ".$imageID;
$newAction = 1; $newAction = 1;
} }
} elseif ($entry['action'] == 1) { }
else if($entry['action'] == 1) {
// DELETE ENTRIES // DELETE ENTRIES
foreach ($images as $image) { foreach($images as $image) {
$imageID = $image; $imageID = $image;
$this->delete_post($poolID, $imageID); $this->delete_post($poolID, $imageID);
@ -708,15 +671,13 @@ class Pools extends SimpleExtension {
* HERE WE ADD A SIMPLE POST FROM POOL * HERE WE ADD A SIMPLE POST FROM POOL
* USED WITH FOREACH IN revert_history() * USED WITH FOREACH IN revert_history()
*/ */
private function add_post($poolID, $imageID){ private function add_post($poolID, $imageID) {
global $database; global $database;
if(!$this->check_post($poolID, $imageID)){ if(!$this->check_post($poolID, $imageID)) {
$database->execute(" $database->execute("
INSERT INTO pool_images INSERT INTO pool_images (pool_id, image_id)
(pool_id, image_id) VALUES (?, ?)",
VALUES
(?, ?)",
array($poolID, $imageID)); array($poolID, $imageID));
} }
@ -729,7 +690,7 @@ class Pools extends SimpleExtension {
* HERE WE REMOVE A SIMPLE POST FROM POOL * HERE WE REMOVE A SIMPLE POST FROM POOL
* USED WITH FOREACH IN revert_history() * USED WITH FOREACH IN revert_history()
*/ */
private function delete_post($poolID, $imageID){ private function delete_post($poolID, $imageID) {
global $database; global $database;
$database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID)); $database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID));

View File

@ -1,384 +1,292 @@
<?php <?php
class PoolsTheme extends Themelet { class PoolsTheme extends Themelet {
/* /*
* HERE WE ADD THE POOL INFO ON IMAGE * HERE WE ADD THE POOL INFO ON IMAGE
*/ */
public function pool_info($linksPools){ public function pool_info($linksPools) {
global $config, $page; global $config, $page;
$editor = 'This post belongs to the '.$linksPools.' pool.'; $editor = 'This post belongs to the '.html_escape($linksPools).' pool.';
if($config->get_bool("poolsInfoOnViewImage")){ if($config->get_bool("poolsInfoOnViewImage")) {
if($linksPools <> " "){ if($linksPools != " ") {
$page->add_block(new Block("Pool Info", $editor, "main", 1)); $page->add_block(new Block("Pool Info", $editor, "main", 1));
} }
} }
} }
/* /*
* HERE WE SHOWS THE LIST OF POOLS * HERE WE SHOWS THE LIST OF POOLS
*/ */
public function list_pools(Page $page, $pools, $pageNumber, $totalPages) public function list_pools(Page $page, $pools, $pageNumber, $totalPages) {
{
global $user; global $user;
$html = '<table id="poolsList" class="zebra">'. $html = '<table id="poolsList" class="zebra">'.
"<thead><tr>". "<thead><tr>".
"<th>Name</th>". "<th>Name</th>".
"<th>Creator</th>". "<th>Creator</th>".
"<th>Posts</th>". "<th>Posts</th>".
"<th>Public</th>"; "<th>Public</th>";
if($user->is_admin()){ if($user->is_admin()){
$html .= "<th>Action</th>"; $html .= "<th>Action</th>";
} }
$html .= "</tr></thead>"; $html .= "</tr></thead>";
$n = 0; $n = 0;
foreach ($pools as $pool) foreach($pools as $pool) {
{ $oe = ($n++ % 2 == 0) ? "even" : "odd";
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_link = '<a href="'.make_link("pool/view/".$pool['id']).'">'.$pool['title']."</a>"; $pool_link = '<a href="'.make_link("pool/view/".$pool['id']).'">'.$pool['title']."</a>";
$user_link = '<a href="'.make_link("user/".$pool['user_name']).'">'.$pool['user_name']."</a>"; $user_link = '<a href="'.make_link("user/".$pool['user_name']).'">'.$pool['user_name']."</a>";
$del_link = '<a href="'.make_link("pool/nuke/".$pool['id']).'">Delete</a>'; $del_link = '<a href="'.make_link("pool/nuke/".$pool['id']).'">Delete</a>';
$public = ($pool['public'] == "Y" ? "Yes" : "No");
if($pool['public'] == "Y"){ $html .= "<tr class='$oe'>".
$public = "Yes"; "<td class='left'>".$pool_link."</td>".
} elseif($pool['public'] == "N"){ "<td>".$user_link."</td>".
$public = "No";
}
$html .= "<tr class='$oe'>".
"<td class='left'>".$pool_link."</td>".
"<td>".$user_link."</td>".
"<td>".$pool['posts']."</td>". "<td>".$pool['posts']."</td>".
"<td>".$public."</td>"; "<td>".$public."</td>";
if($user->is_admin()){ if($user->is_admin()){
$html .= "<td>".$del_link."</td>"; $html .= "<td>".$del_link."</td>";
} }
$html .= "</tr>"; $html .= "</tr>";
} }
$html .= "</tbody></table>"; $html .= "</tbody></table>";
$blockTitle = "Pools"; $blockTitle = "Pools";
$page->set_title(html_escape($blockTitle)); $page->set_title(html_escape($blockTitle));
$page->set_heading(html_escape($blockTitle)); $page->set_heading(html_escape($blockTitle));
$page->add_block(new Block($blockTitle, $html, "main", 10)); $page->add_block(new Block($blockTitle, $html, "main", 10));
$this->display_paginator($page, "pool/list", null, $pageNumber, $totalPages); $this->display_paginator($page, "pool/list", null, $pageNumber, $totalPages);
} }
/* /*
* HERE WE DISPLAY THE NEW POOL COMPOSER * HERE WE DISPLAY THE NEW POOL COMPOSER
*/ */
public function new_pool_composer(Page $page) public function new_pool_composer(Page $page) {
{ $html = "<form action=".make_link("pool/create")." method='POST'>
$html = "<form action=".make_link("pool/create")." method='POST'> <table>
<table> <tr><td>Title:</td><td><input type='text' name='title'></td></tr>
<tr><td>Title:</td><td><input type='text' name='title'></td></tr> <tr><td>Public?</td><td><input name='public' type='checkbox' value='Y' checked='checked'/></td></tr>
<tr><td>Public?</td><td><input name='public' type='checkbox' value='Y' checked='checked'/></td></tr> <tr><td>Description:</td><td><textarea name='description'></textarea></td></tr>
<tr><td>Description:</td><td><textarea name='description'></textarea></td></tr> <tr><td colspan='2'><input type='submit' value='Submit' /></td></tr>
<tr><td colspan='2'><input type='submit' value='Submit' /></td></tr> </table>
</table>
"; ";
$blockTitle = "Create Pool"; $blockTitle = "Create Pool";
$page->set_title(html_escape($blockTitle)); $page->set_title(html_escape($blockTitle));
$page->set_heading(html_escape($blockTitle)); $page->set_heading(html_escape($blockTitle));
$page->add_block(new Block($blockTitle, $html, "main", 10)); $page->add_block(new Block($blockTitle, $html, "main", 10));
} }
private function display_top($pools, $heading) {
global $page;
$page->set_title($heading);
$page->set_heading($heading);
if(count($pools) > 1) {
$pool_info = "<table id='poolsList' class='zebra'>".
"<thead><tr>".
"<th class='left'>Title</th>".
"<th class='left'>Description</th>".
"</tr></thead>";
$n = 0;
foreach($pools as $pool) {
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_info .= "<tr class='$oe'>".
"<td class='left'>".html_escape($pool['title'])."</td>".
"<td class='left'>".html_escape($pool['description'])."</td>".
"</tr>";
// this will make disasters if more than one pool comes in the parameter
if($pool['public'] == "Y" || $user->is_admin()) {// IF THE POOL IS PUBLIC OR IS ADMIN SHOW EDIT PANEL
if(!$user->is_anonymous()) {// IF THE USER IS REGISTERED AND LOGGED IN SHOW EDIT PANEL
$this->sidebar_options($page, $pool);
}
}
$this->display_paginator($page, "pool/view/".$pool['id'], null, $pageNumber, $totalPages);
}
$pool_info .= "</tbody></table>";
$page->add_block(new Block($heading, $pool_info, "main", 10));
}
else {
$page->add_block(new Block(html_escape($pools[0]['title']), html_escape($pools[0]['description']), "main", 10));
}
}
/* /*
* HERE WE DISPLAY THE POOL WITH TITLE DESCRIPTION AND IMAGES WITH PAGINATION * HERE WE DISPLAY THE POOL WITH TITLE DESCRIPTION AND IMAGES WITH PAGINATION
*/ */
public function view_pool($pools, $images, $pageNumber, $totalPages) public function view_pool($pools, $images, $pageNumber, $totalPages) {
{
global $user, $page; global $user, $page;
$pool_info = "<table id='poolsList' class='zebra'>". $this->display_top($pools, "Viewing Pool");
"<thead><tr>".
"<th class='left'>Title</th>".
"<th class='left'>Description</th>".
"</tr></thead>";
$n = 0;
foreach ($pools as $pool)
{
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_info .= "<tr class='$oe'>".
"<td class='left'>".$pool['title']."</td>".
"<td class='left'>".$pool['description']."</td>".
"</tr>";
// this will make disasters if more than one pool comes in the parameter
if($pool['public'] == "Y" || $user->is_admin()){// IF THE POOL IS PUBLIC OR IS ADMIN SHOW EDIT PANEL
if(!$user->is_anonymous()){// IF THE USER IS REGISTERED AND LOGGED IN SHOW EDIT PANEL
$this->sidebar_options($page, $pool);
}
}
$this->display_paginator($page, "pool/view/".$pool['id']."", null, $pageNumber, $totalPages);
}
$pool_info .= "</tbody></table>";
$page->set_title("Viewing Pool");
$page->set_heading("Viewing Pool");
$page->add_block(new Block("Viewing Pool", $pool_info, "main", 10));
$pool_images = ''; $pool_images = '';
foreach($images as $pair) { foreach($images as $pair) {
$image = $pair[0]; $image = $pair[0];
$thumb_html = $this->build_thumb_html($image); $thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'. $pool_images .= '<span class="thumb">'.
'<a href="$image_link">'.$thumb_html.'</a>'. '<a href="$image_link">'.$thumb_html.'</a>'.
'</span>'; '</span>';
} }
//$pool_images .= print_r($images);
$page->add_block(new Block("Viewing Posts", $pool_images, "main", 30)); $page->add_block(new Block("Viewing Posts", $pool_images, "main", 30));
} }
/* /*
* HERE WE DISPLAY THE POOL OPTIONS ON SIDEBAR BUT WE HIDE REMOVE OPTION IF THE USER IS NOT THE OWNER OR ADMIN * HERE WE DISPLAY THE POOL OPTIONS ON SIDEBAR BUT WE HIDE REMOVE OPTION IF THE USER IS NOT THE OWNER OR ADMIN
*/ */
public function sidebar_options(Page $page, $pool){ public function sidebar_options(Page $page, $pool){
global $user; global $user;
$editor = " <form action='".make_link("pool/import")."' method='POST'> $editor = " <form action='".make_link("pool/import")."' method='POST'>
<input type='text' name='pool_tag' id='edit' value='Please enter a tag' onclick='this.value=\"\";'/> <input type='text' name='pool_tag' id='edit' value='Please enter a tag' onclick='this.value=\"\";'/>
<input type='submit' name='edit' id='edit' value='Import'/> <input type='submit' name='edit' id='edit' value='Import'/>
<input type='hidden' name='pool_id' value='".$pool['id']."'> <input type='hidden' name='pool_id' value='".$pool['id']."'>
</form> </form>
<form id='form1' name='form1' method='post' action='".make_link("pool/edit_pool")."'> <form id='form1' name='form1' method='post' action='".make_link("pool/edit_pool")."'>
<input type='submit' name='edit' id='edit' value='Edit Pool'/> <input type='submit' name='edit' id='edit' value='Edit Pool'/>
<input type='hidden' name='pool_id' value='".$pool['id']."'> <input type='hidden' name='pool_id' value='".$pool['id']."'>
</form> </form>
<form id='form1' name='form1' method='post' action='".make_link("pool/edit_order")."'> <form id='form1' name='form1' method='post' action='".make_link("pool/edit_order")."'>
<input type='submit' name='edit' id='edit' value='Order Pool'/> <input type='submit' name='edit' id='edit' value='Order Pool'/>
<input type='hidden' name='pool_id' value='".$pool['id']."'> <input type='hidden' name='pool_id' value='".$pool['id']."'>
</form> </form>
"; ";
if($user->id == $pool['user_id'] || $user->is_admin()){ if($user->id == $pool['user_id'] || $user->is_admin()){
$editor .= " $editor .= "
<script type='text/javascript'> <script type='text/javascript'>
function confirm_action() { function confirm_action() {
return confirm('Are you sure that you want to delete this pool?'); return confirm('Are you sure that you want to delete this pool?');
} }
</script> </script>
<form action='".make_link("pool/nuke_pool")."' method='POST'> <form action='".make_link("pool/nuke_pool")."' method='POST'>
<input type='submit' name='delete' id='delete' value='Delete Pool' onclick='return confirm_action()' /> <input type='submit' name='delete' id='delete' value='Delete Pool' onclick='return confirm_action()' />
<input type='hidden' name='pool_id' value='".$pool['id']."'> <input type='hidden' name='pool_id' value='".$pool['id']."'>
</form> </form>
"; ";
} }
$page->add_block(new Block("Manage Pool", $editor, "left", 10)); $page->add_block(new Block("Manage Pool", $editor, "left", 10));
} }
/* /*
* HERE WE DISPLAY THE RESULT OF THE SEARCH ON IMPORT * HERE WE DISPLAY THE RESULT OF THE SEARCH ON IMPORT
*/ */
public function pool_result(Page $page, $images, $pool_id){ public function pool_result(Page $page, $images, $pool_id) {
$pool_images = " $pool_images = "
<script language='JavaScript' type='text/javascript'> <script language='JavaScript' type='text/javascript'>
function setAll(value) {
function checkAll() var a=new Array();
{ a=document.getElementsByName('check[]');
var a=new Array(); var p=0;
a=document.getElementsByName('check[]'); for(i=0;i<a.length;i++) {
var p=0; a[i].checked = value;
for(i=0;i<a.length;i++){ }
a[i].checked = true ;
} }
}
function uncheckAll()
{
var a=new Array();
a=document.getElementsByName('check[]');
var p=0;
for(i=0;i<a.length;i++){
a[i].checked = false ;
}
}
</script>
<script type='text/javascript'>
function confirm_action() { function confirm_action() {
return confirm('Are you sure you want to add selected posts to this pool?'); return confirm('Are you sure you want to add selected posts to this pool?');
} }
</script> </script>
"; ";
$pool_images .= "<form action='".make_link("pool/add_posts")."' method='POST' name='checks'>"; $pool_images .= "<form action='".make_link("pool/add_posts")."' method='POST' name='checks'>";
foreach($images as $image) { foreach($images as $image) {
$thumb_html = $this->build_thumb_html($image);
$thumb_html = $this->build_thumb_html($image); $pool_images .= '<span class="thumb">'.
'<a href="$image_link">'.$thumb_html.'</a>'.
$pool_images .= '<span class="thumb">'. '<br>'.
'<a href="$image_link">'.$thumb_html.'</a>'. '<input name="check[]" type="checkbox" value="'.$image->id.'" />'.
'<br>'. '</span>';
'<input name="check[]" type="checkbox" value="'.$image->id.'" />'.
'</span>';
} }
$pool_images .= "<br>". $pool_images .= "<br>".
"<input type='submit' name='edit' id='edit' value='Add Selected' onclick='return confirm_action()'/>". "<input type='submit' name='edit' id='edit' value='Add Selected' onclick='return confirm_action()'/>".
"<input type='hidden' name='pool_id' value='".$pool_id."'>". "<input type='hidden' name='pool_id' value='".$pool_id."'>".
"</form>"; "</form>";
$page->add_block(new Block("Import", $pool_images, "main", 10)); $page->add_block(new Block("Import", $pool_images, "main", 10));
$editor = " $editor = "
<input type='button' name='CheckAll' value='Check All' onClick='checkAll()'> <input type='button' name='CheckAll' value='Check All' onClick='setAll(true)'>
<input type='button' name='UnCheckAll' value='Uncheck All' onClick='uncheckAll()'> <input type='button' name='UnCheckAll' value='Uncheck All' onClick='setAll(false)'>
"; ";
$page->add_block(new Block("Manage Pool", $editor, "left", 10)); $page->add_block(new Block("Manage Pool", $editor, "left", 10));
} }
/* /*
* HERE WE DISPLAY THE POOL ORDERER * HERE WE DISPLAY THE POOL ORDERER
* WE LIST ALL IMAGES ON POOL WITHOUT PAGINATION AND WITH A TEXT INPUT TO SET A NUMBER AND CHANGE THE ORDER * WE LIST ALL IMAGES ON POOL WITHOUT PAGINATION AND WITH A TEXT INPUT TO SET A NUMBER AND CHANGE THE ORDER
*/ */
public function edit_order(Page $page, $pools, $images) public function edit_order(Page $page, $pools, $images) {
{
global $user; global $user;
$pool_info = "<table id='poolsList' class='zebra'>". $this->display_top($pools, "Sorting Pool");
"<thead><tr>".
"<th class='left'>Title</th>".
"<th class='left'>Description</th>".
"</tr></thead>";
$n = 0;
foreach ($pools as $pool)
{
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_info .= "<tr class='$oe'>".
"<td class='left'>".$pool['title']."</td>".
"<td class='left'>".$pool['description']."</td>".
"</tr>";
}
$pool_info .= "</tbody></table>";
$page->set_title("Sorting Pool");
$page->set_heading("Sorting Pool");
$page->add_block(new Block("Sorting Pool", $pool_info, "main", 10));
$pool_images = "<form action='".make_link("pool/order_posts")."' method='POST' name='checks'>"; $pool_images = "<form action='".make_link("pool/order_posts")."' method='POST' name='checks'>";
$n = 0; $n = 0;
foreach($images as $pair) { foreach($images as $pair) {
$image = $pair[0]; $image = $pair[0];
$thumb_html = $this->build_thumb_html($image); $thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'. $pool_images .= '<span class="thumb">'.
'<a href="$image_link">'.$thumb_html.'</a>'; '<a href="$image_link">'.$thumb_html.'</a>'.
'<br><input name="imgs['.$n.'][]" type="text" style="max-width:50px;" value="'.$image->image_order.'" />'.
'<input name="imgs['.$n.'][]" type="hidden" value="'.$image->id.'" />'.
$pool_images .= '<br><input name="imgs['.$n.'][]" type="text" style="max-width:50px;" value="'.$image->image_order.'" />'. '</span>';
'<input name="imgs['.$n.'][]" type="hidden" value="'.$image->id.'" />'; $n++;
$n = $n+1;
$pool_images .= '</span>';
} }
$pool_images .= "<br>". $pool_images .= "<br>".
"<input type='submit' name='edit' id='edit' value='Order'/>". "<input type='submit' name='edit' id='edit' value='Order'/>".
"<input type='hidden' name='pool_id' value='".$pool['id']."'>". "<input type='hidden' name='pool_id' value='".$pool['id']."'>".
"</form>"; "</form>";
$page->add_block(new Block("Sorting Posts", $pool_images, "main", 30)); $page->add_block(new Block("Sorting Posts", $pool_images, "main", 30));
} }
/* /*
* HERE WE DISPLAY THE POOL EDITOR * HERE WE DISPLAY THE POOL EDITOR
* WE LIST ALL IMAGES ON POOL WITHOUT PAGINATION AND WITH A CHECKBOX TO SELECT WHICH IMAGE WE WANT REMOVE * WE LIST ALL IMAGES ON POOL WITHOUT PAGINATION AND WITH A CHECKBOX TO SELECT WHICH IMAGE WE WANT REMOVE
*/ */
public function edit_pool(Page $page, $pools, $images) public function edit_pool(Page $page, $pools, $images) {
{
global $user; global $user;
$pool_info = "<table id='poolsList' class='zebra'>". $this->display_top($pools, "Editing Pool");
"<thead><tr>".
"<th class='left'>Title</th>".
"<th class='left'>Description</th>".
"</tr></thead>";
$n = 0;
foreach ($pools as $pool)
{
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_info .= "<tr class='$oe'>".
"<td class='left'>".$pool['title']."</td>".
"<td class='left'>".$pool['description']."</td>".
"</tr>";
}
$pool_info .= "</tbody></table>";
$page->set_title("Editing Pool");
$page->set_heading("Editing Pool");
$page->add_block(new Block("Editing Pool", $pool_info, "main", 10));
$pool_images = " $pool_images = "
<script language='JavaScript' type='text/javascript'> <script language='JavaScript' type='text/javascript'>
function setAll(value) {
function checkAll() var a=new Array();
{ a=document.getElementsByName('check[]');
var a=new Array(); var p=0;
a=document.getElementsByName('check[]'); for(i=0;i<a.length;i++){
var p=0; a[i].checked = value;
for(i=0;i<a.length;i++){ }
a[i].checked = true ;
} }
} </script>
function uncheckAll()
{
var a=new Array();
a=document.getElementsByName('check[]');
var p=0;
for(i=0;i<a.length;i++){
a[i].checked = false ;
}
}
</script>
"; ";
$pool_images .= "<form action='".make_link("pool/remove_posts")."' method='POST' name='checks'>"; $pool_images .= "<form action='".make_link("pool/remove_posts")."' method='POST' name='checks'>";
@ -389,75 +297,69 @@ class PoolsTheme extends Themelet {
$thumb_html = $this->build_thumb_html($image); $thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'. $pool_images .= '<span class="thumb">'.
'<a href="$image_link">'.$thumb_html.'</a>'; '<a href="$image_link">'.$thumb_html.'</a>'.
'<br><input name="check[]" type="checkbox" value="'.$image->id.'" />'.
'</span>';
$pool_images .= '<br><input name="check[]" type="checkbox" value="'.$image->id.'" />';
$pool_images .= '</span>';
} }
$pool_images .= "<br>". $pool_images .= "<br>".
"<input type='submit' name='edit' id='edit' value='Remove Selected'/>". "<input type='submit' name='edit' id='edit' value='Remove Selected'/>".
"<input type='hidden' name='pool_id' value='".$pool['id']."'>". "<input type='hidden' name='pool_id' value='".$pool['id']."'>".
"</form>"; "</form>";
$page->add_block(new Block("Editing Posts", $pool_images, "main", 30)); $page->add_block(new Block("Editing Posts", $pool_images, "main", 30));
$editor = " $editor = "
<input type='button' name='CheckAll' value='Check All' onClick='checkAll()'> <input type='button' name='CheckAll' value='Check All' onClick='setAll(true)'>
<input type='button' name='UnCheckAll' value='Uncheck All' onClick='uncheckAll()'>"; <input type='button' name='UnCheckAll' value='Uncheck All' onClick='setAll(false)'>";
$page->add_block(new Block("Manage Pool", $editor, "left", 10)); $page->add_block(new Block("Manage Pool", $editor, "left", 10));
} }
/* /*
* HERE WE DISPLAY THE HISTORY LIST * HERE WE DISPLAY THE HISTORY LIST
*/ */
public function show_history($histories, $pageNumber, $totalPages){ public function show_history($histories, $pageNumber, $totalPages) {
global $page; global $page;
$html = "<table id='poolsList' class='zebra'>". $html = "<table id='poolsList' class='zebra'>".
"<thead><tr>". "<thead><tr>".
"<th>Pool</th>". "<th>Pool</th>".
"<th>Post Count</th>". "<th>Post Count</th>".
"<th>Changes</th>". "<th>Changes</th>".
"<th>Updater</th>". "<th>Updater</th>".
"<th>Date</th>". "<th>Date</th>".
"<th>Action</th>". "<th>Action</th>".
"</tr></thead>"; "</tr></thead>";
$n = 0; $n = 0;
foreach ($histories as $history) foreach($histories as $history) {
{ $oe = ($n++ % 2 == 0) ? "even" : "odd";
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_link = "<a href='".make_link("pool/view/".$history['pool_id'])."'>".$history['title']."</a>"; $pool_link = "<a href='".make_link("pool/view/".$history['pool_id'])."'>".html_escape($history['title'])."</a>";
$user_link = "<a href='".make_link("user/".$history['user_name'])."'>".$history['user_name']."</a>"; $user_link = "<a href='".make_link("user/".url_escape($history['user_name']))."'>".html_escape($history['user_name'])."</a>";
$revert_link = "<a href='".make_link("pool/revert/".$history['id'])."'>Revert</a>"; $revert_link = "<a href='".make_link("pool/revert/".$history['id'])."'>Revert</a>";
if ($history['action'] == 1) { if ($history['action'] == 1) {
$prefix = "+"; $prefix = "+";
} elseif ($history['action'] == 0) { } elseif ($history['action'] == 0) {
$prefix = "-"; $prefix = "-";
} }
$images = trim($history['images']); $images = trim($history['images']);
$images = explode(" ", $images); $images = explode(" ", $images);
$image_link = ""; $image_link = "";
foreach ($images as $image) { foreach ($images as $image) {
$image_link .= "<a href='".make_link("post/view/".$image)."'>".$prefix.$image." </a>"; $image_link .= "<a href='".make_link("post/view/".$image)."'>".$prefix.$image." </a>";
} }
$html .= "<tr class='$oe'>". $html .= "<tr class='$oe'>".
"<td class='left'>".$pool_link."</td>". "<td class='left'>".$pool_link."</td>".
"<td>".$history['count']."</td>". "<td>".$history['count']."</td>".
"<td>".$image_link."</td>". "<td>".$image_link."</td>".
"<td>".$user_link."</td>". "<td>".$user_link."</td>".
"<td>".$history['date']."</td>". "<td>".$history['date']."</td>".
"<td>".$revert_link."</td>". "<td>".$revert_link."</td>".
"</tr>"; "</tr>";
} }
@ -472,17 +374,15 @@ class PoolsTheme extends Themelet {
} }
/* /*
* HERE WE DISPLAY THE ERROR * HERE WE DISPLAY THE ERROR
*/ */
public function display_error($errMessage){ public function display_error($errMessage) {
global $page; global $page;
$page->set_title("Error"); $page->set_title("Error");
$page->set_heading("Error"); $page->set_heading("Error");
$page->add_block(new Block("Error", $errMessage, "main", 10)); $page->add_block(new Block("Error", $errMessage, "main", 10));
} }
} }
?> ?>