This repository has been archived on 2024-09-05. You can view files and clone it, but cannot push or open issues or pull requests.
shimmie2/contrib/pools/theme.php

477 lines
14 KiB
PHP
Raw Normal View History

2009-10-09 12:10:58 +00:00
<?php
class PoolsTheme extends Themelet {
/*
2009-11-15 05:00:24 +00:00
* HERE WE ADD THE POOL INFO ON IMAGE
*/
public function pool_info($linksPools) {
2009-10-09 12:10:58 +00:00
global $config, $page;
$editor = 'This post belongs to the '.$linksPools.' pool.';
2009-11-15 05:00:24 +00:00
if($config->get_bool("poolsInfoOnViewImage")) {
if($linksPools <> " ") {
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Pool Info", $editor, "main", 1));
}
}
}
/*
2009-11-15 05:00:24 +00:00
* HERE WE SHOWS THE LIST OF POOLS
*/
public function list_pools(Page $page, $pools, $pageNumber, $totalPages) {
2009-10-09 12:10:58 +00:00
global $user;
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$html = '<table id="poolsList" class="zebra">'.
"<thead><tr>".
2009-11-15 05:00:24 +00:00
"<th>Name</th>".
2009-10-09 12:10:58 +00:00
"<th>Creator</th>".
2009-11-15 05:00:24 +00:00
"<th>Posts</th>".
2009-10-09 12:10:58 +00:00
"<th>Public</th>";
2009-11-15 05:00:24 +00:00
if($user->is_admin()) {
$html .= "<th>Action</th>";
2009-10-09 12:10:58 +00:00
}
$html .= "</tr></thead>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$n = 0;
2009-11-15 05:00:24 +00:00
foreach ($pools as $pool) {
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$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>";
$del_link = '<a href="'.make_link("pool/nuke/".$pool['id']).'">Delete</a>';
if($pool['public'] == "Y") {
$public = "Yes";
} elseif($pool['public'] == "N") {
$public = "No";
}
$html .= "<tr class='$oe'>".
"<td class='left'>".$pool_link."</td>".
"<td>".$user_link."</td>".
2009-10-09 12:10:58 +00:00
"<td>".$pool['posts']."</td>".
2009-11-15 05:00:24 +00:00
"<td>".$public."</td>";
if($user->is_admin()) {
$html .= "<td>".$del_link."</td>";
}
$html .= "</tr>";
2009-10-09 12:10:58 +00:00
}
2009-11-15 05:00:24 +00:00
2009-11-15 06:23:42 +00:00
if(!$user->is_anonymous()) {
$html .= "<tfoot><tr><td colspan='5'><a href='".make_link("pool/new")."'>Create New</a></td></tr></tfoot>";
}
2009-10-09 12:10:58 +00:00
$html .= "</tbody></table>";
2009-11-15 05:00:24 +00:00
$blockTitle = "Pools";
2009-10-09 12:10:58 +00:00
$page->set_title(html_escape($blockTitle));
$page->set_heading(html_escape($blockTitle));
2009-11-15 05:00:24 +00:00
$page->add_block(new Block($blockTitle, $html, "main", 10));
2009-10-09 12:10:58 +00:00
$this->display_paginator($page, "pool/list", null, $pageNumber, $totalPages);
2009-11-15 05:00:24 +00:00
}
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* HERE WE DISPLAY THE NEW POOL COMPOSER
*/
public function new_pool_composer(Page $page) {
$html = "<form action=".make_link("pool/create")." method='POST'>
<table>
<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>Description:</td><td><textarea name='description'></textarea></td></tr>
2009-11-15 06:23:42 +00:00
<tr><td colspan='2'><input type='submit' value='Create' /></td></tr>
2009-11-15 05:00:24 +00:00
</table>
2009-10-09 12:10:58 +00:00
";
2009-11-15 05:00:24 +00:00
$blockTitle = "Create Pool";
2009-10-09 12:10:58 +00:00
$page->set_title(html_escape($blockTitle));
$page->set_heading(html_escape($blockTitle));
2009-11-15 05:00:24 +00:00
$page->add_block(new Block($blockTitle, $html, "main", 10));
}
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* HERE WE DISPLAY THE POOL WITH TITLE DESCRIPTION AND IMAGES WITH PAGINATION
*/
public function view_pool($pools, $images, $pageNumber, $totalPages) {
2009-10-09 12:10:58 +00:00
global $user, $page;
2009-11-15 05:00:24 +00:00
$pool_info = "<table id='poolsList' class='zebra'>".
2009-10-09 12:10:58 +00:00
"<thead><tr>".
2009-11-15 05:00:24 +00:00
"<th class='left'>Title</th>".
2009-10-09 12:10:58 +00:00
"<th class='left'>Description</th>".
"</tr></thead>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$n = 0;
2009-11-15 05:00:24 +00:00
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);
}
}
2009-11-15 06:23:42 +00:00
$this->display_paginator($page, "pool/view/".$pool['id'], null, $pageNumber, $totalPages);
2009-10-09 12:10:58 +00:00
}
$pool_info .= "</tbody></table>";
2009-11-15 06:23:42 +00:00
if(count($pools) == 1) {
$page->set_title("Pool: ".html_escape($pool['title']));
$page->set_heading(html_escape($pool['title']));
$page->add_block(new Block("Viewing Pool", $pool_info, "main", 10));
}
else {
$page->set_title("Viewing Pool");
$page->set_heading("Viewing Pool");
$page->add_block(new Block("Viewing Pool", $pool_info, "main", 10));
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$pool_images = '';
foreach($images as $pair) {
$image = $pair[0];
$thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'.
2009-11-15 05:00:24 +00:00
'<a href="$image_link">'.$thumb_html.'</a>'.
'</span>';
2009-10-09 12:10:58 +00:00
}
2009-11-15 05:00:24 +00:00
//$pool_images .= print_r($images);
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Viewing Posts", $pool_images, "main", 30));
2009-11-15 05:00:24 +00:00
}
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* 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) {
2009-10-09 12:10:58 +00:00
global $user;
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$editor = " <form action='".make_link("pool/import")."' method='POST'>
2009-11-15 05:00:24 +00:00
<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='hidden' name='pool_id' value='".$pool['id']."'>
</form>
<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='hidden' name='pool_id' value='".$pool['id']."'>
</form>
<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='hidden' name='pool_id' value='".$pool['id']."'>
</form>
";
if($user->id == $pool['user_id'] || $user->is_admin()) {
2009-10-09 12:10:58 +00:00
$editor .= "
2009-11-15 05:00:24 +00:00
<script type='text/javascript'>
function confirm_action() {
return confirm('Are you sure that you want to delete this pool?');
}
</script>
<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='hidden' name='pool_id' value='".$pool['id']."'>
</form>
";
2009-10-09 12:10:58 +00:00
}
$page->add_block(new Block("Manage Pool", $editor, "left", 10));
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* HERE WE DISPLAY THE RESULT OF THE SEARCH ON IMPORT
*/
public function pool_result(Page $page, $images, $pool_id) {
2009-10-09 12:10:58 +00:00
$pool_images = "
2009-11-15 05:00:24 +00:00
<script language='JavaScript' type='text/javascript'>
function checkAll()
{
var a=new Array();
a=document.getElementsByName('check[]');
var p=0;
for(i=0;i<a.length;i++) {
a[i].checked = true ;
}
2009-10-09 12:10:58 +00:00
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
function uncheckAll()
{
2009-11-15 05:00:24 +00:00
var a=new Array();
2009-10-09 12:10:58 +00:00
a=document.getElementsByName('check[]');
var p=0;
2009-11-15 05:00:24 +00:00
for(i=0;i<a.length;i++) {
2009-10-09 12:10:58 +00:00
a[i].checked = false ;
}
}
</script>
2009-11-15 05:00:24 +00:00
<script type='text/javascript'>
2009-10-09 12:10:58 +00:00
function confirm_action() {
return confirm('Are you sure you want to add selected posts to this pool?');
}
</script>
2009-11-15 05:00:24 +00:00
";
2009-10-09 12:10:58 +00:00
$pool_images .= "<form action='".make_link("pool/add_posts")."' method='POST' name='checks'>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
foreach($images as $image) {
2009-11-15 05:00:24 +00:00
$thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'.
'<a href="$image_link">'.$thumb_html.'</a>'.
'<br>'.
'<input name="check[]" type="checkbox" value="'.$image->id.'" />'.
'</span>';
2009-10-09 12:10:58 +00:00
}
$pool_images .= "<br>".
2009-11-15 05:00:24 +00:00
"<input type='submit' name='edit' id='edit' value='Add Selected' onclick='return confirm_action()'/>".
"<input type='hidden' name='pool_id' value='".$pool_id."'>".
"</form>";
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Import", $pool_images, "main", 10));
2009-11-15 05:00:24 +00:00
$editor = "
<input type='button' name='CheckAll' value='Check All' onClick='checkAll()'>
<input type='button' name='UnCheckAll' value='Uncheck All' onClick='uncheckAll()'>
";
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Manage Pool", $editor, "left", 10));
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* 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
*/
public function edit_order(Page $page, $pools, $images) {
2009-10-09 12:10:58 +00:00
global $user;
2009-11-15 05:00:24 +00:00
$pool_info = "<table id='poolsList' class='zebra'>".
2009-10-09 12:10:58 +00:00
"<thead><tr>".
2009-11-15 05:00:24 +00:00
"<th class='left'>Title</th>".
2009-10-09 12:10:58 +00:00
"<th class='left'>Description</th>".
"</tr></thead>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$n = 0;
2009-11-15 05:00:24 +00:00
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>".
2009-10-09 12:10:58 +00:00
"</tr>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
}
$pool_info .= "</tbody></table>";
$page->set_title("Sorting Pool");
$page->set_heading("Sorting Pool");
2009-11-15 05:00:24 +00:00
$page->add_block(new Block("Sorting Pool", $pool_info, "main", 10));
2009-10-09 12:10:58 +00:00
$pool_images = "<form action='".make_link("pool/order_posts")."' method='POST' name='checks'>";
$n = 0;
foreach($images as $pair) {
$image = $pair[0];
$thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'.
2009-11-15 05:00:24 +00:00
'<a href="$image_link">'.$thumb_html.'</a>';
$pool_images .= '<br><input name="imgs['.$n.'][]" type="text" width="50px" value="'.$image->image_order.'" />'.
'<input name="imgs['.$n.'][]" type="hidden" value="'.$image->id.'" />';
$n = $n+1;
2009-10-09 12:10:58 +00:00
$pool_images .= '</span>';
}
2009-11-15 05:00:24 +00:00
$pool_images .= "<br>".
"<input type='submit' name='edit' id='edit' value='Order'/>".
"<input type='hidden' name='pool_id' value='".$pool['id']."'>".
"</form>";
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Sorting Posts", $pool_images, "main", 30));
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* 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
*/
public function edit_pool(Page $page, $pools, $images) {
2009-10-09 12:10:58 +00:00
global $user;
2009-11-15 05:00:24 +00:00
$pool_info = "<table id='poolsList' class='zebra'>".
2009-10-09 12:10:58 +00:00
"<thead><tr>".
2009-11-15 05:00:24 +00:00
"<th class='left'>Title</th>".
2009-10-09 12:10:58 +00:00
"<th class='left'>Description</th>".
"</tr></thead>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$n = 0;
2009-11-15 05:00:24 +00:00
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>".
2009-10-09 12:10:58 +00:00
"</tr>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
}
$pool_info .= "</tbody></table>";
$page->set_title("Editing Pool");
$page->set_heading("Editing Pool");
2009-11-15 05:00:24 +00:00
$page->add_block(new Block("Editing Pool", $pool_info, "main", 10));
2009-10-09 12:10:58 +00:00
$pool_images = "
2009-11-15 05:00:24 +00:00
<script language='JavaScript' type='text/javascript'>
function checkAll()
{
var a=new Array();
a=document.getElementsByName('check[]');
var p=0;
for(i=0;i<a.length;i++) {
a[i].checked = true ;
}
2009-10-09 12:10:58 +00:00
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
function uncheckAll()
{
2009-11-15 05:00:24 +00:00
var a=new Array();
2009-10-09 12:10:58 +00:00
a=document.getElementsByName('check[]');
var p=0;
2009-11-15 05:00:24 +00:00
for(i=0;i<a.length;i++) {
2009-10-09 12:10:58 +00:00
a[i].checked = false ;
}
}
</script>
2009-11-15 05:00:24 +00:00
";
2009-10-09 12:10:58 +00:00
$pool_images .= "<form action='".make_link("pool/remove_posts")."' method='POST' name='checks'>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
foreach($images as $pair) {
$image = $pair[0];
$thumb_html = $this->build_thumb_html($image);
$pool_images .= '<span class="thumb">'.
2009-11-15 05:00:24 +00:00
'<a href="$image_link">'.$thumb_html.'</a>';
$pool_images .= '<br><input name="check[]" type="checkbox" value="'.$image->id.'" />';
2009-10-09 12:10:58 +00:00
$pool_images .= '</span>';
}
2009-11-15 05:00:24 +00:00
$pool_images .= "<br>".
"<input type='submit' name='edit' id='edit' value='Remove Selected'/>".
"<input type='hidden' name='pool_id' value='".$pool['id']."'>".
"</form>";
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Editing Posts", $pool_images, "main", 30));
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$editor = "
2009-11-15 05:00:24 +00:00
<input type='button' name='CheckAll' value='Check All' onClick='checkAll()'>
<input type='button' name='UnCheckAll' value='Uncheck All' onClick='uncheckAll()'>";
2009-10-09 12:10:58 +00:00
$page->add_block(new Block("Manage Pool", $editor, "left", 10));
2009-11-15 05:00:24 +00:00
}
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* HERE WE DISPLAY THE HISTORY LIST
*/
public function show_history($histories, $pageNumber, $totalPages) {
2009-10-09 12:10:58 +00:00
global $page;
$html = "<table id='poolsList' class='zebra'>".
"<thead><tr>".
2009-11-15 05:00:24 +00:00
"<th>Pool</th>".
2009-10-09 12:10:58 +00:00
"<th>Post Count</th>".
2009-11-15 05:00:24 +00:00
"<th>Changes</th>".
2009-10-09 12:10:58 +00:00
"<th>Updater</th>".
"<th>Date</th>".
"<th>Action</th>".
"</tr></thead>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$n = 0;
2009-11-15 05:00:24 +00:00
foreach ($histories as $history) {
$oe = ($n++ % 2 == 0) ? "even" : "odd";
$pool_link = "<a href='".make_link("pool/view/".$history['pool_id'])."'>".$history['title']."</a>";
$user_link = "<a href='".make_link("user/".$history['user_name'])."'>".$history['user_name']."</a>";
$revert_link = "<a href='".make_link("pool/revert/".$history['id'])."'>Revert</a>";
if ($history['action'] == 1) {
$prefix = "+";
} elseif ($history['action'] == 0) {
$prefix = "-";
}
$images = trim($history['images']);
$images = explode(" ", $images);
$image_link = "";
foreach ($images as $image) {
$image_link .= "<a href='".make_link("post/view/".$image)."'>".$prefix.$image." </a>";
}
$html .= "<tr class='$oe'>".
"<td class='left'>".$pool_link."</td>".
2009-10-09 12:10:58 +00:00
"<td>".$history['count']."</td>".
2009-11-15 05:00:24 +00:00
"<td>".$image_link."</td>".
2009-10-09 12:10:58 +00:00
"<td>".$user_link."</td>".
2009-11-15 05:00:24 +00:00
"<td>".$history['date']."</td>".
2009-10-09 12:10:58 +00:00
"<td>".$revert_link."</td>".
"</tr>";
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$html .= "</tbody></table>";
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$page->set_title("Recent Changes");
$page->set_heading("Recent Changes");
$page->add_block(new Block("Recent Changes", $html, "main", 10));
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$this->display_paginator($page, "pool/updated", null, $pageNumber, $totalPages);
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
/*
2009-11-15 05:00:24 +00:00
* HERE WE DISPLAY THE ERROR
*/
public function display_error($errMessage) {
2009-10-09 12:10:58 +00:00
global $page;
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
$page->set_title("Error");
$page->set_heading("Error");
$page->add_block(new Block("Error", $errMessage, "main", 10));
}
2009-11-15 05:00:24 +00:00
2009-10-09 12:10:58 +00:00
}
2009-11-15 05:00:24 +00:00
?>