Merge branch 'master' of github.com:shish/shimmie2
This commit is contained in:
commit
e89c14c72c
@ -11,7 +11,16 @@ class BaseThemelet {
|
|||||||
$page->add_http_header("HTTP/1.0 $code $title");
|
$page->add_http_header("HTTP/1.0 $code $title");
|
||||||
$page->set_title($title);
|
$page->set_title($title);
|
||||||
$page->set_heading($title);
|
$page->set_heading($title);
|
||||||
$page->add_block(new NavBlock());
|
$has_nav = false;
|
||||||
|
foreach($page->blocks as $block) {
|
||||||
|
if($block->header == "Navigation") {
|
||||||
|
$has_nav = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!$has_nav) {
|
||||||
|
$page->add_block(new NavBlock());
|
||||||
|
}
|
||||||
$page->add_block(new Block("Error", $message));
|
$page->add_block(new Block("Error", $message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,10 +386,24 @@ function mtimefile($file) {
|
|||||||
return "$data_href/$file?$mtime";
|
return "$data_href/$file?$mtime";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* like glob, with support for matching very long patterns with braces
|
||||||
|
*/
|
||||||
function zglob($pattern) {
|
function zglob($pattern) {
|
||||||
$r = glob($pattern);
|
$results = array();
|
||||||
if($r) return $r;
|
if(preg_match('/(.*)\{(.*)\}(.*)/', $pattern, $matches)) {
|
||||||
else return array();
|
$braced = explode(",", $matches[2]);
|
||||||
|
foreach($braced as $b) {
|
||||||
|
$sub_pattern = $matches[1].$b.$matches[3];
|
||||||
|
$results = array_merge($results, zglob($sub_pattern));
|
||||||
|
}
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$r = glob($pattern);
|
||||||
|
if($r) return $r;
|
||||||
|
else return array();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1088,8 +1102,8 @@ function _get_themelet_files($_theme) {
|
|||||||
$base_themelets[] = 'themes/'.$_theme.'/layout.class.php';
|
$base_themelets[] = 'themes/'.$_theme.'/layout.class.php';
|
||||||
$base_themelets[] = 'themes/'.$_theme.'/themelet.class.php';
|
$base_themelets[] = 'themes/'.$_theme.'/themelet.class.php';
|
||||||
|
|
||||||
$ext_themelets = glob("ext/{".ENABLED_EXTS."}/theme.php", GLOB_BRACE);
|
$ext_themelets = zglob("ext/{".ENABLED_EXTS."}/theme.php");
|
||||||
$custom_themelets = glob('themes/'.$_theme.'/{'.ENABLED_EXTS.'}.theme.php', GLOB_BRACE);
|
$custom_themelets = zglob('themes/'.$_theme.'/{'.ENABLED_EXTS.'}.theme.php');
|
||||||
|
|
||||||
return array_merge($base_themelets, $ext_themelets, $custom_themelets);
|
return array_merge($base_themelets, $ext_themelets, $custom_themelets);
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ class ET extends Extension {
|
|||||||
$info['thumb_quality'] = $config->get_int('thumb_quality');
|
$info['thumb_quality'] = $config->get_int('thumb_quality');
|
||||||
$info['thumb_width'] = $config->get_int('thumb_width');
|
$info['thumb_width'] = $config->get_int('thumb_width');
|
||||||
$info['thumb_height'] = $config->get_int('thumb_height');
|
$info['thumb_height'] = $config->get_int('thumb_height');
|
||||||
$info['thumb_mem'] = $config->get_int("thumb_max_memory");
|
$info['thumb_mem'] = $config->get_int("thumb_mem_limit");
|
||||||
|
|
||||||
$info['stat_images'] = $database->get_one("SELECT COUNT(*) FROM images");
|
$info['stat_images'] = $database->get_one("SELECT COUNT(*) FROM images");
|
||||||
$info['stat_comments'] = $database->get_one("SELECT COUNT(*) FROM comments");
|
$info['stat_comments'] = $database->get_one("SELECT COUNT(*) FROM comments");
|
||||||
|
@ -141,10 +141,10 @@ class ExtManager extends Extension {
|
|||||||
private function get_extensions(/*bool*/ $all) {
|
private function get_extensions(/*bool*/ $all) {
|
||||||
$extensions = array();
|
$extensions = array();
|
||||||
if($all) {
|
if($all) {
|
||||||
$exts = glob("ext/*/main.php", GLOB_BRACE);
|
$exts = zglob("ext/*/main.php");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$exts = glob("ext/{".ENABLED_EXTS."}/main.php", GLOB_BRACE);
|
$exts = zglob("ext/{".ENABLED_EXTS."}/main.php");
|
||||||
}
|
}
|
||||||
foreach($exts as $main) {
|
foreach($exts as $main) {
|
||||||
$extensions[] = new ExtensionInfo($main);
|
$extensions[] = new ExtensionInfo($main);
|
||||||
|
@ -97,7 +97,7 @@ class IcoFileHandler extends Extension {
|
|||||||
$w = $config->get_int("thumb_width");
|
$w = $config->get_int("thumb_width");
|
||||||
$h = $config->get_int("thumb_height");
|
$h = $config->get_int("thumb_height");
|
||||||
$q = $config->get_int("thumb_quality");
|
$q = $config->get_int("thumb_quality");
|
||||||
$mem = $config->get_int("thumb_max_memory") / 1024 / 1024; // IM takes memory in MB
|
$mem = $config->get_int("thumb_mem_limit") / 1024 / 1024; // IM takes memory in MB
|
||||||
|
|
||||||
if($config->get_bool("ico_convert")) {
|
if($config->get_bool("ico_convert")) {
|
||||||
// "-limit memory $mem" broken?
|
// "-limit memory $mem" broken?
|
||||||
|
@ -90,7 +90,6 @@ class PixelFileHandler extends DataHandlerExtension {
|
|||||||
$w = $config->get_int("thumb_width");
|
$w = $config->get_int("thumb_width");
|
||||||
$h = $config->get_int("thumb_height");
|
$h = $config->get_int("thumb_height");
|
||||||
$q = $config->get_int("thumb_quality");
|
$q = $config->get_int("thumb_quality");
|
||||||
$mem = $config->get_int("thumb_max_memory") / 1024 / 1024; // IM takes memory in MB
|
|
||||||
|
|
||||||
// Windows is a special case
|
// Windows is a special case
|
||||||
if(in_array("OS", $_SERVER) && $_SERVER["OS"] == 'Windows_NT') {
|
if(in_array("OS", $_SERVER) && $_SERVER["OS"] == 'Windows_NT') {
|
||||||
|
@ -70,8 +70,8 @@ class Home extends Extension {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$main_links = '[url=site://post/list]Posts[/url] [url=site://comment/list]Comments[/url] [url=site://tags]Tags[/url]';
|
$main_links = '[url=site://post/list]Posts[/url] [url=site://comment/list]Comments[/url] [url=site://tags]Tags[/url]';
|
||||||
if(file_exists("ext/pools")) {$main_links .= ' [url=site://pools]Pools[/url]';}
|
if(class_exists("Pools")) {$main_links .= ' [url=site://pools]Pools[/url]';}
|
||||||
if(file_exists("ext/wiki")) {$main_links .= ' [url=site://wiki]Wiki[/url]';}
|
if(class_exists("Wiki")) {$main_links .= ' [url=site://wiki]Wiki[/url]';}
|
||||||
$main_links .= ' [url=site://ext_doc]>>[/url]';
|
$main_links .= ' [url=site://ext_doc]>>[/url]';
|
||||||
}
|
}
|
||||||
$main_links = format_text($main_links);
|
$main_links = format_text($main_links);
|
||||||
|
@ -267,7 +267,9 @@ class ImageIO extends Extension {
|
|||||||
$sb->add_int_option("thumb_quality");
|
$sb->add_int_option("thumb_quality");
|
||||||
$sb->add_label(" % quality ");
|
$sb->add_label(" % quality ");
|
||||||
|
|
||||||
$sb->add_shorthand_int_option("thumb_mem_limit", "<br>Max memory use: ");
|
if($config->get_string("thumb_engine") == "gd") {
|
||||||
|
$sb->add_shorthand_int_option("thumb_mem_limit", "<br>Max memory use: ");
|
||||||
|
}
|
||||||
|
|
||||||
$event->panel->add_block($sb);
|
$event->panel->add_block($sb);
|
||||||
}
|
}
|
||||||
@ -293,7 +295,7 @@ class ImageIO extends Extension {
|
|||||||
if($handler == "merge" || isset($_GET['update'])) {
|
if($handler == "merge" || isset($_GET['update'])) {
|
||||||
$merged = array_merge($image->get_tag_array(), $existing->get_tag_array());
|
$merged = array_merge($image->get_tag_array(), $existing->get_tag_array());
|
||||||
send_event(new TagSetEvent($existing, $merged));
|
send_event(new TagSetEvent($existing, $merged));
|
||||||
if(isset($_GET['rating']) && isset($_GET['update']) && file_exists("ext/rating")){
|
if(isset($_GET['rating']) && isset($_GET['update']) && class_exists("Ratings")){
|
||||||
send_event(new RatingSetEvent($existing, $user, $_GET['rating']));
|
send_event(new RatingSetEvent($existing, $user, $_GET['rating']));
|
||||||
}
|
}
|
||||||
if(isset($_GET['source']) && isset($_GET['update'])){
|
if(isset($_GET['source']) && isset($_GET['update'])){
|
||||||
|
@ -21,16 +21,6 @@ class LinkImage extends Extension {
|
|||||||
$config->set_default_string("ext_link-img_text-link_format", '$title - $id ($ext $size $filesize)');
|
$config->set_default_string("ext_link-img_text-link_format", '$title - $id ($ext $size $filesize)');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function hostify(/*string*/ $str) {
|
|
||||||
$str = str_replace(" ", "%20", $str);
|
|
||||||
if(strpos($str, "ttp://") > 0) {
|
|
||||||
return $str;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "http://" . $_SERVER["HTTP_HOST"] . $str;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function data(Image $image) {
|
private function data(Image $image) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
@ -38,9 +28,9 @@ class LinkImage extends Extension {
|
|||||||
$text_link = trim($text_link) == "" ? null : $text_link; // null blank setting so the url gets filled in on the text links.
|
$text_link = trim($text_link) == "" ? null : $text_link; // null blank setting so the url gets filled in on the text links.
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'thumb_src' => $this->hostify($image->get_thumb_link()),
|
'thumb_src' => make_http($image->get_thumb_link()),
|
||||||
'image_src' => $this->hostify($image->get_image_link()),
|
'image_src' => make_http($image->get_image_link()),
|
||||||
'post_link' => $this->hostify($_SERVER["REQUEST_URI"]),
|
'post_link' => make_http($_SERVER["REQUEST_URI"]),
|
||||||
'text_link' => $text_link);
|
'text_link' => $text_link);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,13 +38,11 @@ class MassTagger extends Extension {
|
|||||||
$ids = explode( ':', $_POST['ids'] );
|
$ids = explode( ':', $_POST['ids'] );
|
||||||
$ids = array_filter ( $ids , 'is_numeric' );
|
$ids = array_filter ( $ids , 'is_numeric' );
|
||||||
|
|
||||||
$ids = array_map( "Image::by_id", $ids );
|
$images = array_map( "Image::by_id", $ids );
|
||||||
|
|
||||||
$func = function( $image ) use ( $tag ) {
|
foreach($images as $image) {
|
||||||
$tag .= " " . $image->get_tag_list();
|
$image->set_tags($tag . " " . $image->get_tag_list());
|
||||||
$image->set_tags( $tag );
|
}
|
||||||
};
|
|
||||||
array_walk( $ids, $func );
|
|
||||||
|
|
||||||
$page->set_mode("redirect");
|
$page->set_mode("redirect");
|
||||||
$page->set_redirect(make_link("post/list"));
|
$page->set_redirect(make_link("post/list"));
|
||||||
|
@ -200,7 +200,7 @@ class TestFinder extends TestSuite {
|
|||||||
$dir = "{".ENABLED_EXTS."}";
|
$dir = "{".ENABLED_EXTS."}";
|
||||||
if(file_exists("ext/$hint/test.php")) $dir = $hint;
|
if(file_exists("ext/$hint/test.php")) $dir = $hint;
|
||||||
$this->TestSuite('All tests');
|
$this->TestSuite('All tests');
|
||||||
foreach(glob("ext/$dir/test.php", GLOB_BRACE) as $file) {
|
foreach(zglob("ext/$dir/test.php") as $file) {
|
||||||
$this->addFile($file);
|
$this->addFile($file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -438,7 +438,7 @@ class TagList extends Extension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($related_tags) > 0) {
|
if(!empty($related_tags)) {
|
||||||
$this->theme->display_refine_block($page, $related_tags, $wild_tags);
|
$this->theme->display_refine_block($page, $related_tags, $wild_tags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,9 @@ class Upload extends Extension {
|
|||||||
|
|
||||||
private function tags_for_upload_slot($id) {
|
private function tags_for_upload_slot($id) {
|
||||||
if(isset($_POST["tags$id"])) {
|
if(isset($_POST["tags$id"])) {
|
||||||
$tags = array_merge(Tag::explode($_POST['tags']), Tag::explode($_POST["tags$id"]));
|
# merge then explode, not explode then merge - else
|
||||||
|
# one of the merges may create a surplus "tagme"
|
||||||
|
$tags = Tag::explode($_POST['tags'] . " " . $_POST["tags$id"]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$tags = Tag::explode($_POST['tags']);
|
$tags = Tag::explode($_POST['tags']);
|
||||||
@ -327,7 +329,7 @@ class Upload extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Checks if url contains rating, also checks if the rating extension is enabled.
|
// Checks if url contains rating, also checks if the rating extension is enabled.
|
||||||
if($config->get_string("transload_engine", "none") != "none" && file_exists("ext/rating") && !empty($_GET['rating'])) {
|
if($config->get_string("transload_engine", "none") != "none" && class_exists("Ratings") && !empty($_GET['rating'])) {
|
||||||
// Rating event will validate that this is s/q/e/u
|
// Rating event will validate that this is s/q/e/u
|
||||||
$rating = strtolower($_GET['rating']);
|
$rating = strtolower($_GET['rating']);
|
||||||
$rating = $rating[0];
|
$rating = $rating[0];
|
||||||
|
@ -215,10 +215,10 @@ class UploadTheme extends Themelet {
|
|||||||
|
|
||||||
// Bookmarklet checks if shimmie supports ext. If not, won't upload to site/shows alert saying not supported.
|
// Bookmarklet checks if shimmie supports ext. If not, won't upload to site/shows alert saying not supported.
|
||||||
$supported_ext = "jpg jpeg gif png";
|
$supported_ext = "jpg jpeg gif png";
|
||||||
if(file_exists("ext/handle_flash")){$supported_ext .= " swf";}
|
if(class_exists("FlashFileHandler")){$supported_ext .= " swf";}
|
||||||
if(file_exists("ext/handle_ico")){$supported_ext .= " ico ani cur";}
|
if(class_exists("ICOFileHandler")){$supported_ext .= " ico ani cur";}
|
||||||
if(file_exists("ext/handle_mp3")){$supported_ext .= " mp3";}
|
if(class_exists("MP3FileHandler")){$supported_ext .= " mp3";}
|
||||||
if(file_exists("ext/handle_svg")){$supported_ext .= " svg";}
|
if(class_exists("SVGFileHandler")){$supported_ext .= " svg";}
|
||||||
$title = "Booru to " . $config->get_string('title');
|
$title = "Booru to " . $config->get_string('title');
|
||||||
// CA=0: Ask to use current or new tags | CA=1: Always use current tags | CA=2: Always use new tags
|
// CA=0: Ask to use current or new tags | CA=1: Always use current tags | CA=2: Always use new tags
|
||||||
$html .= '<p><a href="javascript:
|
$html .= '<p><a href="javascript:
|
||||||
|
@ -67,7 +67,7 @@ _start_cache();
|
|||||||
try {
|
try {
|
||||||
// load base files
|
// load base files
|
||||||
ctx_log_start("Opening files");
|
ctx_log_start("Opening files");
|
||||||
$files = array_merge(glob("core/*.php"), glob("ext/{".ENABLED_EXTS."}/main.php", GLOB_BRACE));
|
$files = array_merge(zglob("core/*.php"), zglob("ext/{".ENABLED_EXTS."}/main.php"));
|
||||||
foreach($files as $filename) {
|
foreach($files as $filename) {
|
||||||
require_once $filename;
|
require_once $filename;
|
||||||
}
|
}
|
||||||
|
@ -140,11 +140,11 @@ class Layout {
|
|||||||
# be nice to be correct
|
# be nice to be correct
|
||||||
case "post":
|
case "post":
|
||||||
case "upload":
|
case "upload":
|
||||||
if(file_exists("ext/numeric_score")){ $custom_sublinks .= "<li><b>Popular by </b><a href='".make_link('popular_by_day')."'>Day</a>/<a href='".make_link('popular_by_month')."'>Month</a>/<a href='".make_link('popular_by_year')."'>Year</a></li>";}
|
if(class_exists("NumericScore")){ $custom_sublinks .= "<li><b>Popular by </b><a href='".make_link('popular_by_day')."'>Day</a>/<a href='".make_link('popular_by_month')."'>Month</a>/<a href='".make_link('popular_by_year')."'>Year</a></li>";}
|
||||||
$custom_sublinks .= "<li><a href='".make_link('post/list')."'>All</a></li>";
|
$custom_sublinks .= "<li><a href='".make_link('post/list')."'>All</a></li>";
|
||||||
if(file_exists("ext/favorites")){ $custom_sublinks .= "<li><a href='".make_link("post/list/favorited_by=$username/1")."'>My Favorites</a></li>";}
|
if(class_exists("Favorites")){ $custom_sublinks .= "<li><a href='".make_link("post/list/favorited_by=$username/1")."'>My Favorites</a></li>";}
|
||||||
if(file_exists("ext/rss_images")){ $custom_sublinks .= "<li><a href='".make_link('rss/images')."'>Feed</a></li>";}
|
if(class_exists("RSS_Images")){ $custom_sublinks .= "<li><a href='".make_link('rss/images')."'>Feed</a></li>";}
|
||||||
if(file_exists("ext/random_image")){ $custom_sublinks .= "<li><a href='".make_link("random_image/view")."'>Random Image</a></li>";}
|
if(class_exists("RandomImage")){ $custom_sublinks .= "<li><a href='".make_link("random_image/view")."'>Random Image</a></li>";}
|
||||||
if($hw){ $custom_sublinks .= "<li><a href='".make_link("wiki/posts")."'>Help</a></li>";
|
if($hw){ $custom_sublinks .= "<li><a href='".make_link("wiki/posts")."'>Help</a></li>";
|
||||||
}else{ $custom_sublinks .= "<li><a href='".make_link("ext_doc/index")."'>Help</a></li>";}
|
}else{ $custom_sublinks .= "<li><a href='".make_link("ext_doc/index")."'>Help</a></li>";}
|
||||||
break;
|
break;
|
||||||
|
@ -38,7 +38,7 @@ class CustomViewImageTheme extends ViewImageTheme {
|
|||||||
$html .= "<br>Source: <a href='$h_source'>link</a>";
|
$html .= "<br>Source: <a href='$h_source'>link</a>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(file_exists("ext/rating")) {
|
if(class_exists("Ratings")) {
|
||||||
if($image->rating == null || $image->rating == "u"){
|
if($image->rating == null || $image->rating == "u"){
|
||||||
$image->rating = "u";
|
$image->rating = "u";
|
||||||
}
|
}
|
||||||
|
@ -94,11 +94,11 @@ class Layout {
|
|||||||
# the subnav links aren't shown, but it would
|
# the subnav links aren't shown, but it would
|
||||||
# be nice to be correct
|
# be nice to be correct
|
||||||
case "post":
|
case "post":
|
||||||
if(file_exists("ext/numeric_score")){ $cs .= "<b>Popular by </b><a href='".make_link('popular_by_day')."'>Day</a><b>/</b><a href='".make_link('popular_by_month')."'>Month</a><b>/</b><a href='".make_link('popular_by_year')."'>Year</a> ";}
|
if(class_exists("NumericScore")){ $cs .= "<b>Popular by </b><a href='".make_link('popular_by_day')."'>Day</a><b>/</b><a href='".make_link('popular_by_month')."'>Month</a><b>/</b><a href='".make_link('popular_by_year')."'>Year</a> ";}
|
||||||
$cs .= "<a class='tab' href='".make_link('post/list')."'>All</a>";
|
$cs .= "<a class='tab' href='".make_link('post/list')."'>All</a>";
|
||||||
if(file_exists("ext/favorites")){ $cs .= "<a class='tab' href='".make_link("post/list/favorited_by=$username/1")."'>My Favorites</a>";}
|
if(class_exists("Favorites")){ $cs .= "<a class='tab' href='".make_link("post/list/favorited_by=$username/1")."'>My Favorites</a>";}
|
||||||
if(file_exists("ext/rss_images")){ $cs .= "<a class='tab' href='".make_link('rss/images')."'>Feed</a>";}
|
if(class_exists("RSS_Images")){ $cs .= "<a class='tab' href='".make_link('rss/images')."'>Feed</a>";}
|
||||||
if(file_exists("ext/random_image")){ $cs .= "<a class='tab' href='".make_link("random_image/view")."'>Random Image</a>";}
|
if(class_exists("Random_Image")){ $cs .= "<a class='tab' href='".make_link("random_image/view")."'>Random Image</a>";}
|
||||||
if($hw){ $cs .= "<a class='tab' href='".make_link("wiki/posts")."'>Help</a>";
|
if($hw){ $cs .= "<a class='tab' href='".make_link("wiki/posts")."'>Help</a>";
|
||||||
}else{ $cs .= "<a class='tab' href='".make_link("ext_doc/index")."'>Help</a>";}
|
}else{ $cs .= "<a class='tab' href='".make_link("ext_doc/index")."'>Help</a>";}
|
||||||
break;
|
break;
|
||||||
|
@ -44,7 +44,7 @@ class CustomViewImageTheme extends ViewImageTheme {
|
|||||||
$html .= "<br>Source: <a href='$h_source'>link</a>";
|
$html .= "<br>Source: <a href='$h_source'>link</a>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(file_exists("ext/rating")) {
|
if(class_exists("Ratings")) {
|
||||||
if($image->rating == null || $image->rating == "u"){
|
if($image->rating == null || $image->rating == "u"){
|
||||||
$image->rating = "u";
|
$image->rating = "u";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user