hand merge of speed tweaks

This commit is contained in:
Shish 2012-01-31 13:20:43 +00:00
commit aed5e1a30e
21 changed files with 254 additions and 220 deletions

View file

@ -914,8 +914,10 @@ class Artists implements Extension {
, array(
$artistID
));
for ($i = 0 ; $i < count($result) ; $i++)
$num = count($result);
for ($i = 0 ; $i < $num ; $i++)
{
$result[$i]["name"] = stripslashes($result[$i]["name"]);
}
@ -931,8 +933,10 @@ class Artists implements Extension {
, array(
$artistID
));
$num = count($result);
for ($i = 0 ; $i < count($result) ; $i++)
for ($i = 0 ; $i < $num ; $i++)
{
$result[$i]["url"] = stripslashes($result[$i]["url"]);
}
@ -1048,8 +1052,10 @@ class Artists implements Extension {
$pageNumber * $artistsPerPage
, $artistsPerPage
));
$number_of_listings = count($listing);
for ($i = 0 ; $i < count($listing) ; $i++)
for ($i = 0 ; $i < $number_of_listings ; $i++)
{
$listing[$i]["name"] = stripslashes($listing[$i]["name"]);
$listing[$i]["user_name"] = stripslashes($listing[$i]["user_name"]);

View file

@ -55,7 +55,8 @@ class BlotterTheme extends Themelet {
// Now, time for entries list.
$table_rows = "";
for ($i = 0 ; $i < count($entries) ; $i++)
$num_entries = count($entries);
for ($i = 0 ; $i < $num_entries ; $i++)
{
/**
* Add table rows
@ -106,7 +107,8 @@ class BlotterTheme extends Themelet {
$html .= "<html><head><title>Blotter</title></head>
<body><pre>";
for ($i = 0 ; $i < count($entries) ; $i++)
$num_entries = count($entries);
for ($i = 0 ; $i < $num_entries ; $i++)
{
/**
* Blotter entries
@ -156,7 +158,8 @@ $(document).ready(function() {
});
//--></script>";
$entries_list = "";
for ($i = 0 ; $i < count($entries) ; $i++)
$num_entries = count($entries);
for ($i = 0 ; $i < $num_entries ; $i++)
{
/**
* Blotter entries
@ -175,8 +178,8 @@ $(document).ready(function() {
$in_text = "";
$pos_break = "";
$pos_align = "text-align: right; position: absolute; right: 0px;";
if($position == "left") { $pos_break = "<br />"; $pos_align = ""; }
if(count($entries) == 0) { $out_text = "No blotter entries yet."; $in_text = "Empty.";}
if($position === "left") { $pos_break = "<br />"; $pos_align = ""; }
if(count($entries) === 0) { $out_text = "No blotter entries yet."; $in_text = "Empty.";}
else { $clean_date = date("m/d/y",strtotime($entries[0]['entry_date']));
$out_text = "Blotter updated: {$clean_date}";
$in_text = "<ul>$entries_list</ul>";

View file

@ -56,7 +56,8 @@ class FlashFileHandler extends DataHandlerExtension {
private function str_to_binarray($string) {
$binary = array();
for($j=0; $j<strlen($string); $j++) {
$length = strlen($string);
for($j=0; $j<$length; $j++) {
$c = ord($string[$j]);
for($i=7; $i>=0; $i--) {
$binary[] = ($c >> $i) & 0x01;

View file

@ -67,7 +67,8 @@ class Home extends SimpleExtension {
$num_comma = number_format($total);
$counter_text = "";
for($n=0; $n<strlen($strtotal); $n++) {
$length = strlen($strtotal);
for($n=0; $n<$length; $n++) {
$cur = $strtotal[$n];
$counter_text .= " <img alt='$cur' src='$base_href/ext/home/counters/$counter_dir/$cur.gif' /> ";
}

View file

@ -114,7 +114,8 @@ class Ratings implements Extension {
if(preg_match("/^rating=([sqeu]+)$/", $event->term, $matches)) {
$sqes = $matches[1];
$arr = array();
for($i=0; $i<strlen($sqes); $i++) {
$length = strlen($sqes);
for($i=0; $i<$length; $i++) {
$arr[] = "'" . $sqes[$i] . "'";
}
$set = join(', ', $arr);
@ -157,7 +158,8 @@ class Ratings implements Extension {
public static function privs_to_sql($sqes) {
$arr = array();
for($i=0; $i<strlen($sqes); $i++) {
$length = strlen($sqes);
for($i=0; $i<$length; $i++) {
$arr[] = "'" . $sqes[$i] . "'";
}
$set = join(', ', $arr);

View file

@ -56,7 +56,7 @@ class DBEngine {
}
public function create_table_sql($name, $data) {
return "CREATE TABLE $name ($data)";
return 'CREATE TABLE '.$name.' ('.$data.')';
}
}
class MySQL extends DBEngine {
@ -82,7 +82,7 @@ class MySQL extends DBEngine {
public function create_table_sql($name, $data) {
$data = $this->scoreql_to_sql($data);
$ctes = "ENGINE=InnoDB DEFAULT CHARSET='utf8'";
return "CREATE TABLE $name ($data) $ctes";
return 'CREATE TABLE '.$name.' ('.$data.') '.$ctes;
}
}
class PostgreSQL extends DBEngine {
@ -107,7 +107,7 @@ class PostgreSQL extends DBEngine {
public function create_table_sql($name, $data) {
$data = $this->scoreql_to_sql($data);
return "CREATE TABLE $name ($data)";
return 'CREATE TABLE '.$name.' ('.$data.')';
}
}
@ -155,14 +155,14 @@ class SQLite extends DBEngine {
$matches = array();
if(preg_match("/INDEX\s*\((.*)\)/", $bit, $matches)) {
$col = $matches[1];
$extras .= "CREATE INDEX {$name}_{$col} on $name($col);";
$extras .= 'CREATE INDEX '.$name.'_'.$col.' on '.$name($col).';';
}
else {
$cols[] = $bit;
}
}
$cols_redone = implode(", ", $cols);
return "CREATE TABLE $name ($cols_redone); $extras";
return 'CREATE TABLE '.$name.' ('.$cols_redone.'); '.$extras;
}
}
// }}}
@ -296,17 +296,17 @@ class Database {
));
$db_proto = $this->db->getAttribute(PDO::ATTR_DRIVER_NAME);
if($db_proto == "mysql") {
if($db_proto === "mysql") {
$this->engine = new MySQL();
}
else if($db_proto == "pgsql") {
else if($db_proto === "pgsql") {
$this->engine = new PostgreSQL();
}
else if($db_proto == "sqlite") {
else if($db_proto === "sqlite") {
$this->engine = new SQLite();
}
else {
die("Unknown PDO driver: $db_proto");
die('Unknown PDO driver: '.$db_proto);
}
$matches = array();
@ -335,10 +335,10 @@ class Database {
if (!array_key_exists(0, $args)) {
foreach($args as $name=>$value) {
if(is_numeric($value)) {
$stmt->bindValue(":$name", $value, PDO::PARAM_INT);
$stmt->bindValue(':'.$name, $value, PDO::PARAM_INT);
}
else {
$stmt->bindValue(":$name", $value, PDO::PARAM_STR);
$stmt->bindValue(':'.$name, $value, PDO::PARAM_STR);
}
}
$stmt->execute();
@ -349,8 +349,8 @@ class Database {
return $stmt;
}
catch(PDOException $pdoe) {
print "Message: ".$pdoe->getMessage();
print "<p>Error: $query";
print 'Message: '.$pdoe->getMessage();
print '<p>Error: '.$query;
exit;
}
}

View file

@ -68,7 +68,7 @@ class PageRequestEvent extends Event {
}
public function count_args() {
return $this->arg_count - $this->part_count;
return (int)($this->arg_count - $this->part_count);
}
/*
@ -76,20 +76,20 @@ class PageRequestEvent extends Event {
*/
public function get_search_terms() {
$search_terms = array();
if($this->count_args() == 2) {
if($this->count_args() === 2) {
$search_terms = explode(' ', $this->get_arg(0));
}
return $search_terms;
}
public function get_page_number() {
$page_number = 1;
if($this->count_args() == 1) {
if($this->count_args() === 1) {
$page_number = int_escape($this->get_arg(0));
}
else if($this->count_args() == 2) {
else if($this->count_args() === 2) {
$page_number = int_escape($this->get_arg(1));
}
if($page_number == 0) $page_number = 1; // invalid -> 0
if($page_number === 0) $page_number = 1; // invalid -> 0
return $page_number;
}
public function get_page_size() {

View file

@ -196,12 +196,12 @@ class Image {
}
if(count($tags) == 0) {
$row = $database->get_row("SELECT images.* FROM images WHERE images.id $gtlt {$this->id} ORDER BY images.id $dir LIMIT 1");
$row = $database->get_row('SELECT images.* FROM images WHERE images.id '.$gtlt.' '.$this->id.' ORDER BY images.id '.$dir.' LIMIT 1');
}
else {
$tags[] = "id$gtlt{$this->id}";
$tags[] = 'id'. $gtlt . $this->id;
$querylet = Image::build_search_querylet($tags);
$querylet->append_sql(" ORDER BY images.id $dir LIMIT 1");
$querylet->append_sql(' ORDER BY images.id '.$dir.' LIMIT 1');
$row = $database->get_row($querylet->sql, $querylet->variables);
}
@ -251,8 +251,11 @@ class Image {
*/
public function get_image_link() {
global $config;
if(strlen($config->get_string('image_ilink')) > 0) {
return $this->parse_link_template($config->get_string('image_ilink'));
$image_ilink = $config->get_string('image_ilink'); // store a copy for speed.
if( !empty($image_ilink) ) { /* empty is faster than strlen */
return $this->parse_link_template($image_ilink);
}
else if($config->get_bool('nice_urls', false)) {
return $this->parse_link_template(make_link('_images/$hash/$id - $tags.$ext'));
@ -280,8 +283,11 @@ class Image {
*/
public function get_thumb_link() {
global $config;
if(strlen($config->get_string('image_tlink')) > 0) {
return $this->parse_link_template($config->get_string('image_tlink'));
$image_tlink = $config->get_string('image_tlink'); // store a copy for speed.
if( !empty($image_tlink) ) { /* empty is faster than strlen */
return $this->parse_link_template($image_tlink);
}
else if($config->get_bool('nice_urls', false)) {
return $this->parse_link_template(make_link('_thumbs/$hash/thumb.jpg'));
@ -338,8 +344,8 @@ class Image {
*/
public function get_mime_type() {
$type = strtolower($this->ext);
if($type == "jpg") $type = "jpeg";
return "image/$type";
if($type === "jpg") $type = "jpeg";
return 'image/'.$type;
}
/**
@ -379,7 +385,7 @@ class Image {
public function set_locked($tf) {
global $database;
$ln = $tf ? "Y" : "N";
$sln = $database->engine->scoreql_to_sql("SCORE_BOOL_$ln");
$sln = $database->engine->scoreql_to_sql('SCORE_BOOL_'.$ln);
$sln = str_replace("'", "", $sln);
$sln = str_replace('"', "", $sln);
if($sln != $this->locked) {
@ -458,7 +464,7 @@ class Image {
global $database;
$this->delete_tags_from_image();
$database->execute("DELETE FROM images WHERE id=:id", array("id"=>$this->id));
log_info("core-image", "Deleted Image #{$this->id} ({$this->hash})");
log_info("core-image", 'Deleted Image #'.$this->id.' ('.$this->hash.')');
unlink($this->get_image_filename());
unlink($this->get_thumb_filename());
@ -469,7 +475,7 @@ class Image {
* It DOES NOT remove anything from the database.
*/
public function remove_image_only() {
log_info("core-image", "Removed Image File ({$this->hash})");
log_info("core-image", 'Removed Image File ('.$this->hash.')');
@unlink($this->get_image_filename());
@unlink($this->get_thumb_filename());
}
@ -550,7 +556,7 @@ class Image {
private static function build_search_querylet($terms) {
assert(is_array($terms));
global $database;
if($database->engine->name == "mysql")
if($database->engine->name === "mysql")
return Image::build_ugly_search_querylet($terms);
else
return Image::build_accurate_search_querylet($terms);
@ -593,7 +599,7 @@ class Image {
// various types of querylet
foreach($terms as $term) {
$positive = true;
if(strlen($term) > 0 && $term[0] == '-') {
if(is_string($term) && !empty($term) && ($term[0] == '-')) {
$positive = false;
$term = substr($term, 1);
}
@ -641,7 +647,7 @@ class Image {
if(count($tag_querylets) == 0) {
$query = new Querylet("SELECT images.* FROM images ");
if(strlen($img_search->sql) > 0) {
if(!empty($img_search->sql)) {
$query->append_sql(" WHERE ");
$query->append($img_search);
}
@ -658,7 +664,7 @@ class Image {
)
"), array("tag"=>$tag_querylets[0]->tag));
if(strlen($img_search->sql) > 0) {
if(!empty($img_search->sql)) {
$query->append_sql(" AND ");
$query->append($img_search);
}
@ -760,7 +766,7 @@ class Image {
// turn each term into a specific type of querylet
foreach($terms as $term) {
$negative = false;
if((strlen($term) > 0) && ($term[0] == '-')) {
if( !empty($term) && ($term[0] == '-')) {
$negative = true;
$term = substr($term, 1);
}
@ -789,11 +795,13 @@ class Image {
foreach($tag_querylets as $tq) {
global $tag_n;
$sign = $tq->positive ? "+" : "-";
$sql .= " $sign (tag LIKE :tag$tag_n)";
$terms["tag$tag_n"] = $tq->tag;
//$sql .= " $sign (tag LIKE :tag$tag_n)";
$sql .= ' '.$sign.' (tag LIKE :tag'.$tag_n.')';
//$terms["tag$tag_n"] = $tq->tag;
$terms['tag'.$tag_n] = $tq->tag;
$tag_n++;
if($sign == "+") $positive_tag_count++;
if($sign === "+") $positive_tag_count++;
else $negative_tag_count++;
}
$tag_search = new Querylet($sql, $terms);
@ -815,14 +823,14 @@ class Image {
if($positive_tag_count + $negative_tag_count == 0) {
$query = new Querylet("SELECT images.*,UNIX_TIMESTAMP(posted) AS posted_timestamp FROM images ");
if(strlen($img_search->sql) > 0) {
if(!empty($img_search->sql)) {
$query->append_sql(" WHERE ");
$query->append($img_search);
}
}
// one positive tag (a common case), do an optimised search
else if($positive_tag_count == 1 && $negative_tag_count == 0) {
else if($positive_tag_count === 1 && $negative_tag_count === 0) {
$query = new Querylet(
// MySQL is braindead, and does a full table scan on images, running the subquery once for each row -_-
// "{$this->get_images} WHERE images.id IN (SELECT image_id FROM tags WHERE tag LIKE ?) ",
@ -836,7 +844,7 @@ class Image {
",
$tag_search->variables);
if(strlen($img_search->sql) > 0) {
if(!empty($img_search->sql)) {
$query->append_sql(" AND ");
$query->append($img_search);
}
@ -858,24 +866,24 @@ class Image {
if($tags_ok) {
$tag_id_list = join(', ', $tag_id_array);
$subquery = new Querylet("
SELECT images.*, SUM({$tag_search->sql}) AS score
$subquery = new Querylet('
SELECT images.*, SUM('.$tag_search->sql.') AS score
FROM images
LEFT JOIN image_tags ON image_tags.image_id = images.id
JOIN tags ON image_tags.tag_id = tags.id
WHERE tags.id IN ({$tag_id_list})
WHERE tags.id IN ('.$tag_id_list.')
GROUP BY images.id
HAVING score = :score",
HAVING score = :score',
array_merge(
$tag_search->variables,
array("score"=>$positive_tag_count)
)
);
$query = new Querylet("
$query = new Querylet('
SELECT *, UNIX_TIMESTAMP(posted) AS posted_timestamp
FROM ({$subquery->sql}) AS images ", $subquery->variables);
FROM ('.$subquery->sql.') AS images ', $subquery->variables);
if(strlen($img_search->sql) > 0) {
if(!empty($img_search->sql)) {
$query->append_sql(" WHERE ");
$query->append($img_search);
}
@ -921,15 +929,15 @@ class Tag {
if(is_string($tags)) {
$tags = explode(' ', $tags);
}
else if(is_array($tags)) {
//else if(is_array($tags)) {
// do nothing
}
//}
$tags = array_map("trim", $tags);
$tag_array = array();
foreach($tags as $tag) {
if(is_string($tag) && strlen($tag) > 0) {
if(is_string($tag) && !empty($tag)) {
$tag_array[] = $tag;
}
}
@ -946,13 +954,13 @@ class Tag {
public static function implode($tags) {
assert(is_string($tags) || is_array($tags));
if(is_string($tags)) {
// do nothing
}
else if(is_array($tags)) {
if(is_array($tags)) {
sort($tags);
$tags = implode(' ', $tags);
}
//else if(is_string($tags)) {
// do nothing
//}
return $tags;
}

View file

@ -225,8 +225,8 @@ class Page {
print $this->data;
break;
case "redirect":
header("Location: {$this->redirect}");
print "You should be redirected to <a href='{$this->redirect}'>{$this->redirect}</a>";
header('Location: '.$this->redirect);
print 'You should be redirected to <a href="'.$this->redirect.'">'.$this->redirect.'</a>';
break;
default:
print "Invalid page mode";
@ -242,22 +242,22 @@ class Page {
// caching failed, add all files to html_headers.
foreach(glob("lib/*.css") as $css) {
$this->add_html_header("<link rel='stylesheet' href='$data_href/$css' type='text/css'>");
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css.'" type="text/css">');
}
$css_files = glob("ext/*/style.css");
if($css_files) {
foreach($css_files as $css_file) {
$this->add_html_header("<link rel='stylesheet' href='$data_href/$css_file' type='text/css'>");
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css_file.'" type="text/css">');
}
}
foreach(glob("lib/*.js") as $js) {
$this->add_html_header("<script src='$data_href/$js' type='text/javascript'></script>");
$this->add_html_header('<script src="'.$data_href.'/'.$js.'" type="text/javascript"></script>');
}
$js_files = glob("ext/*/script.js");
if($js_files) {
foreach($js_files as $js_file) {
$this->add_html_header("<script src='$data_href/$js_file' type='text/javascript'></script>");
$this->add_html_header('<script src="'.$data_href.'/'.$js_file.'" type="text/javascript"></script>');
}
}
}
@ -358,16 +358,16 @@ class Page {
}
}
// tell the client where to get the css cache file
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$cache_location.$md5sum.'.css'.'" type="text/css">');
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$cache_location.$md5sum.'.css" type="text/css">');
} else {
// Caching of CSS disabled.
foreach(glob("lib/*.css") as $css) {
$this->add_html_header("<link rel='stylesheet' href='$data_href/$css' type='text/css'>");
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css.'" type="text/css">');
}
$css_files = glob("ext/*/style.css");
if($css_files) {
foreach($css_files as $css_file) {
$this->add_html_header("<link rel='stylesheet' href='$data_href/$css_file' type='text/css'>");
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css_file.'" type="text/css">');
}
}
}
@ -408,16 +408,16 @@ class Page {
}
}
// tell the client where to get the js cache file
$this->add_html_header('<script src="'.$data_href.'/'.$cache_location.$md5sum.'.js'.'" type="text/javascript"></script>');
$this->add_html_header('<script src="'.$data_href.'/'.$cache_location.$md5sum.'.js" type="text/javascript"></script>');
} else {
// Caching of Javascript disabled.
foreach(glob("lib/*.js") as $js) {
$this->add_html_header("<script src='$data_href/$js' type='text/javascript'></script>");
$this->add_html_header('<script src="'.$data_href.'/'.$js.'" type="text/javascript"></script>');
}
$js_files = glob("ext/*/script.js");
if($js_files) {
foreach($js_files as $js_file) {
$this->add_html_header("<script src='$data_href/$js_file' type='text/javascript'></script>");
$this->add_html_header('<script src="'.$data_href.'/'.$js_file.'" type="text/javascript"></script>');
}
}
}

View file

@ -40,7 +40,7 @@ class User {
public static function by_session($name, $session) {
global $config, $database;
if($database->engine->name == "mysql") {
if($database->engine->name === "mysql") {
$query = "SELECT * FROM users WHERE name = :name AND md5(concat(pass, :ip)) = :sess";
}
else {
@ -53,12 +53,12 @@ class User {
public static function by_id($id) {
assert(is_numeric($id));
global $database;
if($id == 1) {
$cached = $database->cache->get("user-id:$id");
if($id === 1) {
$cached = $database->cache->get('user-id:'.$id);
if($cached) return new User($cached);
}
$row = $database->get_row("SELECT * FROM users WHERE id = :id", array("id"=>$id));
if($id == 1) $database->cache->set("user-id:$id", $row, 300);
if($id === 1) $database->cache->set('user-id:'.$id, $row, 300);
return is_null($row) ? null : new User($row);
}
@ -98,7 +98,7 @@ class User {
*/
public function is_anonymous() {
global $config;
return ($this->id == $config->get_int('anon_id'));
return ($this->id === $config->get_int('anon_id'));
}
/**
@ -108,7 +108,7 @@ class User {
*/
public function is_logged_in() {
global $config;
return ($this->id != $config->get_int('anon_id'));
return ($this->id !== $config->get_int('anon_id'));
}
/**
@ -125,20 +125,20 @@ class User {
global $database;
$yn = $admin ? 'Y' : 'N';
$database->Execute("UPDATE users SET admin=:yn WHERE id=:id", array("yn"=>$yn, "id"=>$this->id));
log_info("core-user", "Made {$this->name} admin=$yn");
log_info("core-user", 'Made '.$this->name.' admin='.$yn);
}
public function set_password($password) {
global $database;
$hash = md5(strtolower($this->name) . $password);
$database->Execute("UPDATE users SET pass=:hash WHERE id=:id", array("hash"=>$hash, "id"=>$this->id));
log_info("core-user", "Set password for {$this->name}");
log_info("core-user", 'Set password for '.$this->name);
}
public function set_email($address) {
global $database;
$database->Execute("UPDATE users SET email=:email WHERE id=:id", array("email"=>$address, "id"=>$this->id));
log_info("core-user", "Set email for {$this->name}");
log_info("core-user", 'Set email for '.$this->name);
}
/**
@ -148,7 +148,7 @@ class User {
public function get_avatar_html() {
// FIXME: configurable
global $config;
if($config->get_string("avatar_host") == "gravatar") {
if($config->get_string("avatar_host") === "gravatar") {
if(!empty($this->email)) {
$hash = md5(strtolower($this->email));
$s = $config->get_string("avatar_gravatar_size");
@ -180,7 +180,7 @@ class User {
public function get_auth_html() {
$at = $this->get_auth_token();
return "<input type='hidden' name='auth_token' value='$at'>";
return '<input type="hidden" name="auth_token" value="'.$at.'">';
}
public function check_auth_token() {

View file

@ -21,6 +21,10 @@ function html_escape($input) {
* @retval int
*/
function int_escape($input) {
/*
Side note, Casting to an integer is FASTER than using intval.
http://hakre.wordpress.com/2010/05/13/php-casting-vs-intval/
*/
return (int)$input;
}
@ -56,13 +60,13 @@ function sql_escape($input) {
function bool_escape($input) {
$input = strtolower($input);
return (
$input == "y" ||
$input == "yes" ||
$input == "t" ||
$input == "true" ||
$input == "on" ||
$input == 1 ||
$input == true
$input === "y" ||
$input === "yes" ||
$input === "t" ||
$input === "true" ||
$input === "on" ||
$input === 1 ||
$input === true
);
}
@ -86,7 +90,7 @@ function parse_shorthand_int($limit) {
return (int)$limit;
}
if(preg_match('/^([\d\.]+)([gmk])?b?$/i', "$limit", $m)) {
if(preg_match('/^([\d\.]+)([gmk])?b?$/i', (string)$limit, $m)) {
$value = $m[1];
if (isset($m[2])) {
switch(strtolower($m[2])) {
@ -118,7 +122,7 @@ function to_shorthand_int($int) {
return sprintf("%.1fKB", $int / 1024);
}
else {
return "$int";
return (string)$int;
}
}
@ -214,17 +218,17 @@ function make_link($page=null, $query=null) {
}
if(is_null($query)) {
return str_replace("//", "/", "$base/$page");
return str_replace("//", "/", $base.'/'.$page );
}
else {
if(strpos($base, "?")) {
return "$base/$page&$query";
return $base .'/'. $page .'&'. $query;
}
else if(strpos($query, "#") === 0) {
return "$base/$page$query";
return $base .'/'. $page . $query;
}
else {
return "$base/$page?$query";
return $base .'/'. $page .'?'. $query;
}
}
}
@ -293,14 +297,14 @@ function make_http($link) {
function make_form($target, $method="POST", $multipart=False, $form_id="", $onsubmit="") {
global $user;
$auth = $user->get_auth_html();
$extra = empty($form_id) ? '' : " id='$form_id'";
$extra = empty($form_id) ? '' : 'id="'. $form_id .'"';
if($multipart) {
$extra .= " enctype='multipart/form-data'";
}
if($onsubmit) {
$extra .= " onsubmit='$onsubmit'";
$extra .= ' onsubmit="'.$onsubmit.'"';
}
return "<form action='$target' method='$method'$extra>$auth";
return '<form action="'.$target.'" method="'.$method.'" '.$extra.'>'.$auth;
}
/**
@ -310,7 +314,7 @@ function make_form($target, $method="POST", $multipart=False, $form_id="", $onsu
function theme_file($filepath) {
global $config;
$theme = $config->get_string("theme","default");
return make_link("themes/$theme/$filepath");
return make_link('themes/'.$theme.'/'.$filepath);
}
@ -412,7 +416,7 @@ function _count_execs($db, $sql, $inputarray) {
if((DEBUG_SQL === true) || (is_null(DEBUG_SQL) && @$_GET['DEBUG_SQL'])) {
$fp = @fopen("data/sql.log", "a");
if($fp) {
if(is_array($inputarray)) {
if(isset($inputarray) && is_array($inputarray)) {
fwrite($fp, preg_replace('/\s+/msi', ' ', $sql)." -- ".join(", ", $inputarray)."\n");
}
else {
@ -443,12 +447,12 @@ function _count_execs($db, $sql, $inputarray) {
*/
function get_theme_object(Extension $class, $fatal=true) {
$base = get_class($class);
if(class_exists("Custom{$base}Theme")) {
$class = "Custom{$base}Theme";
if(class_exists('Custom'.$base.'Theme')) {
$class = 'Custom'.$base.'Theme';
return new $class();
}
elseif ($fatal || class_exists("{$base}Theme")) {
$class = "{$base}Theme";
elseif ($fatal || class_exists($base.'Theme')) {
$class = $base.'Theme';
return new $class();
} else {
return false;
@ -552,14 +556,14 @@ function get_base_href() {
$possible_vars = array('SCRIPT_NAME', 'PHP_SELF', 'PATH_INFO', 'ORIG_PATH_INFO');
$ok_var = null;
foreach($possible_vars as $var) {
if(substr($_SERVER[$var], -4) == '.php') {
if(substr($_SERVER[$var], -4) === '.php') {
$ok_var = $_SERVER[$var];
break;
}
}
assert(!empty($ok_var));
$dir = dirname($ok_var);
if($dir == "/" || $dir == "\\") $dir = "";
if($dir === "/" || $dir === "\\") $dir = "";
return $dir;
}
@ -579,10 +583,10 @@ function warehouse_path($base, $hash, $create=true) {
$ab = substr($hash, 0, 2);
$cd = substr($hash, 2, 2);
if(WH_SPLITS == 2) {
$pa = "$base/$ab/$cd/$hash";
$pa = $base.'/'.$ab.'/'.$cd.'/'.$hash;
}
else {
$pa = "$base/$ab/$hash";
$pa = $base.'/'.$ab.'/'.$hash;
}
if($create && !file_exists(dirname($pa))) mkdir(dirname($pa), 0755, true);
return $pa;
@ -938,7 +942,8 @@ function _sanitise_environment() {
*/
function _decaret($str) {
$out = "";
for($i=0; $i<strlen($str); $i++) {
$length = strlen($str);
for($i=0; $i<$length; $i++) {
if($str[$i] == "^") {
$i++;
if($str[$i] == "^") $out .= "^";
@ -985,7 +990,7 @@ function _get_page_request() {
global $config;
$args = _get_query_parts();
if(count($args) == 0 || strlen($args[0]) == 0) {
if( empty($args) || strlen($args[0]) === 0) {
$args = explode('/', $config->get_string('front_page'));
}
@ -1074,7 +1079,7 @@ function _start_cache() {
}
else {
header("Content-type: text/html");
header("Last-Modified: $gmdate_mod");
header('Last-Modified: '.$gmdate_mod);
$zdata = @file_get_contents($_cache_filename);
if(CACHE_MEMCACHE) {
$_cache_memcache->set($_cache_hash, $zdata, 0, 600);

View file

@ -114,7 +114,7 @@ class CommentList extends SimpleExtension {
public function onPageRequest(PageRequestEvent $event) {
global $page, $user;
if($event->page_matches("comment")) {
if($event->get_arg(0) == "add") {
if($event->get_arg(0) === "add") {
if(isset($_POST['image_id']) && isset($_POST['comment'])) {
try {
$cpe = new CommentPostingEvent($_POST['image_id'], $user, $_POST['comment']);
@ -127,10 +127,10 @@ class CommentList extends SimpleExtension {
}
}
}
else if($event->get_arg(0) == "delete") {
else if($event->get_arg(0) === "delete") {
if($user->is_admin()) {
// FIXME: post, not args
if($event->count_args() == 3) {
if($event->count_args() === 3) {
send_event(new CommentDeletionEvent($event->get_arg(1)));
$page->set_mode("redirect");
if(!empty($_SERVER['HTTP_REFERER'])) {
@ -145,7 +145,7 @@ class CommentList extends SimpleExtension {
$this->theme->display_permission_denied($page);
}
}
else if($event->get_arg(0) == "list") {
else if($event->get_arg(0) === "list") {
$page_num = int_escape($event->get_arg(1));
$this->build_page($page_num);
}
@ -369,7 +369,7 @@ class CommentList extends SimpleExtension {
global $database;
// sqlite fails at intervals
if($database->engine->name == "sqlite") return false;
if($database->engine->name === "sqlite") return false;
$window = int_escape($config->get_int('comment_window'));
$max = int_escape($config->get_int('comment_limit'));

View file

@ -21,12 +21,12 @@ class CommentListTheme extends Themelet {
$next = $page_number + 1;
$h_prev = ($page_number <= 1) ? "Prev" :
"<a href='".make_link("comment/list/$prev")."'>Prev</a>";
'<a href="'.make_link('comment/list/'.$prev).'">Prev</a>';
$h_index = "<a href='".make_link()."'>Index</a>";
$h_next = ($page_number >= $total_pages) ? "Next" :
"<a href='".make_link("comment/list/$next")."'>Next</a>";
'<a href="'.make_link('comment/list/'.$next).'">Next</a>';
$nav = "$h_prev | $h_index | $h_next";
$nav = $h_prev.' | '.$h_index.' | '.$h_next;
$page->set_title("Comments");
$page->set_heading("Comments");
@ -46,7 +46,7 @@ class CommentListTheme extends Themelet {
$comment_count = count($comments);
if($comment_limit > 0 && $comment_count > $comment_limit) {
$hidden = $comment_count - $comment_limit;
$comment_html .= "<p>showing $comment_limit of $comment_count comments</p>";
$comment_html .= '<p>showing '.$comment_limit.' of '.$comment_count.' comments</p>';
$comments = array_slice($comments, -$comment_limit);
}
$this->anon_id = 1;
@ -68,14 +68,14 @@ class CommentListTheme extends Themelet {
}
}
$html = "
<table class='comment_list_table'><tr>
<td>$thumb_html</td>
<td>$comment_html</td>
$html = '
<table class="comment_list_table"><tr>
<td>'.$thumb_html.'</td>
<td>'.$comment_html.'</td>
</tr></table>
";
';
$page->add_block(new Block("{$image->id}: ".($image->get_tag_list()), $html, "main", $position++));
$page->add_block(new Block( $image->id.': '.$image->get_tag_list(), $html, "main", $position++));
}
}
@ -146,23 +146,23 @@ class CommentListTheme extends Themelet {
$anoncode = "";
if($h_name == "Anonymous" && $this->anon_id >= 0) {
$anoncode = "<sup>{$this->anon_id}</sup>";
$anoncode = '<sup>'.$this->anon_id.'</sup>';
$this->anon_id++;
}
$h_userlink = "<a href='".make_link("user/$h_name")."'>$h_name</a>$anoncode";
$h_userlink = '<a href="'.make_link('user/'.$h_name).'">'.$h_name.'</a>'.$anoncode;
$stripped_nonl = str_replace("\n", "\\n", substr($tfe->stripped, 0, 50));
$stripped_nonl = str_replace("\r", "\\r", $stripped_nonl);
$h_dellink = $user->is_admin() ?
"<br>($h_poster_ip, $h_timestamp, <a ".
"onclick=\"return confirm('Delete comment by $h_name:\\n$stripped_nonl');\" ".
"href='".make_link("comment/delete/$i_comment_id/$i_image_id")."'>Del</a>)" : "";
'<br>('.$h_poster_ip.', '.$h_timestamp.', <a '.
'onclick="return confirm(\'Delete comment by '.$h_name.':\\n'.$stripped_nonl.'\');" '.
'href="'.make_link('comment/delete/'.$i_comment_id.'/'.$i_image_id).'">Del</a>)' : '';
if($trim) {
return "
$h_userlink: $h_comment
<a href='".make_link("post/view/$i_image_id")."'>&gt;&gt;&gt;</a>
$h_dellink
";
return '
'.$h_userlink.': '.$h_comment.'
<a href="'.make_link('post/view/'.$i_image_id).'">&gt;&gt;&gt;</a>
'.$h_dellink.'
';
}
else {
//$avatar = "";
@ -171,14 +171,14 @@ class CommentListTheme extends Themelet {
// $avatar = "<img src=\"http://www.gravatar.com/avatar/$hash.jpg\"><br>";
//}
$oe = ($this->comments_shown++ % 2 == 0) ? "even" : "odd";
return "
<a name='$i_comment_id'></a>
<div class='$oe comment'>
<!--<span class='timeago' style='float: right;'>$h_timestamp</span>-->
$h_userlink: $h_comment
$h_dellink
return '
<a name="'.$i_comment_id.'"></a>
<div class="'.$oe.' comment">
<!--<span class="timeago" style="float: right;">'.$h_timestamp.'</span>-->
'.$h_userlink.': '.$h_comment.'
'.$h_dellink.'
</div>
";
';
}
}
@ -189,15 +189,15 @@ class CommentListTheme extends Themelet {
$hash = CommentList::get_hash();
$captcha = $config->get_bool("comment_captcha") ? captcha_get_html() : "";
return "
".make_form(make_link("comment/add"))."
<input type='hidden' name='image_id' value='$i_image_id' />
<input type='hidden' name='hash' value='$hash' />
<textarea name='comment' rows='5' cols='50'></textarea>
$captcha
<br><input type='submit' value='Post Comment' />
return '
'.make_form(make_link("comment/add")).'
<input type="hidden" name="image_id" value="'.$i_image_id.'" />
<input type="hidden" name="hash" value="'.$hash.'" />
<textarea name="comment" rows="5" cols="50"></textarea>
'.$captcha.'
<br><input type="submit" value="Post Comment" />
</form>
";
';
}
}
?>

View file

@ -25,12 +25,13 @@ class ExtensionInfo {
function ExtensionInfo($main) {
$matches = array();
$lines = file($main);
$number_of_lines = count($lines);
preg_match("#(ext|contrib)/(.*)/main.php#", $main, $matches);
$this->ext_name = $matches[2];
$this->name = $this->ext_name;
$this->enabled = $this->is_enabled($this->ext_name);
for($i=0; $i<count($lines); $i++) {
for($i=0; $i<$number_of_lines; $i++) {
$line = $lines[$i];
if(preg_match("/Name: (.*)/", $line, $matches)) {
$this->name = $matches[1];

View file

@ -147,7 +147,7 @@ class Index extends SimpleExtension {
}
else {
$page->set_mode("redirect");
$page->set_redirect(make_link("post/list/$search/1"));
$page->set_redirect(make_link('post/list/'.$search.'/1'));
}
return;
}
@ -171,7 +171,7 @@ class Index extends SimpleExtension {
}
else if(count($search_terms) > 0 && count($images) == 1 && $page_number == 1) {
$page->set_mode("redirect");
$page->set_redirect(make_link("post/view/{$images[0]->id}"));
$page->set_redirect(make_link('post/view/'.$images[0]->id));
}
else {
send_event(new PostListBuildingEvent($search_terms));
@ -197,15 +197,16 @@ class Index extends SimpleExtension {
public function onSearchTermParse($event) {
$matches = array();
if(preg_match("/^size(<|>|<=|>=|=)(\d+)x(\d+)$/", $event->term, $matches)) {
// check for tags first as tag based searches are more common.
if(preg_match("/tags(<|>|<=|>=|=)(\d+)/", $event->term, $matches)) {
$cmp = $matches[1];
$args = array("width"=>int_escape($matches[2]), "height"=>int_escape($matches[3]));
$event->add_querylet(new Querylet("width $cmp :width AND height $cmp :height", $args));
$tags = $matches[2];
$event->add_querylet(new Querylet('images.id IN (SELECT DISTINCT image_id FROM image_tags GROUP BY image_id HAVING count(image_id) '.$cmp.' '.$tags.')'));
}
else if(preg_match("/^ratio(<|>|<=|>=|=)(\d+):(\d+)$/", $event->term, $matches)) {
$cmp = $matches[1];
$args = array("width"=>int_escape($matches[2]), "height"=>int_escape($matches[3]));
$event->add_querylet(new Querylet("width / height $cmp :width / :height", $args));
$event->add_querylet(new Querylet('width / height '.$cmp.' :width / :height', $args));
}
else if(preg_match("/^(filesize|id)(<|>|<=|>=|=)(\d+[kmg]?b?)$/i", $event->term, $matches)) {
$col = $matches[1];
@ -215,24 +216,24 @@ class Index extends SimpleExtension {
}
else if(preg_match("/^(hash|md5)=([0-9a-fA-F]*)$/i", $event->term, $matches)) {
$hash = strtolower($matches[2]);
$event->add_querylet(new Querylet("images.hash = '$hash'"));
$event->add_querylet(new Querylet('images.hash = "'.$hash.'"'));
}
else if(preg_match("/^(filetype|ext)=([a-zA-Z0-9]*)$/i", $event->term, $matches)) {
$ext = strtolower($matches[2]);
$event->add_querylet(new Querylet("images.ext = '$ext'"));
$event->add_querylet(new Querylet('images.ext = "'.$ext.'"'));
}
else if(preg_match("/^(filename|name)=([a-zA-Z0-9]*)$/i", $event->term, $matches)) {
$filename = strtolower($matches[2]);
$event->add_querylet(new Querylet("images.filename LIKE '%$filename%'"));
$event->add_querylet(new Querylet('images.filename LIKE "%'.$filename.'%"'));
}
else if(preg_match("/^posted=(([0-9\*]*)?(-[0-9\*]*)?(-[0-9\*]*)?)$/", $event->term, $matches)) {
$val = str_replace("*", "%", $matches[1]);
$event->add_querylet(new Querylet("images.posted LIKE '%$val%'"));
$event->add_querylet(new Querylet('images.posted LIKE "%'.$val.'%"'));
}
else if(preg_match("/tags(<|>|<=|>=|=)(\d+)/", $event->term, $matches)) {
else if(preg_match("/^size(<|>|<=|>=|=)(\d+)x(\d+)$/", $event->term, $matches)) {
$cmp = $matches[1];
$tags = $matches[2];
$event->add_querylet(new Querylet("images.id IN (SELECT DISTINCT image_id FROM image_tags GROUP BY image_id HAVING count(image_id) $cmp $tags)"));
$args = array("width"=>int_escape($matches[2]), "height"=>int_escape($matches[3]));
$event->add_querylet(new Querylet('width '.$cmp.' :width AND height '.$cmp.' :height', $args));
}
}
}

View file

@ -69,12 +69,12 @@ EOD;
$next = $page_number + 1;
$u_tags = url_escape(implode(" ", $search_terms));
$query = empty($u_tags) ? "" : "/$u_tags";
$query = empty($u_tags) ? "" : '/'.$u_tags;
$h_prev = ($page_number <= 1) ? "Prev" : "<a href='".make_link("post/list$query/$prev")."'>Prev</a>";
$h_prev = ($page_number <= 1) ? "Prev" : '<a href="'.make_link('post/list'.$query.'/'.$prev).'">Prev</a>';
$h_index = "<a href='".make_link()."'>Index</a>";
$h_next = ($page_number >= $total_pages) ? "Next" : "<a href='".make_link("post/list$query/$next")."'>Next</a>";
$h_next = ($page_number >= $total_pages) ? "Next" : '<a href="'.make_link('post/list'.$query.'/'.$next).'">Next</a>';
$h_search_string = html_escape(implode(" ", $search_terms));
$h_search_link = make_link();
@ -102,7 +102,7 @@ EOD;
</form>
<div id='search_completions'></div>";
return "$h_prev | $h_index | $h_next<br>$h_search";
return $h_prev.' | '.$h_index.' | '.$h_next.'<br>'.$h_search;
}
protected function build_table($images, $query) {

View file

@ -16,7 +16,9 @@ class UploadTheme extends Themelet {
$tl_enabled = ($config->get_string("transload_engine", "none") != "none");
// Uploader 2.0!
$upload_list = "";
for($i=0; $i<$config->get_int('upload_count'); $i++)
$upload_count = $config->get_int('upload_count');
for($i=0; $i<$upload_count; $i++)
{
$a=$i+1;
$s=$i-1;
@ -243,7 +245,9 @@ class UploadTheme extends Themelet {
global $config;
$upload_list = "";
for($i=0; $i<$config->get_int('upload_count'); $i++) {
$upload_count = $config->get_int('upload_count');
for($i=0; $i<$upload_count; $i++) {
if($i == 0) $style = ""; // "style='display:visible'";
else $style = "style='display:none'";
$upload_list .= "<input size='10' ".

View file

@ -30,9 +30,9 @@ class UserPageTheme extends Themelet {
public function display_user_block(Page $page, User $user, $parts) {
$h_name = html_escape($user->name);
$html = "Logged in as $h_name";
$html = 'Logged in as '.$h_name;
foreach($parts as $part) {
$html .= "<br><a href='{$part["link"]}'>{$part["name"]}</a>";
$html .= '<br><a href="'.$part["link"].'">'.$part["name"].'</a>';
}
$page->add_block(new Block("User Links", $html, "left", 90));
}
@ -48,12 +48,12 @@ class UserPageTheme extends Themelet {
}
if(empty($tac)) {$html = "";}
else {$html = "<p>$tac</p>";}
else {$html = '<p>'.$tac.'</p>';}
$reca = "<tr><td colspan='2'>".captcha_get_html()."</td></tr>";
$html .= "
".make_form(make_link("user_admin/create"))."
$html .= '
'.make_form(make_link("user_admin/create"))."
<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>
@ -81,8 +81,8 @@ class UserPageTheme extends Themelet {
public function display_login_block(Page $page) {
global $config;
$html = "
".make_form(make_link("user_admin/login"))."
$html = '
'.make_form(make_link("user_admin/login"))."
<table summary='Login Form'>
<tr>
<td width='70'><label for='user'>Name</label></td>
@ -107,7 +107,7 @@ class UserPageTheme extends Themelet {
$html .= "<tr><td>Uploaded from: ";
$n = 0;
foreach($uploads as $ip => $count) {
$html .= "<br>$ip ($count)";
$html .= '<br>'.$ip.' ('.$count.')';
if(++$n >= 20) {
$html .= "<br>...";
break;
@ -117,7 +117,7 @@ class UserPageTheme extends Themelet {
$html .= "</td><td>Commented from:";
$n = 0;
foreach($comments as $ip => $count) {
$html .= "<br>$ip ($count)";
$html .= '<br>'.$ip.' ('.$count.')';
if(++$n >= 20) {
$html .= "<br>...";
break;
@ -133,10 +133,10 @@ class UserPageTheme extends Themelet {
public function display_user_page(User $duser, $stats) {
global $page, $user;
assert(is_array($stats));
$stats[] = "User ID: {$duser->id}";
$stats[] = 'User ID: '.$duser->id;
$page->set_title("{$duser->name}'s Page");
$page->set_heading("{$duser->name}'s Page");
$page->set_title($duser->name."'s Page");
$page->set_heading($duser->name."'s Page");
$page->add_block(new NavBlock());
$page->add_block(new Block("Stats", join("<br>", $stats), "main", 0));

View file

@ -115,22 +115,22 @@ try {
ctx_log_start("Loading themelets");
// load the theme parts
$_theme = $config->get_string("theme", "default");
if(!file_exists("themes/$_theme")) $_theme = "default";
if(file_exists("themes/$_theme/custompage.class.php")) require_once "themes/$_theme/custompage.class.php";
require_once "themes/$_theme/layout.class.php";
require_once "themes/$_theme/themelet.class.php";
if(!file_exists('themes/'.$_theme)) $_theme = "default";
if(file_exists('themes/'.$_theme.'/custompage.class.php')) require_once 'themes/'.$_theme.'/custompage.class.php';
require_once 'themes/'.$_theme.'/layout.class.php';
require_once 'themes/'.$_theme.'/themelet.class.php';
$themelets = glob("ext/*/theme.php");
foreach($themelets as $filename) {
require_once $filename;
}
$custom_themelets = glob("themes/$_theme/*.theme.php");
$custom_themelets = glob('themes/'.$_theme.'/*.theme.php');
if($custom_themelets) {
$m = array();
foreach($custom_themelets as $filename) {
if(preg_match("/themes\/$_theme\/(.*)\.theme\.php/",$filename,$m)
&& in_array("ext/{$m[1]}/theme.php", $themelets)) {
if(preg_match('/themes\/'.$_theme.'\/(.*)\.theme\.php/',$filename,$m)
&& in_array('ext/'.$m[1].'/theme.php', $themelets)) {
require_once $filename;
}
}
@ -224,17 +224,17 @@ catch(Exception $e) {
$message = $e->getMessage();
//$trace = var_dump($e->getTrace());
header("HTTP/1.0 500 Internal Error");
print <<<EOD
echo '
<html>
<head>
<title>Internal error - SCore-$version</title>
<title>Internal error - SCore-'.$version.'</title>
</head>
<body>
<h1>Internal Error</h1>
<p>$message
<p>'.$message.'
</body>
</html>
EOD;
';
if($database && $database->db) $database->db->rollback();
ctx_log_ender();
}

View file

@ -904,7 +904,9 @@ class Securimage {
}
$out_data = '';
for($i = 0; $i < sizeof($files); ++$i) {
$file_size = sizeof($files);
for($i = 0; $i < $file_size; ++$i) {
if ($i == 0) { // output header
$out_data .= pack('C4VC8', ord('R'), ord('I'), ord('F'), ord('F'), $data_len + 36, ord('W'), ord('A'), ord('V'), ord('E'), ord('f'), ord('m'), ord('t'), ord(' '));

View file

@ -29,13 +29,13 @@ class Themelet {
*/
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);
$i_id = (int) $image->id;
$h_view_link = make_link('post/view/'.$i_id, $query);
$h_thumb_link = $image->get_thumb_link();
// Removes the size tag if the file is an mp3
if($image->ext == 'mp3'){
if($image->ext === 'mp3'){
$iitip = $image->get_tooltip();
$mp3tip = array("0x0");
$h_tip = str_replace($mp3tip, " ", $iitip);
@ -45,29 +45,29 @@ class Themelet {
if(strstr($h_tip, " ")){
$h_tip = html_escape(str_replace($justincase, "", $h_tip));
}else{
$h_tip = html_escape($h_tip);
$h_tip = html_escape($h_tip);
}
}else{
$h_tip = html_escape($image->get_tooltip());
$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'){
if($image->ext === 'swf' || $image->ext === 'svg'){
$tsize = get_thumbnail_size($config->get_int('thumb_width'), $config->get_int('thumb_height')); }
else{
$tsize = get_thumbnail_size($image->width, $image->height); }
return "
return '
<!-- cancel border -->
<div class='thumbblock'>
<div class='thumb'>
<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' height='{$tsize[1]}' width='{$tsize[0]}' src='$h_thumb_link'>
<div class="thumbblock">
<div class="thumb">
<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.'" height="'.$tsize[1].'" width="'.$tsize[0].'" src="'.$h_thumb_link.'">
</a>
</div>
</div>
";
';
}
@ -81,8 +81,8 @@ class Themelet {
}
private function gen_page_link($base_url, $query, $page, $name) {
$link = make_link("$base_url/$page", $query);
return "<a href='$link'>$name</a>";
$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) {
@ -116,8 +116,8 @@ class Themelet {
}
$pages_html = implode(" | ", $pages);
return "<p class='paginator'>$first_html | $prev_html | $random_html | $next_html | $last_html".
"<br>&lt;&lt; $pages_html &gt;&gt;</p><!-- cancel border -->";
return '<p class="paginator">'.$first_html.' | '.$prev_html.' | '.$random_html.' | '.$next_html.' | '.$last_html
.'<br>&lt;&lt; '.$pages_html.' &gt;&gt;</p><!-- cancel border -->';
}
}
?>