Merge pull request #116 from green-ponies/speed_tweaks
More Speed tweaks
This commit is contained in:
commit
3b99605521
11 changed files with 64 additions and 20 deletions
|
@ -24,6 +24,8 @@ class FavoritesTheme extends Themelet {
|
||||||
$i_favorites = count($username_array);
|
$i_favorites = count($username_array);
|
||||||
$html = "$i_favorites people:";
|
$html = "$i_favorites people:";
|
||||||
|
|
||||||
|
reset($username_array); // rewind to first element in array.
|
||||||
|
|
||||||
foreach($username_array as $row) {
|
foreach($username_array as $row) {
|
||||||
$username = html_escape($row);
|
$username = html_escape($row);
|
||||||
$html .= "<br><a href='".make_link("user/$username")."'>$username</a>";
|
$html .= "<br><a href='".make_link("user/$username")."'>$username</a>";
|
||||||
|
|
|
@ -41,6 +41,8 @@ class LogDatabaseTheme extends Themelet {
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>\n";
|
<tbody>\n";
|
||||||
$n = 0;
|
$n = 0;
|
||||||
|
reset($events); // rewind to first element in array.
|
||||||
|
|
||||||
foreach($events as $event) {
|
foreach($events as $event) {
|
||||||
$oe = ($n++ % 2 == 0) ? "even" : "odd";
|
$oe = ($n++ % 2 == 0) ? "even" : "odd";
|
||||||
$c = $this->pri_to_col($event['priority']);
|
$c = $this->pri_to_col($event['priority']);
|
||||||
|
|
|
@ -41,6 +41,9 @@ class Ratings implements Extension {
|
||||||
while(true) {
|
while(true) {
|
||||||
$images = Image::find_images($n, 100, Tag::explode($_POST["query"]));
|
$images = Image::find_images($n, 100, Tag::explode($_POST["query"]));
|
||||||
if(count($images) == 0) break;
|
if(count($images) == 0) break;
|
||||||
|
|
||||||
|
reset($images); // rewind to first element in array.
|
||||||
|
|
||||||
foreach($images as $image) {
|
foreach($images as $image) {
|
||||||
send_event(new RatingSetEvent($image, $user, $_POST['rating']));
|
send_event(new RatingSetEvent($image, $user, $_POST['rating']));
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,6 +188,7 @@ class DatabaseConfig extends BaseConfig {
|
||||||
*/
|
*/
|
||||||
public function save(/*string*/ $name=null) {
|
public function save(/*string*/ $name=null) {
|
||||||
if(is_null($name)) {
|
if(is_null($name)) {
|
||||||
|
reset($this->values); // rewind the array to the first element
|
||||||
foreach($this->values as $name => $value) {
|
foreach($this->values as $name => $value) {
|
||||||
$this->save(/*string*/ $name);
|
$this->save(/*string*/ $name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -781,6 +781,8 @@ class Image {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reset($terms); // rewind to first element in array.
|
||||||
|
|
||||||
// turn each term into a specific type of querylet
|
// turn each term into a specific type of querylet
|
||||||
foreach($terms as $term) {
|
foreach($terms as $term) {
|
||||||
$negative = false;
|
$negative = false;
|
||||||
|
@ -1013,8 +1015,15 @@ class Tag {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function takes a list (array) of tags and changes any tags that have aliases
|
||||||
|
*
|
||||||
|
* @param $tags Array of tags
|
||||||
|
* @return Array of tags
|
||||||
|
*/
|
||||||
public static function resolve_list($tags) {
|
public static function resolve_list($tags) {
|
||||||
$tags = Tag::explode($tags);
|
$tags = Tag::explode($tags);
|
||||||
|
reset($tags); // rewind array to the first element.
|
||||||
$new = array();
|
$new = array();
|
||||||
foreach($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
$new_set = explode(' ', Tag::resolve_alias($tag));
|
$new_set = explode(' ', Tag::resolve_alias($tag));
|
||||||
|
|
|
@ -291,7 +291,11 @@ class Page {
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
if (!$config->get_bool("autocache_css") && !$config->get_bool("autocache_js")) {
|
// store local copy for speed.
|
||||||
|
$autocache_css = $config->get_bool("autocache_css");
|
||||||
|
$autocache_js = $config->get_bool("autocache_js");
|
||||||
|
|
||||||
|
if (!$autocache_css && !$autocache_js) {
|
||||||
return false; // caching disabled
|
return false; // caching disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +313,7 @@ class Page {
|
||||||
$data_href = get_base_href();
|
$data_href = get_base_href();
|
||||||
|
|
||||||
/* ----- CSS Files ----- */
|
/* ----- CSS Files ----- */
|
||||||
if ($config->get_bool("autocache_css"))
|
if ($autocache_css)
|
||||||
{
|
{
|
||||||
// First get all the CSS from the lib directory
|
// First get all the CSS from the lib directory
|
||||||
$contents_from_lib = '';
|
$contents_from_lib = '';
|
||||||
|
@ -376,7 +380,7 @@ class Page {
|
||||||
|
|
||||||
|
|
||||||
/* ----- JavaScript Files ----- */
|
/* ----- JavaScript Files ----- */
|
||||||
if ($config->get_bool("autocache_js"))
|
if ($autocache_js)
|
||||||
{
|
{
|
||||||
$data = '';
|
$data = '';
|
||||||
$js_files = glob("lib/*.js");
|
$js_files = glob("lib/*.js");
|
||||||
|
@ -394,7 +398,7 @@ class Page {
|
||||||
// Minify the JS if enabled.
|
// Minify the JS if enabled.
|
||||||
if ($config->get_bool("autocache_min_js")){
|
if ($config->get_bool("autocache_min_js")){
|
||||||
// not supported yet.
|
// not supported yet.
|
||||||
// TODO: add support for Minifying CSS files.
|
// TODO: add support for Minifying JS files.
|
||||||
}
|
}
|
||||||
|
|
||||||
// compute the MD5 sum of the concatenated JavaScript files
|
// compute the MD5 sum of the concatenated JavaScript files
|
||||||
|
|
|
@ -35,14 +35,17 @@ class CommentListTheme extends Themelet {
|
||||||
|
|
||||||
// parts for each image
|
// parts for each image
|
||||||
$position = 10;
|
$position = 10;
|
||||||
|
|
||||||
|
$comment_limit = $config->get_int("comment_list_count", 10);
|
||||||
|
$comment_captcha = $config->get_bool('comment_captcha');
|
||||||
|
|
||||||
foreach($images as $pair) {
|
foreach($images as $pair) {
|
||||||
$image = $pair[0];
|
$image = $pair[0];
|
||||||
$comments = $pair[1];
|
$comments = $pair[1];
|
||||||
|
|
||||||
$thumb_html = $this->build_thumb_html($image);
|
$thumb_html = $this->build_thumb_html($image);
|
||||||
|
|
||||||
$comment_html = "";
|
$comment_html = "";
|
||||||
$comment_limit = $config->get_int("comment_list_count", 10);
|
|
||||||
$comment_count = count($comments);
|
$comment_count = count($comments);
|
||||||
if($comment_limit > 0 && $comment_count > $comment_limit) {
|
if($comment_limit > 0 && $comment_count > $comment_limit) {
|
||||||
$hidden = $comment_count - $comment_limit;
|
$hidden = $comment_count - $comment_limit;
|
||||||
|
@ -59,7 +62,7 @@ class CommentListTheme extends Themelet {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($can_post) {
|
if ($can_post) {
|
||||||
if(!$config->get_bool('comment_captcha')) {
|
if(!$comment_captcha) {
|
||||||
$comment_html .= $this->build_postbox($image->id);
|
$comment_html .= $this->build_postbox($image->id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -70,22 +70,27 @@ class TagListTheme extends Themelet {
|
||||||
public function display_popular_block(Page $page, $tag_infos) {
|
public function display_popular_block(Page $page, $tag_infos) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
// store local copies for speed.
|
||||||
|
$info_link = $config->get_string('info_link');
|
||||||
|
$tag_list_num = $config->get_bool("tag_list_numbers");
|
||||||
|
|
||||||
$html = "";
|
$html = "";
|
||||||
$n = 0;
|
$n = 0;
|
||||||
|
|
||||||
foreach($tag_infos as $row) {
|
foreach($tag_infos as $row) {
|
||||||
$tag = $row['tag'];
|
$tag = $row['tag'];
|
||||||
$h_tag = html_escape($tag);
|
$h_tag = html_escape($tag);
|
||||||
$h_tag_no_underscores = str_replace("_", " ", $h_tag);
|
$h_tag_no_underscores = str_replace("_", " ", $h_tag);
|
||||||
$count = $row['count'];
|
$count = $row['count'];
|
||||||
if($n++) $html .= "\n<br/>";
|
if($n++) $html .= "\n<br/>";
|
||||||
if(!is_null($config->get_string('info_link'))) {
|
if(!is_null($info_link)) {
|
||||||
$link = str_replace('$tag', $tag, $config->get_string('info_link'));
|
$link = str_replace('$tag', $tag, $info_link);
|
||||||
$html .= " <a class='tag_info_link' href='$link'>?</a>";
|
$html .= ' <a class="tag_info_link" href="'.$link.'">?</a>';
|
||||||
}
|
}
|
||||||
$link = $this->tag_link($row['tag']);
|
$link = $this->tag_link($row['tag']);
|
||||||
$html .= " <a class='tag_name' href='$link'>$h_tag_no_underscores</a>";
|
$html .= ' <a class="tag_name" href="$link">'.$h_tag_no_underscores.'</a>';
|
||||||
if($config->get_bool("tag_list_numbers")) {
|
if($tag_list_num) {
|
||||||
$html .= " <span class='tag_count'>$count</span>";
|
$html .= ' <span class="tag_count">'.$count.'</span>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,19 +108,23 @@ class TagListTheme extends Themelet {
|
||||||
public function display_refine_block(Page $page, $tag_infos, $search) {
|
public function display_refine_block(Page $page, $tag_infos, $search) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
// store local copy for speed.
|
||||||
|
$info_link = $config->get_string('info_link');
|
||||||
|
|
||||||
$html = "";
|
$html = "";
|
||||||
$n = 0;
|
$n = 0;
|
||||||
|
|
||||||
foreach($tag_infos as $row) {
|
foreach($tag_infos as $row) {
|
||||||
$tag = $row['tag'];
|
$tag = $row['tag'];
|
||||||
$h_tag = html_escape($tag);
|
$h_tag = html_escape($tag);
|
||||||
$h_tag_no_underscores = str_replace("_", " ", $h_tag);
|
$h_tag_no_underscores = str_replace("_", " ", $h_tag);
|
||||||
if($n++) $html .= "\n<br/>";
|
if($n++) $html .= "\n<br/>";
|
||||||
if(!is_null($config->get_string('info_link'))) {
|
if(!is_null($info_link)) {
|
||||||
$link = str_replace('$tag', $tag, $config->get_string('info_link'));
|
$link = str_replace('$tag', $tag, $info_link);
|
||||||
$html .= " <a class='tag_info_link' href='$link'>?</a>";
|
$html .= ' <a class="tag_info_link" href="'.$link.'">?</a>';
|
||||||
}
|
}
|
||||||
$link = $this->tag_link($row['tag']);
|
$link = $this->tag_link($row['tag']);
|
||||||
$html .= " <a class='tag_name' href='$link'>$h_tag_no_underscores</a>";
|
$html .= ' <a class="tag_name" href="'.$link.'">'.$h_tag_no_underscores.'</a>';
|
||||||
$html .= $this->ars($tag, $search);
|
$html .= $this->ars($tag, $search);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,8 @@ class Upload extends SimpleExtension {
|
||||||
$this->is_full = false;
|
$this->is_full = false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// TODO: This size limit should be configureable by the admin...
|
||||||
|
// currently set to 100 MB
|
||||||
$this->is_full = $free_num < 100*1024*1024;
|
$this->is_full = $free_num < 100*1024*1024;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,12 +152,14 @@ class Upload extends SimpleExtension {
|
||||||
$tags = ''; // Tags aren't changed when uploading. Set to null to stop PHP warnings.
|
$tags = ''; // Tags aren't changed when uploading. Set to null to stop PHP warnings.
|
||||||
|
|
||||||
if(count($_FILES)) {
|
if(count($_FILES)) {
|
||||||
|
reset($_FILES); // rewind to first element in array.
|
||||||
foreach($_FILES as $file) {
|
foreach($_FILES as $file) {
|
||||||
$ok = $this->try_upload($file, $tags, $source, $image_id);
|
$ok = $this->try_upload($file, $tags, $source, $image_id);
|
||||||
break; // leave the foreach loop.
|
break; // leave the foreach loop.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
reset($_POST); // rewind to first element in array.
|
||||||
foreach($_POST as $name => $value) {
|
foreach($_POST as $name => $value) {
|
||||||
if(substr($name, 0, 3) == "url" && strlen($value) > 0) {
|
if(substr($name, 0, 3) == "url" && strlen($value) > 0) {
|
||||||
$ok = $this->try_transload($value, $tags, $source, $image_id);
|
$ok = $this->try_transload($value, $tags, $source, $image_id);
|
||||||
|
@ -186,9 +190,11 @@ class Upload extends SimpleExtension {
|
||||||
$source = isset($_POST['source']) ? $_POST['source'] : null;
|
$source = isset($_POST['source']) ? $_POST['source'] : null;
|
||||||
$ok = true;
|
$ok = true;
|
||||||
foreach($_FILES as $file) {
|
foreach($_FILES as $file) {
|
||||||
|
reset($_FILES); // rewind to first element in array.
|
||||||
$ok = $ok & $this->try_upload($file, $tags, $source);
|
$ok = $ok & $this->try_upload($file, $tags, $source);
|
||||||
}
|
}
|
||||||
foreach($_POST as $name => $value) {
|
foreach($_POST as $name => $value) {
|
||||||
|
reset($_POST); // rewind to first element in array.
|
||||||
if(substr($name, 0, 3) == "url" && strlen($value) > 0) {
|
if(substr($name, 0, 3) == "url" && strlen($value) > 0) {
|
||||||
$ok = $ok & $this->try_transload($value, $tags, $source);
|
$ok = $ok & $this->try_transload($value, $tags, $source);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ class UploadTheme extends Themelet {
|
||||||
$upload_list = "";
|
$upload_list = "";
|
||||||
$upload_count = $config->get_int('upload_count');
|
$upload_count = $config->get_int('upload_count');
|
||||||
|
|
||||||
|
|
||||||
for($i=0; $i<$upload_count; $i++)
|
for($i=0; $i<$upload_count; $i++)
|
||||||
{
|
{
|
||||||
$a=$i+1;
|
$a=$i+1;
|
||||||
|
@ -53,7 +54,7 @@ class UploadTheme extends Themelet {
|
||||||
<a href='#' onclick='$js'>".
|
<a href='#' onclick='$js'>".
|
||||||
"<img src='ext/upload/minus.png' /></a>";
|
"<img src='ext/upload/minus.png' /></a>";
|
||||||
|
|
||||||
if($a==$config->get_int('upload_count')){
|
if($a == $upload_count){
|
||||||
$upload_list .="<img id='wrapper' src='ext/upload/plus.png' />";
|
$upload_list .="<img id='wrapper' src='ext/upload/plus.png' />";
|
||||||
}else{
|
}else{
|
||||||
$js1 = 'javascript:$(function() {
|
$js1 = 'javascript:$(function() {
|
||||||
|
|
|
@ -25,6 +25,10 @@ class CustomCommentListTheme extends CommentListTheme {
|
||||||
|
|
||||||
// parts for each image
|
// parts for each image
|
||||||
$position = 10;
|
$position = 10;
|
||||||
|
|
||||||
|
$comment_captcha = $config->get_bool('comment_captcha');
|
||||||
|
$comment_limit = $config->get_int("comment_list_count", 10);
|
||||||
|
|
||||||
foreach($images as $pair) {
|
foreach($images as $pair) {
|
||||||
$image = $pair[0];
|
$image = $pair[0];
|
||||||
$comments = $pair[1];
|
$comments = $pair[1];
|
||||||
|
@ -42,7 +46,7 @@ class CustomCommentListTheme extends CommentListTheme {
|
||||||
|
|
||||||
$r = class_exists("Ratings") ? "<b>Rating</b> ".Ratings::rating_to_human($image->rating) : "";
|
$r = class_exists("Ratings") ? "<b>Rating</b> ".Ratings::rating_to_human($image->rating) : "";
|
||||||
$comment_html = "<b>Date</b> $p $s <b>User</b> $un $s $r<br><b>Tags</b> $t<p> ";
|
$comment_html = "<b>Date</b> $p $s <b>User</b> $un $s $r<br><b>Tags</b> $t<p> ";
|
||||||
$comment_limit = $config->get_int("comment_list_count", 10);
|
|
||||||
$comment_count = count($comments);
|
$comment_count = count($comments);
|
||||||
if($comment_limit > 0 && $comment_count > $comment_limit) {
|
if($comment_limit > 0 && $comment_count > $comment_limit) {
|
||||||
$hidden = $comment_count - $comment_limit;
|
$hidden = $comment_count - $comment_limit;
|
||||||
|
@ -57,7 +61,7 @@ class CustomCommentListTheme extends CommentListTheme {
|
||||||
$comment_html .= $this->build_postbox($image->id);
|
$comment_html .= $this->build_postbox($image->id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(!$config->get_bool('comment_captcha')) {
|
if(!$comment_captcha) {
|
||||||
$comment_html .= $this->build_postbox($image->id);
|
$comment_html .= $this->build_postbox($image->id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
Reference in a new issue