Merge branch 'lite_theme'
This commit is contained in:
		
						commit
						124fbc8f6f
					
				
							
								
								
									
										12
									
								
								themes/lite/comment.theme.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								themes/lite/comment.theme.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class CustomCommentListTheme extends CommentListTheme { | ||||||
|  | 	protected function comment_to_html($comment, $trim=false) { | ||||||
|  | 		return $this->rr(parent::comment_to_html($comment, $trim)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	protected function build_postbox($image_id) { | ||||||
|  | 		return $this->rr(parent::build_postbox($image_id)); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										9
									
								
								themes/lite/custompage.class.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								themes/lite/custompage.class.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class CustomPage extends Page { | ||||||
|  | 	var $left_enabled = true; | ||||||
|  | 	public function disable_left() { | ||||||
|  | 		$this->left_enabled = false; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										262
									
								
								themes/lite/layout.class.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										262
									
								
								themes/lite/layout.class.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,262 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  | * Name: Lite Theme | ||||||
|  | * Author: Zach Hall <zach@sosguy.net> | ||||||
|  | * Link: http://seemslegit.com | ||||||
|  | * License: GPLv2 | ||||||
|  | * Description: A mashup of Default, Danbooru, the interface on qwebirc, and | ||||||
|  | * 	       some other sites, packaged in a light blue color. | ||||||
|  | */ | ||||||
|  | class Layout { | ||||||
|  | 	/** | ||||||
|  | 	 * turns the Page into HTML | ||||||
|  | 	 */ | ||||||
|  | 	public function display_page(Page $page) { | ||||||
|  | 		global $config, $user; | ||||||
|  | 
 | ||||||
|  | 		$theme_name = $config->get_string('theme', 'lite'); | ||||||
|  | 		$site_name = $config->get_string('title'); | ||||||
|  | 		$data_href = get_base_href(); | ||||||
|  | 		$contact_link = $config->get_string('contact_link'); | ||||||
|  | 
 | ||||||
|  | 		$header_html = ""; | ||||||
|  | 		foreach($page->headers as $line) { | ||||||
|  | 			$header_html .= "\t\t$line\n"; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		$menu = "<div class='menu'>
 | ||||||
|  | 			<script type='text/javascript' src='$data_href/themes/$theme_name/wz_tooltip.js'></script> | ||||||
|  | 			<a href='".make_link()."' onmouseover='Tip('Home', BGCOLOR, '#C3D2E0', FADEIN, 100)' onmouseout='UnTip()'><img src='$data_href/favicon.ico' style='position: relative; top: 3px;'></a> | ||||||
|  | 			<b>{$site_name}</b> ";
 | ||||||
|  | 		 | ||||||
|  | 		// Custom links: These appear on the menu.
 | ||||||
|  | 		$custom_links = ""; | ||||||
|  | 		if($user->is_anonymous()) { | ||||||
|  | 			$custom_links .= $this->navlinks(make_link('user_admin/login'), "Account", array("user", "user_admin", "setup", "admin", "profile")); | ||||||
|  | 		} else { | ||||||
|  | 			$custom_links .= $this->navlinks(make_link('user'), "Account", array("user", "setup", "user_admin", "admin", "profile")); | ||||||
|  | 		} | ||||||
|  | 		$custom_links .= $this->navlinks(make_link('post/list'), "Posts", array("post", "view")); | ||||||
|  | 		$custom_links .= $this->navlinks(make_link('comment/list'), "Comments", array("comment")); | ||||||
|  | 		$custom_links .= $this->navlinks(make_link('tags'), "Tags", array("tags")); | ||||||
|  | 		$custom_links .= $this->navlinks(make_link('upload'), "Upload", array("upload")); | ||||||
|  | 		if(class_exists("Wiki")) { | ||||||
|  | 			$custom_links .= $this->navlinks(make_link('wiki/rules'), "Rules", array("wiki/rules")); | ||||||
|  | 			$custom_links .= $this->navlinks(make_link('wiki'), "Wiki", array("wiki")); | ||||||
|  | 		} | ||||||
|  | 		$menu .= "$custom_links</div>"; | ||||||
|  | 		 | ||||||
|  | 		$left_block_html = ""; | ||||||
|  | 		$main_block_html = ""; | ||||||
|  | 		$sub_block_html  = ""; | ||||||
|  | 		$user_block_html = ""; | ||||||
|  | 
 | ||||||
|  | 		foreach($page->blocks as $block) { | ||||||
|  | 			switch($block->section) { | ||||||
|  | 				case "left": | ||||||
|  | 					$left_block_html .= $this->block_to_html($block, true, "left"); | ||||||
|  | 					break; | ||||||
|  | 				case "main": | ||||||
|  | 					$main_block_html .= $this->block_to_html($block, false, "main"); | ||||||
|  | 					break; | ||||||
|  | 				case "user": | ||||||
|  | 					$user_block_html .= $block->body; | ||||||
|  | 					break; | ||||||
|  | 				case "subheading": | ||||||
|  | 					$sub_block_html .= $this->block_to_html($block, false, "main"); | ||||||
|  | 					break; | ||||||
|  | 				default: | ||||||
|  | 					print "<p>error: {$block->header} using an unknown section ({$block->section})"; | ||||||
|  | 					break; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		$custom_sublinks = "<div class='sbar'>"; | ||||||
|  | 		$cs = null; | ||||||
|  | 		// hack
 | ||||||
|  | 		global $user; | ||||||
|  | 		$username = url_escape($user->name); | ||||||
|  | 		// hack
 | ||||||
|  | 		$qp = _get_query_parts(); | ||||||
|  | 		$hw = class_exists("Wiki"); | ||||||
|  | 		// php sucks
 | ||||||
|  | 		switch($qp[0]) { | ||||||
|  | 			default: | ||||||
|  | 				$cs = $user_block_html; | ||||||
|  | 				break; | ||||||
|  | 			case "": | ||||||
|  | 				# FIXME: this assumes that the front page is
 | ||||||
|  | 				# post/list; in 99% of case it will either be
 | ||||||
|  | 				# post/list or home, and in the latter case
 | ||||||
|  | 				# the subnav links aren't shown, but it would
 | ||||||
|  | 				# be nice to be correct
 | ||||||
|  | 			case "post": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('post/list')."'>All</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("post/list/favorited_by=$username/1")."'>My Favorites</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('rss/images')."'>Feed</a>"; | ||||||
|  | 				if($hw) $cs .= "<a class='tab' href='".make_link("wiki/posts")."'>Help</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "comment": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('comment/list')."'>All</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('rss/comments')."'>Feed</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("ext_doc/comment")."'>Help</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "pool": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('pool/list')."'>List</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("pool/new")."'>Create</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("pool/updated")."'>Changes</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("ext_doc/pools")."'>Help</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "wiki": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('wiki')."'>Index</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("wiki/rules")."'>Rules</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("ext_doc/wiki")."'>Help</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "tags": | ||||||
|  | 			case "alias": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('tags/map')."'>Map</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('tags/alphabetic')."'>Alphabetic</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('tags/popularity')."'>Popularity</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('tags/categories')."'>Categories</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('alias/list')."'>Aliases</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link("ext_doc/tag_edit")."'>Help</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "upload": | ||||||
|  | 				if($hw) $cs .= "<a class='tab' href='".make_link("wiki/upload_guidelines")."'>Guidelines</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "random": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('random/view')."'>Shuffle</a>"; | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('random/download')."'>Download</a>"; | ||||||
|  | 				break; | ||||||
|  | 			case "featured": | ||||||
|  | 				$cs .= "<a class='tab' href='".make_link('featured/download')."'>Download</a>"; | ||||||
|  | 				break; | ||||||
|  | 		} | ||||||
|  | 		if($cs == "") {$custom_sublinks = "";} else { | ||||||
|  | 		$custom_sublinks .= "$cs</div>";} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		$debug = get_debug_info(); | ||||||
|  | 
 | ||||||
|  | 		$contact = empty($contact_link) ? "" : "<br><a href='$contact_link'>Contact</a>"; | ||||||
|  | 		$subheading = empty($page->subheading) ? "" : "<div id='subtitle'>{$page->subheading}</div>"; | ||||||
|  | 
 | ||||||
|  | 		$wrapper = ""; | ||||||
|  | 		if(strlen($page->heading) > 100) { | ||||||
|  | 			$wrapper = ' style="height: 3em; overflow: auto;"'; | ||||||
|  | 		} | ||||||
|  | 		if($page->left_enabled==false) { | ||||||
|  | 			$left_block_html = ""; | ||||||
|  | 			$main_block_html = "<div id='body_noleft'>$main_block_html</div>"; | ||||||
|  | 		} else { | ||||||
|  | 			$left_block_html = "<div id='nav'>$left_block_html</div>"; | ||||||
|  | 			$main_block_html = "<div id='body'>$main_block_html</div>"; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		print <<<EOD | ||||||
|  | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> | ||||||
|  | <html> | ||||||
|  | 	<head> | ||||||
|  | 		<title>{$page->title}</title> | ||||||
|  | 		<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> | ||||||
|  | 		<link rel="stylesheet" href="$data_href/themes/$theme_name/style.css" type="text/css"> | ||||||
|  | 		$header_html | ||||||
|  | 	</head> | ||||||
|  | 
 | ||||||
|  | 	<body> | ||||||
|  | 		$menu | ||||||
|  | 		$custom_sublinks | ||||||
|  | 		 | ||||||
|  | 		$sub_block_html | ||||||
|  | 
 | ||||||
|  | 		$left_block_html | ||||||
|  | 		$main_block_html | ||||||
|  | 		 | ||||||
|  | 
 | ||||||
|  | 		<div id="footer"> | ||||||
|  | 			Images © their respective owners, | ||||||
|  | 			<a href="http://code.shishnet.org/shimmie2/">Shimmie</a> © | ||||||
|  | 			<a href="http://www.shishnet.org/">Shish</a> & Co 2007-2010, | ||||||
|  | 			based on the Danbooru concept.<br /> | ||||||
|  | 			Lite Theme by <a href="http://seemslegit.com">Zach</a> | ||||||
|  | 			$debug | ||||||
|  | 			$contact | ||||||
|  | 		</div> | ||||||
|  | 	</body> | ||||||
|  | </html> | ||||||
|  | EOD; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * A handy function which does exactly what it says in the method name | ||||||
|  | 	 */ | ||||||
|  | 	private function block_to_html($block, $hidable=false, $salt="") { | ||||||
|  | 		$h = $block->header; | ||||||
|  | 		$b = $block->body; | ||||||
|  | 		$html = ""; | ||||||
|  | 		$i = str_replace(' ', '_', $h) . $salt; | ||||||
|  | 		if($hidable) $html .= " | ||||||
|  | 			<script><!-- | ||||||
|  | 			$(document).ready(function() { | ||||||
|  | 				$(\"#$i-toggle\").click(function() { | ||||||
|  | 					$(\"#$i\").slideToggle(\"slow\", function() { | ||||||
|  | 						if($(\"#$i\").is(\":hidden\")) { | ||||||
|  | 							$.cookie(\"$i-hidden\", 'true', {path: '/'});
 | ||||||
|  | 						} | ||||||
|  | 						else { | ||||||
|  | 							$.cookie(\"$i-hidden\", 'false', {path: '/'});
 | ||||||
|  | 						} | ||||||
|  | 					}); | ||||||
|  | 				}); | ||||||
|  | 				if($.cookie(\"$i-hidden\") == 'true') { | ||||||
|  | 					$(\"#$i\").hide(); | ||||||
|  | 				} | ||||||
|  | 			}); | ||||||
|  | 			//--></script>
 | ||||||
|  | 		";
 | ||||||
|  | 		if(!is_null($h)) { | ||||||
|  | 			if($salt == "main") { | ||||||
|  | 				$html .= "<div class='maintop navside tab' id='$i-toggle'>$h</div>"; | ||||||
|  | 			} else { | ||||||
|  | 				$html .= "<div class='navtop navside tab' id='$i-toggle'>$h</div>"; | ||||||
|  | 			} | ||||||
|  | 			} | ||||||
|  | 		if(!is_null($b)) { | ||||||
|  | 			//if(strpos($b, "rrcontent")) {
 | ||||||
|  | 			if($salt =="main") { | ||||||
|  | 				$html .= "<div class='blockbody' id='$i'>$b</div>"; | ||||||
|  | 			} | ||||||
|  | 			else { | ||||||
|  | 				$html .= " | ||||||
|  | 					<div class='navside tab' id='$i'>$b</div> | ||||||
|  | 				";
 | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return $html; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	private function navlinks($link, $desc, $pages_matched) { | ||||||
|  | 	/** | ||||||
|  | 	 * Woo! We can actually SEE THE CURRENT PAGE!! | ||||||
|  | 	 */ | ||||||
|  | 		$html = null; | ||||||
|  | 		$url = $_GET['q']; | ||||||
|  | 
 | ||||||
|  | 		$re1='.*?'; | ||||||
|  | 		$re2='((?:[a-z][a-z]+))'; | ||||||
|  | 
 | ||||||
|  | 		if ($c=preg_match_all ("/".$re1.$re2."/is", $url, $matches)) { | ||||||
|  | 			$url=$matches[1][0]; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		for($i=0;$i<count($pages_matched);$i++) { | ||||||
|  | 			if($url == $pages_matched[$i]) { | ||||||
|  | 				$html = "<a class='tab-selected' href='$link'>$desc</a>"; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		if(is_null($html)) {$html = "<a class='tab' href='$link'>$desc</a>";} | ||||||
|  | 		return $html; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										37
									
								
								themes/lite/setup.theme.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								themes/lite/setup.theme.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  |  * A customised version of the Setup theme | ||||||
|  |  */ | ||||||
|  | class CustomSetupTheme extends SetupTheme { | ||||||
|  | 	protected function sb_to_html(SetupBlock $block) { | ||||||
|  | 		$h = $block->header; | ||||||
|  | 		$b = $block->body; | ||||||
|  | 		$i = preg_replace('/[^a-zA-Z0-9]/', '_', $h) . "-setup"; | ||||||
|  | 		$html = " | ||||||
|  | 			<script><!-- | ||||||
|  | 			$(document).ready(function() { | ||||||
|  | 				$(\"#$i-toggle\").click(function() { | ||||||
|  | 					$(\"#$i\").slideToggle(\"slow\", function() { | ||||||
|  | 						if($(\"#$i\").is(\":hidden\")) { | ||||||
|  | 							$.cookie(\"$i-hidden\", 'true', {path: '/'});
 | ||||||
|  | 						} | ||||||
|  | 						else { | ||||||
|  | 							$.cookie(\"$i-hidden\", 'false', {path: '/'});
 | ||||||
|  | 						} | ||||||
|  | 					}); | ||||||
|  | 				}); | ||||||
|  | 				if($.cookie(\"$i-hidden\") == 'true') { | ||||||
|  | 					$(\"#$i\").hide(); | ||||||
|  | 				} | ||||||
|  | 			}); | ||||||
|  | 			//--></script>
 | ||||||
|  | 			<div class='setupblock'> | ||||||
|  | 				<b id='$i-toggle'>$h</b> | ||||||
|  | 				<br><div id='$i'>$b</div> | ||||||
|  | 			</div> | ||||||
|  | 		";
 | ||||||
|  | 
 | ||||||
|  | 		return $this->rr($html); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										370
									
								
								themes/lite/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										370
									
								
								themes/lite/style.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,370 @@ | |||||||
|  | /** | ||||||
|  |  * Some style elements borrowed from the QWebIRC project | ||||||
|  |  * http://qwebirc.org/ | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | BODY { | ||||||
|  | 	background: #F0F7FF; | ||||||
|  | 	font-family: sans-serif; | ||||||
|  | 	font-size: 14px; | ||||||
|  | 	margin: 0px; | ||||||
|  | } | ||||||
|  | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
|  | 3                            menu bar                            * | ||||||
|  | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||||
|  | .menu { | ||||||
|  | 	border-bottom: 1px solid #C3D2E0; | ||||||
|  | 	margin-top: 0px; | ||||||
|  | 	margin-bottom: 0px; | ||||||
|  | 	padding: 4px; | ||||||
|  | 	background: #E3EFFA; | ||||||
|  | } | ||||||
|  | a.tab, a.tab:visited { | ||||||
|  | 	color:#000000; | ||||||
|  | 	text-decoration:none; | ||||||
|  | } | ||||||
|  | a.tab:hover, a.tab:active, .tab-selected { | ||||||
|  | 	color:#000000; | ||||||
|  | 	background-color:#FFFFFE; | ||||||
|  | 	text-decoration:none; | ||||||
|  | } | ||||||
|  | .tab, .tab-selected, .tframe, #tips { | ||||||
|  | 	-moz-border-radius:4px; | ||||||
|  | 	-webkit-border-radius:4px; | ||||||
|  | 	border:1px solid #C8D1DB; | ||||||
|  | 	padding:4px; | ||||||
|  | 	cursor:default; | ||||||
|  | 	margin-right:2px; | ||||||
|  | 	padding:2px; | ||||||
|  | } | ||||||
|  | .tframe { | ||||||
|  | 	margin:4px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
|  | 3                        secondary bars                          * | ||||||
|  | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||||
|  | .sbar { | ||||||
|  | 	border-bottom: 1px solid #C3D2E0; | ||||||
|  | 	margin-top: 0px; | ||||||
|  | 	margin-bottom: 16px; | ||||||
|  | 	padding: 4px; | ||||||
|  | 	background: #CEDFF0; | ||||||
|  | 	text-align: left; | ||||||
|  | } | ||||||
|  | .sfoot { | ||||||
|  | 	border-top: 1px solid #C3D2E0; | ||||||
|  | 	margin-top: 0px; | ||||||
|  | 	margin-bottom: 0px; | ||||||
|  | 	padding: 4px; | ||||||
|  | 	background: #CEDFF0; | ||||||
|  | 	text-align: right; | ||||||
|  | } | ||||||
|  | .navside { | ||||||
|  | 	background:none repeat scroll 0 0 #CEDFF0; | ||||||
|  | 	text-align:left; | ||||||
|  | 	padding:4px; | ||||||
|  | 	font-size:85%; | ||||||
|  | 	border:1px solid #C3D2E0; | ||||||
|  | 	margin-bottom:5px; | ||||||
|  | 	-moz-border-radius:4px; | ||||||
|  | 	-webkit-border-radius:4px; | ||||||
|  | } | ||||||
|  | .highlighted { | ||||||
|  | 	background:none repeat scroll 0 0 #CEDFF0; | ||||||
|  | 	padding:4px; | ||||||
|  | 	border:1px solid #C3D2E0; | ||||||
|  | 	margin:5px; | ||||||
|  | 	-moz-border-radius:4px; | ||||||
|  | 	-webkit-border-radius:4px; | ||||||
|  | } | ||||||
|  | .navtop, .maintop { | ||||||
|  | 	font-size:110%; | ||||||
|  | 	border-bottom:0 none; | ||||||
|  | 	margin:0 0 2px 0; /* top right bottom left */ | ||||||
|  | 	padding:2px 10px; | ||||||
|  | 	position:relative; | ||||||
|  | 	left:0px; | ||||||
|  | 	width:50%; | ||||||
|  | } | ||||||
|  | .navtop { | ||||||
|  | 	top:7px; | ||||||
|  | } | ||||||
|  | .maintop { | ||||||
|  | 	top:0px; | ||||||
|  | 	margin-top:5px; | ||||||
|  | 	margin-bottom:5px; | ||||||
|  | } | ||||||
|  | #tips, #blotter1, #blotter2 { | ||||||
|  | 	margin-right:16px; | ||||||
|  | 	margin-left:16px; | ||||||
|  | } | ||||||
|  | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
|  | 3                  things common to all pages                    * | ||||||
|  | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||||
|  | H1 A { | ||||||
|  | 	color: black; | ||||||
|  | } | ||||||
|  | A, A:hover, A:active, A:visited { | ||||||
|  | 	color: #2860AD; | ||||||
|  | } | ||||||
|  | H3 { | ||||||
|  | 	text-align: center; | ||||||
|  | 	margin: 0px; | ||||||
|  | } | ||||||
|  | THEAD { | ||||||
|  | 	font-weight: bold; | ||||||
|  | } | ||||||
|  | TD { | ||||||
|  | 	vertical-align: top; | ||||||
|  | 	text-align: left; | ||||||
|  | } | ||||||
|  | CODE { | ||||||
|  | 	background: #DEDEDE; | ||||||
|  | 	font-size: 0.8em; | ||||||
|  | } | ||||||
|  | #subtitle { | ||||||
|  | 	width: 256px; | ||||||
|  | 	font-size: 0.75em; | ||||||
|  | 	margin: auto; | ||||||
|  | 	margin-top: -16px; | ||||||
|  | 	text-align: center; | ||||||
|  | 	border: 1px solid black; | ||||||
|  | 	border-top: none; | ||||||
|  | 	background: #DDD; | ||||||
|  | } | ||||||
|  | #body SELECT {width: 150px;} | ||||||
|  | TD>INPUT[type="submit"] {width: 100%;} | ||||||
|  | TD>INPUT[type="text"] {width: 100%;} | ||||||
|  | TD>INPUT[type="password"] {width: 100%;} | ||||||
|  | TD>TEXTAREA {width: 100%;} | ||||||
|  | TD>SELECT {width: 100%;} | ||||||
|  | [onclick] {cursor:pointer;} | ||||||
|  | 
 | ||||||
|  | TABLE.zebra {border-spacing: 0px; border: 2px solid #C3D2E0;} | ||||||
|  | TABLE.zebra TD, TABLE.zebra TH {vertical-align: middle; padding: 4px;} | ||||||
|  | TABLE.zebra THEAD TD, TABLE.zebra THEAD TH {border-bottom: 2px solid #C3D2E0;} | ||||||
|  | TABLE.zebra TFOOT TD, TABLE.zebra TFOOT TH {border-top: 2px solid #C3D2E0;} | ||||||
|  | TABLE.zebra TR TD {border-bottom: 1px solid #C3D2E0;} | ||||||
|  | TABLE.zebra TR.odd {background: #CEDFF0;} | ||||||
|  | TABLE.zebra TR.even {background: #F0F7FF;} | ||||||
|  | 
 | ||||||
|  | INPUT, TEXTAREA { | ||||||
|  | 	-moz-border-radius:4px; | ||||||
|  | 	-webkit-border-radius:4px; | ||||||
|  | 	border:1px solid #C8D1DB; | ||||||
|  | 	padding:4px; | ||||||
|  | 	cursor:default; | ||||||
|  | 	margin-right:2px; | ||||||
|  | 	padding:2px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | INPUT:hover, TEXTAREA:hover { | ||||||
|  | 	background-color:#FFFFFF; | ||||||
|  | 	text-decoration:none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #footer { | ||||||
|  | 	clear: both; | ||||||
|  | 	padding: 8px; | ||||||
|  | 	font-size: 0.7em; | ||||||
|  | 	text-align: right; | ||||||
|  | 	border-top: 1px solid #C3D2E0; | ||||||
|  | 	background: #E3EFFA; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | *[onclick] {cursor: pointer;} | ||||||
|  | IMG {border: none;} | ||||||
|  | FORM {margin: 0px;} | ||||||
|  | A {text-decoration: none;} | ||||||
|  | A:hover {text-decoration: underline;} | ||||||
|  | 
 | ||||||
|  | BLOCKQUOTE { | ||||||
|  | 	border: 1px solid #C3D2E0; | ||||||
|  | 	padding: 8px; | ||||||
|  | 	background: #E3EFFA; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | UL { | ||||||
|  | 	text-align: left; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
|  | *             the navigation bar, and all its blocks             * | ||||||
|  | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||||
|  | 
 | ||||||
|  | #nav { | ||||||
|  | 	width: 200px; | ||||||
|  | 	float: left; | ||||||
|  | 	text-align: center; | ||||||
|  | 	margin-left: 16px; | ||||||
|  | } | ||||||
|  | #nav .blockbody { | ||||||
|  | 	font-size: 0.85em; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | #nav TABLE { | ||||||
|  | 	width: 190px; | ||||||
|  | } | ||||||
|  | #nav TD { | ||||||
|  | 	vertical-align: middle; | ||||||
|  | } | ||||||
|  | #nav INPUT { | ||||||
|  | 	width: 95%; | ||||||
|  | 	padding: 0px; | ||||||
|  | } | ||||||
|  | #nav SELECT { | ||||||
|  | 	width: 100%; | ||||||
|  | 	padding: 0px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #comments P { | ||||||
|  | 	text-align: left; | ||||||
|  | 	width: 150px; | ||||||
|  | 	max-width: 150px; | ||||||
|  | 	overflow: hidden; | ||||||
|  | } | ||||||
|  | .comment { | ||||||
|  | 	text-align: left; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .more:after { | ||||||
|  | 	content: " >>>"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .tag_count:before { | ||||||
|  | 	content: "("; | ||||||
|  | } | ||||||
|  | .tag_count:after { | ||||||
|  | 	content: ")"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .paginator { | ||||||
|  | 	clear: both; | ||||||
|  | 	padding: 4px; | ||||||
|  | 	border-right: 1px solid #C3D2E0; | ||||||
|  | 	border-left: 1px solid #C3D2E0; | ||||||
|  | } | ||||||
|  | .paginator A { | ||||||
|  | 	-moz-border-radius:4px; | ||||||
|  | 	-webkit-border-radius:4px; | ||||||
|  | 	color: #000; | ||||||
|  | 	border:1px solid #C8D1DB; | ||||||
|  | 	padding:4px; | ||||||
|  | 	cursor:default; | ||||||
|  | 	margin-right:2px; | ||||||
|  | 	padding:2px; | ||||||
|  | } | ||||||
|  | .paginator A:hover { | ||||||
|  | 	background-color:#FFFFFF; | ||||||
|  | 	text-decoration:none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
|  | *                 the main part of each page                     * | ||||||
|  | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||||
|  | 
 | ||||||
|  | #body { | ||||||
|  | 	margin-left: 226px; | ||||||
|  | 	margin-right: 16px; | ||||||
|  | 	text-align: left; | ||||||
|  | 	height: 1%; | ||||||
|  | } | ||||||
|  | #body_noleft { | ||||||
|  | 	margin-left: 4px; | ||||||
|  | 	margin-right: 16px; | ||||||
|  | 	margin-bottom:16px; | ||||||
|  | 	padding-left:4px; | ||||||
|  | 	padding-right:4px; | ||||||
|  | 	text-align: left; | ||||||
|  | 	height: 1%; | ||||||
|  | } | ||||||
|  | #body TABLE { | ||||||
|  | 	width: 90%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
|  | *                     specific page types                        * | ||||||
|  | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||||
|  | 
 | ||||||
|  | #pagelist { | ||||||
|  | 	margin-top: 32px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #tagmap A { | ||||||
|  | 	padding: 8px 4px 8px 4px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /*.rr {text-align: left; background: #E3EFFA; margin: 8px;} | ||||||
|  | .rrtop     {background: url("circle-tl.png") no-repeat top left;} | ||||||
|  | .rrtop div {background: url("circle-tr.png") no-repeat top right;} | ||||||
|  | .rrbot     {background: url("circle-bl.png") no-repeat bottom left;} | ||||||
|  | .rrbot div {background: url("circle-br.png") no-repeat bottom right;} | ||||||
|  | .rrtop, .rrtop div, .rrbot, .rrbot div {height: 8px; width: 100%;} | ||||||
|  | .rrcontent {margin: 0px 8px; text-align: left;} | ||||||
|  | 
 | ||||||
|  | .hrr {text-align: left; background: #C3D2E0; margin: 8px;} | ||||||
|  | .hrrtop     {background: url("circle-tl.png") no-repeat top left;} | ||||||
|  | .hrrtop div {background: url("circle-tr.png") no-repeat top right;} | ||||||
|  | .hrrbot     {background: url("circle-bl.png") no-repeat bottom left;} | ||||||
|  | .hrrbot div {background: url("circle-br.png") no-repeat bottom right;} | ||||||
|  | .hrrtop, .hrrtop div, .hrrbot, .hrrbot div {height: 8px; width: 100%;} | ||||||
|  | .hrrcontent {margin: 0px 8px;}*/ | ||||||
|  | 
 | ||||||
|  | .setupblock { | ||||||
|  | 	text-align: center; | ||||||
|  | 	width: 350px; | ||||||
|  | } | ||||||
|  | .setupblock TEXTAREA { | ||||||
|  | 	width: 300px; | ||||||
|  | 	font-size: 0.75em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .helpable { | ||||||
|  | 	border-bottom: 1px dashed gray; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .ok { | ||||||
|  | 	background: #AFA; | ||||||
|  | } | ||||||
|  | .bad { | ||||||
|  | 	background: #FAA; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #nav .thumbblock { | ||||||
|  | 	float: none; | ||||||
|  | 	height: auto; | ||||||
|  | } | ||||||
|  | #nav .thumb { | ||||||
|  | 	margin-bottom: 0px; | ||||||
|  | } | ||||||
|  | .thumbblock { | ||||||
|  | 	width: 220px; | ||||||
|  | 	height: 220px; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	float: left; | ||||||
|  | } | ||||||
|  | .thumb { | ||||||
|  | 	display: inline-block; | ||||||
|  | 	text-align: center; | ||||||
|  | 	margin-bottom: 32px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #downtime #message, #downtime #login { | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | #downtime H3 { | ||||||
|  | 	margin-top: 32px; | ||||||
|  | } | ||||||
|  | #downtime #login_table { | ||||||
|  | 	margin: auto; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .tooltip{ | ||||||
|  |    position:absolute; | ||||||
|  |    top:0; | ||||||
|  |    left:0; | ||||||
|  |    z-index:3; | ||||||
|  |    display:none; | ||||||
|  | } | ||||||
							
								
								
									
										116
									
								
								themes/lite/themelet.class.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								themes/lite/themelet.class.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,116 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  |  * A collection of common functions for theme parts | ||||||
|  |  */ | ||||||
|  | class Themelet { | ||||||
|  | 	/** | ||||||
|  | 	 * Generic error message display | ||||||
|  | 	 */ | ||||||
|  | 	public function display_error(Page $page, $title, $message) { | ||||||
|  | 		$page->set_title($title); | ||||||
|  | 		$page->set_heading($title); | ||||||
|  | 		$page->add_block(new NavBlock()); | ||||||
|  | 		$page->add_block(new Block("Error", $message)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * A specific, common error message | ||||||
|  | 	 */ | ||||||
|  | 	public function display_permission_denied(Page $page) { | ||||||
|  | 		header("HTTP/1.0 403 Permission Denied"); | ||||||
|  | 		$this->display_error($page, "Permission Denied", "You do not have permission to access this page"); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Generic thumbnail code; returns HTML rather than adding | ||||||
|  | 	 * a block since thumbs tend to go inside blocks... | ||||||
|  | 	 */ | ||||||
|  | 	public function build_thumb_html(Image $image, $query=null) { | ||||||
|  | 		global $config; | ||||||
|  | 		$i_id = int_escape($image->id); | ||||||
|  | 		$h_view_link = make_link("post/view/$i_id", $query); | ||||||
|  | 		$h_tip = html_escape($image->get_tooltip()); | ||||||
|  | 		$h_thumb_link = $image->get_thumb_link(); | ||||||
|  | 		$tsize = get_thumbnail_size($image->width, $image->height); | ||||||
|  | 		return " | ||||||
|  | 			<div class='thumbblock'> | ||||||
|  | 			 | ||||||
|  | 				<a href='$h_view_link' style='position: relative; display: block; height: {$tsize[1]}px; width: {$tsize[0]}px;'> | ||||||
|  | 					<img id='thumb_$i_id' title='$h_tip' alt='$h_tip' class='highlighted' style='height: {$tsize[1]}px; width: {$tsize[0]}px;' src='$h_thumb_link'> | ||||||
|  | 				</a> | ||||||
|  | 			 | ||||||
|  | 			</div> | ||||||
|  | 		";
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Put something in a rounded rectangle box; specific to the default theme | ||||||
|  | 	 */ | ||||||
|  | 	public function rr($html) { | ||||||
|  | 		return " | ||||||
|  | 			<div class='tframe'> | ||||||
|  | 				$html | ||||||
|  | 			</div> | ||||||
|  | 		";
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Add a generic paginator | ||||||
|  | 	 */ | ||||||
|  | 	public function display_paginator(Page $page, $base, $query, $page_number, $total_pages) { | ||||||
|  | 		if($total_pages == 0) $total_pages = 1; | ||||||
|  | 		$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_class=null) { | ||||||
|  | 		$link = make_link("$base_url/$page", $query); | ||||||
|  | 	    return "<a class='$link_class' href='$link'>$name</a>"; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	private function gen_page_link_block($base_url, $query, $page, $current_page, $name) { | ||||||
|  | 		$paginator = ""; | ||||||
|  | 	     | ||||||
|  | 	    if($page == $current_page) {$link_class = "tab-selected";} else {$link_class = "";} | ||||||
|  | 	    $paginator .= $this->gen_page_link($base_url, $query, $page, $name, $link_class); | ||||||
|  | 	     | ||||||
|  | 	    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); | ||||||
|  | 
 | ||||||
|  | 		$at_start = ($current_page <= 1 || $total_pages <= 1); | ||||||
|  | 		$at_end = ($current_page >= $total_pages); | ||||||
|  | 
 | ||||||
|  | 		$first_html  = $at_start ? "<span class='tab'>First</span>" : $this->gen_page_link($base_url, $query, 1,            "First"); | ||||||
|  | 		$prev_html   = $at_start ? "<span class='tab'>Prev</span>"  : $this->gen_page_link($base_url, $query, $prev,        "Prev"); | ||||||
|  | 		$random_html =                       			      $this->gen_page_link($base_url, $query, $rand,        "Random"); | ||||||
|  | 		$next_html   = $at_end   ? "<span class='tab'>Next</span>"  : $this->gen_page_link($base_url, $query, $next,        "Next"); | ||||||
|  | 		$last_html   = $at_end   ? "<span class='tab'>Last</span>"  : $this->gen_page_link($base_url, $query, $total_pages, "Last"); | ||||||
|  | 
 | ||||||
|  | 		$start = $current_page-5 > 1 ? $current_page-5 : 1; | ||||||
|  | 		$end = $start+10 < $total_pages ? $start+10 : $total_pages; | ||||||
|  | 
 | ||||||
|  | 		$pages = array(); | ||||||
|  | 		foreach(range($start, $end) as $i) { | ||||||
|  | 			$pages[] = $this->gen_page_link_block($base_url, $query, $i, $current_page, $i); | ||||||
|  | 		} | ||||||
|  | 		$pages_html = implode(" ", $pages); | ||||||
|  | 
 | ||||||
|  | 		return "<div class='paginator sfoot'>
 | ||||||
|  | 			$first_html | ||||||
|  | 			$prev_html | ||||||
|  | 			$random_html | ||||||
|  | 			<< $pages_html >> | ||||||
|  | 			$next_html $last_html | ||||||
|  | 			</div>";
 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										119
									
								
								themes/lite/user.theme.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								themes/lite/user.theme.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class CustomUserPageTheme extends UserPageTheme { | ||||||
|  | 	public function display_login_page($page) { | ||||||
|  | 		global $config; | ||||||
|  | 		$page->set_title("Login"); | ||||||
|  | 		$page->set_heading("Login"); | ||||||
|  | 		$page->disable_left(); | ||||||
|  | 		$html = " | ||||||
|  | 			<form action='".make_link("user_admin/login")."' method='POST'> | ||||||
|  | 				<table summary='Login Form'> | ||||||
|  | 					<tr> | ||||||
|  | 						<td width='70'><label for='user'>Name</label></td> | ||||||
|  | 						<td width='70'><input id='user' type='text' name='user'></td> | ||||||
|  | 					</tr> | ||||||
|  | 					<tr> | ||||||
|  | 						<td><label for='pass'>Password</label></td> | ||||||
|  | 						<td><input id='pass' type='password' name='pass'></td> | ||||||
|  | 					</tr> | ||||||
|  | 					<tr><td colspan='2'><input type='submit' value='Log In'></td></tr> | ||||||
|  | 				</table> | ||||||
|  | 			</form> | ||||||
|  | 		";
 | ||||||
|  | 		if($config->get_bool("login_signup_enabled")) { | ||||||
|  | 			$html .= "<small><a href='".make_link("user_admin/create")."'>Create Account</a></small>"; | ||||||
|  | 		} | ||||||
|  | 		$page->add_block(new Block("Login", $html, "main", 90)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public function display_user_links($page, $user, $parts) { | ||||||
|  | 		// no block in this theme
 | ||||||
|  | 	} | ||||||
|  | 	public function display_login_block(Page $page) { | ||||||
|  | 		// no block in this theme
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public function display_user_block($page, $user, $parts) { | ||||||
|  | 		$h_name = html_escape($user->name); | ||||||
|  | 		$html = ""; | ||||||
|  | 		$blocked = array("Pools", "Pool Changes", "Alias Editor", "My Profile"); | ||||||
|  | 		foreach($parts as $part) { | ||||||
|  | 			if(in_array($part["name"], $blocked)) continue; | ||||||
|  | 			$html .= "<a href='{$part["link"]}' class='tab'>{$part["name"]}</a>"; | ||||||
|  | 		} | ||||||
|  | 		$page->add_block(new Block("User Links", $html, "user", 90)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public function display_signup_page($page) { | ||||||
|  | 		global $config; | ||||||
|  | 		$tac = $config->get_string("login_tac", ""); | ||||||
|  | 
 | ||||||
|  | 		$tfe = new TextFormattingEvent($tac); | ||||||
|  | 		send_event($tfe); | ||||||
|  | 		$tac = $tfe->formatted; | ||||||
|  | 
 | ||||||
|  | 		if(empty($tac)) {$html = "";} | ||||||
|  | 		else {$html = "<p>$tac</p>";} | ||||||
|  | 
 | ||||||
|  | 		$html .= " | ||||||
|  | 		<form action='".make_link("user_admin/create")."' method='POST'> | ||||||
|  | 			<table style='width: 300px;'> | ||||||
|  | 				<tr><td>Name</td><td><input type='text' name='name'></td></tr> | ||||||
|  | 				<tr><td>Password</td><td><input type='password' name='pass1'></td></tr> | ||||||
|  | 				<tr><td>Repeat Password</td><td><input type='password' name='pass2'></td></tr> | ||||||
|  | 				<tr><td>Email (Optional)</td><td><input type='text' name='email'></td></tr> | ||||||
|  | 				<tr><td colspan='2'><input type='Submit' value='Create Account'></td></tr> | ||||||
|  | 			</table> | ||||||
|  | 		</form> | ||||||
|  | 		";
 | ||||||
|  | 
 | ||||||
|  | 		$page->set_title("Create Account"); | ||||||
|  | 		$page->set_heading("Create Account"); | ||||||
|  | 		$page->disable_left(); | ||||||
|  | 		$page->add_block(new Block("Signup", $html)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public function display_ip_list($page, $uploads, $comments) { | ||||||
|  | 		$html = "<table id='ip-history' style='width: 400px;'>"; | ||||||
|  | 		$html .= "<tr><td>Uploaded from: "; | ||||||
|  | 		foreach($uploads as $ip => $count) { | ||||||
|  | 			$html .= "<br>$ip ($count)"; | ||||||
|  | 		} | ||||||
|  | 		$html .= "</td><td>Commented from:"; | ||||||
|  | 		foreach($comments as $ip => $count) { | ||||||
|  | 			$html .= "<br>$ip ($count)"; | ||||||
|  | 		} | ||||||
|  | 		$html .= "</td></tr>"; | ||||||
|  | 		$html .= "<tr><td colspan='2'>(Most recent at top)</td></tr></table>"; | ||||||
|  | 
 | ||||||
|  | 		$page->add_block(new Block("IPs", $html)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public function display_user_page(User $duser, $stats) { | ||||||
|  | 		global $page; | ||||||
|  | 		$page->disable_left(); | ||||||
|  | 		parent::display_user_page($duser, $stats); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	protected function build_options($duser) { | ||||||
|  | 		global $database; | ||||||
|  | 		global $config; | ||||||
|  | 
 | ||||||
|  | 		$html = ""; | ||||||
|  | 		$html .= " | ||||||
|  | 		<form action='".make_link("user_admin/change_pass")."' method='POST'> | ||||||
|  | 			<input type='hidden' name='name' value='{$duser->name}'> | ||||||
|  | 			<input type='hidden' name='id' value='{$duser->id}'> | ||||||
|  | 			<table style='width: 300px;'> | ||||||
|  | 				<tr><td colspan='2'>Change Password</td></tr> | ||||||
|  | 				<tr><td>Password</td><td><input type='password' name='pass1'></td></tr> | ||||||
|  | 				<tr><td>Repeat Password</td><td><input type='password' name='pass2'></td></tr> | ||||||
|  | 				<tr><td colspan='2'><input type='Submit' value='Change Password'></td></tr> | ||||||
|  | 			</table> | ||||||
|  | 		</form> | ||||||
|  | 		";
 | ||||||
|  | 		return $html; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										44
									
								
								themes/lite/view.theme.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								themes/lite/view.theme.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class CustomViewImageTheme extends ViewImageTheme { | ||||||
|  | 	public function display_page($page, $image, $editor_parts) { | ||||||
|  | 		$page->set_title("Image {$image->id}: ".html_escape($image->get_tag_list())); | ||||||
|  | 		$page->set_heading(html_escape($image->get_tag_list())); | ||||||
|  | 		$page->add_block(new Block("Navigation", $this->build_navigation($image), "left", 0)); | ||||||
|  | 		$page->add_block(new Block("Statistics", $this->build_stats($image), "left", 10)); | ||||||
|  | 		$page->add_block(new Block(null, $this->build_image_editor($image, $editor_parts), "main", 10)); | ||||||
|  | 		$page->add_block(new Block(null, $this->build_pin($image), "main", 11)); | ||||||
|  | 		$page->add_block(new Block(null, "hello world", "subheading", 0)); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	private function build_stats($image) { | ||||||
|  | 		$h_owner = html_escape($image->get_owner()->name); | ||||||
|  | 		$h_ownerlink = "<a href='".make_link("user/$h_owner")."'>$h_owner</a>"; | ||||||
|  | 		$h_ip = html_escape($image->owner_ip); | ||||||
|  | 		$h_date = autodate($image->posted); | ||||||
|  | 		$h_filesize = to_shorthand_int($image->filesize); | ||||||
|  | 
 | ||||||
|  | 		global $user; | ||||||
|  | 		if($user->is_admin()) { | ||||||
|  | 			$h_ownerlink .= " ($h_ip)"; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		$html = " | ||||||
|  | 		Id: {$image->id} | ||||||
|  | 		<br>Posted: $h_date by $h_ownerlink | ||||||
|  | 		<br>Size: {$image->width}x{$image->height} | ||||||
|  | 		<br>Filesize: $h_filesize | ||||||
|  | 		";
 | ||||||
|  | 
 | ||||||
|  | 		if(!is_null($image->source)) { | ||||||
|  | 			$h_source = html_escape($image->source); | ||||||
|  | 			if(substr($image->source, 0, 7) != "http://") { | ||||||
|  | 				$h_source = "http://" . $h_source; | ||||||
|  | 			} | ||||||
|  | 			$html .= "<br>Source: <a href='$h_source'>link</a>"; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return $html; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
							
								
								
									
										1301
									
								
								themes/lite/wz_tooltip.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1301
									
								
								themes/lite/wz_tooltip.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user