2007-07-05 20:17:29 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
class Themelet {
|
2009-07-19 03:48:25 +00:00
|
|
|
public function display_error(Page $page, $title, $message) {
|
2007-07-05 20:17:29 +00:00
|
|
|
$page->set_title($title);
|
|
|
|
$page->set_heading($title);
|
2007-07-17 17:57:13 +00:00
|
|
|
$page->add_block(new NavBlock());
|
|
|
|
$page->add_block(new Block("Error", $message));
|
2007-07-05 20:17:29 +00:00
|
|
|
}
|
2007-07-21 15:02:14 +00:00
|
|
|
|
2007-07-21 15:19:02 +00:00
|
|
|
|
2009-07-19 03:48:25 +00:00
|
|
|
public function display_permission_denied(Page $page) {
|
2011-08-30 20:38:46 +00:00
|
|
|
$page->add_http_header("HTTP/1.0 403 Permission Denied");
|
2008-10-18 10:49:16 +00:00
|
|
|
$this->display_error($page, "Permission Denied", "You do not have permission to access this page");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2009-07-19 03:48:25 +00:00
|
|
|
public function build_thumb_html(Image $image, $query=null) {
|
2007-10-26 01:35:53 +00:00
|
|
|
global $config;
|
|
|
|
$h_view_link = make_link("post/view/{$image->id}", $query);
|
|
|
|
$h_thumb_link = $image->get_thumb_link();
|
2011-12-16 21:29:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
// Removes the size tag if the file is an mp3
|
|
|
|
if($image->ext == 'mp3'){
|
|
|
|
$iitip = $image->get_tooltip();
|
|
|
|
$mp3tip = array("0x0");
|
|
|
|
$h_tip = str_replace($mp3tip, " ", $iitip);
|
|
|
|
|
|
|
|
// Makes it work with a variation of the default tooltips (I.E $tags // $filesize // $size)
|
|
|
|
$justincase = array(" //", "// ", " //", "// ", " ");
|
|
|
|
if(strstr($h_tip, " ")){
|
|
|
|
$h_tip = html_escape(str_replace($justincase, "", $h_tip));
|
|
|
|
}else{
|
|
|
|
$h_tip = html_escape($h_tip);
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
$h_tip = html_escape($image->get_tooltip());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// If file is flash or svg then sets thumbnail to max size.
|
|
|
|
if($image->ext == 'swf' || $image->ext == 'svg'){
|
2011-12-21 20:52:06 +00:00
|
|
|
$tsize = get_thumbnail_size($config->get_int('thumb_width'), $config->get_int('thumb_height')); }
|
2011-12-16 16:34:23 +00:00
|
|
|
else{
|
|
|
|
$tsize = get_thumbnail_size($image->width, $image->height); }
|
2011-12-16 21:29:46 +00:00
|
|
|
|
2007-10-26 01:35:53 +00:00
|
|
|
return "<a href='$h_view_link'><img title='$h_tip' alt='$h_tip' ".
|
|
|
|
"width='{$tsize[0]}' height='{$tsize[1]}' src='$h_thumb_link' /></a>";
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2009-07-19 03:48:25 +00:00
|
|
|
public function display_paginator(Page $page, $base, $query, $page_number, $total_pages) {
|
2007-08-01 16:21:14 +00:00
|
|
|
if($total_pages == 0) $total_pages = 1;
|
2007-07-21 15:02:14 +00:00
|
|
|
$body = $this->build_paginator($page_number, $total_pages, $base, $query);
|
|
|
|
$page->add_block(new Block(null, $body, "main", 90));
|
|
|
|
}
|
|
|
|
|
|
|
|
private function gen_page_link($base_url, $query, $page, $name) {
|
|
|
|
$link = make_link("$base_url/$page", $query);
|
|
|
|
return "<a href='$link'>$name</a>";
|
|
|
|
}
|
|
|
|
|
|
|
|
private function gen_page_link_block($base_url, $query, $page, $current_page, $name) {
|
|
|
|
$paginator = "";
|
2007-07-21 15:19:02 +00:00
|
|
|
if($page == $current_page) $paginator .= "<b>$page</b>";
|
|
|
|
else $paginator .= $this->gen_page_link($base_url, $query, $page, $name);
|
2007-07-21 15:02:14 +00:00
|
|
|
return $paginator;
|
|
|
|
}
|
|
|
|
|
|
|
|
private function build_paginator($current_page, $total_pages, $base_url, $query) {
|
|
|
|
$next = $current_page + 1;
|
|
|
|
$prev = $current_page - 1;
|
|
|
|
$rand = rand(1, $total_pages);
|
|
|
|
|
2007-07-23 04:10:28 +00:00
|
|
|
$at_start = ($current_page <= 3 || $total_pages <= 3);
|
|
|
|
$at_end = ($current_page >= $total_pages -2);
|
2007-07-21 15:02:14 +00:00
|
|
|
|
2007-07-21 15:19:02 +00:00
|
|
|
$first_html = $at_start ? "" : $this->gen_page_link($base_url, $query, 1, "1");
|
|
|
|
$prev_html = $at_start ? "" : $this->gen_page_link($base_url, $query, $prev, "<<");
|
|
|
|
$next_html = $at_end ? "" : $this->gen_page_link($base_url, $query, $next, ">>");
|
|
|
|
$last_html = $at_end ? "" : $this->gen_page_link($base_url, $query, $total_pages, "$total_pages");
|
2007-07-21 15:02:14 +00:00
|
|
|
|
2007-07-21 15:19:02 +00:00
|
|
|
$start = $current_page-2 > 1 ? $current_page-2 : 1;
|
|
|
|
$end = $current_page+2 <= $total_pages ? $current_page+2 : $total_pages;
|
2007-07-21 15:02:14 +00:00
|
|
|
|
|
|
|
$pages = array();
|
|
|
|
foreach(range($start, $end) as $i) {
|
|
|
|
$pages[] = $this->gen_page_link_block($base_url, $query, $i, $current_page, $i);
|
|
|
|
}
|
2007-07-21 15:19:02 +00:00
|
|
|
$pages_html = implode(" ", $pages);
|
|
|
|
|
|
|
|
if(strlen($first_html) > 0) $pdots = "...";
|
|
|
|
else $pdots = "";
|
|
|
|
|
|
|
|
if(strlen($last_html) > 0) $ndots = "...";
|
|
|
|
else $ndots = "";
|
2007-07-21 15:02:14 +00:00
|
|
|
|
2007-08-27 23:02:03 +00:00
|
|
|
return "<div id='paginator'>$prev_html $first_html $pdots $pages_html $ndots $last_html $next_html</div>";
|
2007-07-21 15:02:14 +00:00
|
|
|
}
|
2007-07-05 20:17:29 +00:00
|
|
|
}
|
|
|
|
?>
|