formatting

This commit is contained in:
Shish 2019-09-29 14:30:55 +01:00
parent 56e247faf5
commit a6bb15d859
108 changed files with 424 additions and 429 deletions

View file

@ -159,7 +159,7 @@ abstract class BaseConfig implements Config
public function set_array(string $name, ?array $value): void
{
if($value!=null) {
if ($value!=null) {
$this->values[$name] = implode(",", $value);
} else {
$this->values[$name] = null;
@ -313,16 +313,19 @@ class DatabaseConfig extends BaseConfig
private $sub_column;
private $sub_value;
public function __construct(Database $database, string $table_name = "config",
string $sub_column = null, string $sub_value = null)
{
public function __construct(
Database $database,
string $table_name = "config",
string $sub_column = null,
string $sub_value = null
) {
$this->database = $database;
$this->table_name = $table_name;
$this->sub_value = $sub_value;
$this->sub_column = $sub_column;
$cache_name = "config";
if(!empty($sub_value)) {
if (!empty($sub_value)) {
$cache_name .= "_".$sub_value;
}
@ -335,12 +338,12 @@ class DatabaseConfig extends BaseConfig
$query = "SELECT name, value FROM {$this->table_name}";
$args = [];
if(!empty($sub_column)&&!empty($sub_value)) {
if (!empty($sub_column)&&!empty($sub_value)) {
$query .= " WHERE $sub_column = :sub_value";
$args["sub_value"] = $sub_value;
}
foreach ($this->database->get_all($query, $args ) as $row) {
foreach ($this->database->get_all($query, $args) as $row) {
$this->values[$row["name"]] = $row["value"];
}
$this->database->cache->set($cache_name, $this->values);
@ -359,7 +362,7 @@ class DatabaseConfig extends BaseConfig
$args = ["name"=>$name];
$cols = ["name","value"];
$params = [":name",":value"];
if(!empty($this->sub_column)&&!empty($this->sub_value)) {
if (!empty($this->sub_column)&&!empty($this->sub_value)) {
$query .= " AND $this->sub_column = :sub_value";
$args["sub_value"] = $this->sub_value;
$cols[] = $this->sub_column;
@ -370,8 +373,9 @@ class DatabaseConfig extends BaseConfig
$args["value"] =$this->values[$name];
$this->database->Execute(
"INSERT INTO {$this->table_name} (".join(",",$cols).") VALUES (".join(",",$params).")",
$args);
"INSERT INTO {$this->table_name} (".join(",", $cols).") VALUES (".join(",", $params).")",
$args
);
}
// rather than deleting and having some other request(s) do a thundering
// herd of race-conditioned updates, just save the updated version once here

View file

@ -172,9 +172,9 @@ class Database
if (is_null($this->engine)) {
$this->connect_engine();
}
if($input===true) {
if ($input===true) {
return $this->engine->BOOL_Y;
} else if ($input===false) {
} elseif ($input===false) {
return $this->engine->BOOL_N;
}
return $input;
@ -192,7 +192,7 @@ class Database
{
global $_tracer, $tracer_enabled;
$dur = microtime(true) - $start;
if($tracer_enabled) {
if ($tracer_enabled) {
$query = trim(preg_replace('/^[\t ]+/m', '', $query)); // trim leading whitespace
$_tracer->complete($start * 1000000, $dur * 1000000, "DB Query", ["query"=>$query, "args"=>$args, "method"=>$method]);
}

View file

@ -1,5 +1,6 @@
<?php
abstract class SCORE {
abstract class SCORE
{
const AIPK = "SCORE_AIPK";
const INET = "SCORE_INET";
const BOOL_Y = "SCORE_BOOL_Y";

View file

@ -97,7 +97,7 @@ abstract class Extension
$class = $class ?? get_called_class();
$this->theme = $this->get_theme_object($class);
$this->info = ExtensionInfo::get_for_extension_class($class);
if($this->info===null) {
if ($this->info===null) {
throw new Exception("Info class not found for extension $class");
}
$this->key = $this->info->key;
@ -132,14 +132,16 @@ abstract class Extension
public static function determine_enabled_extensions()
{
self::$enabled_extensions = [];
foreach(array_merge(ExtensionInfo::get_core_extensions(),
explode(",", EXTRA_EXTS)) as $key) {
foreach (array_merge(
ExtensionInfo::get_core_extensions(),
explode(",", EXTRA_EXTS)
) as $key) {
$ext = ExtensionInfo::get_by_key($key);
if($ext===null) {
if ($ext===null) {
continue;
}
self::$enabled_extensions[] = $ext->key;
if(!empty($ext->dependencies)) {
if (!empty($ext->dependencies)) {
foreach ($ext->dependencies as $dep) {
self::$enabled_extensions[] = $dep;
}
@ -158,7 +160,7 @@ abstract class Extension
}
public static function get_enabled_extensions_as_string(): string
{
return implode(",",self::$enabled_extensions);
return implode(",", self::$enabled_extensions);
}
}
@ -202,7 +204,7 @@ abstract class ExtensionInfo
public function is_supported(): bool
{
if($this->supported===null) {
if ($this->supported===null) {
$this->check_support();
}
return $this->supported;
@ -210,7 +212,7 @@ abstract class ExtensionInfo
public function get_support_info(): string
{
if($this->supported===null) {
if ($this->supported===null) {
$this->check_support();
}
return $this->support_info;
@ -222,22 +224,22 @@ abstract class ExtensionInfo
protected function __construct()
{
if(empty($this->key)) {
if (empty($this->key)) {
throw new Exception("key field is required");
}
if(empty($this->name)) {
if (empty($this->name)) {
throw new Exception("name field is required for extension $this->key");
}
if(!empty($this->visibility)&&!in_array($this->visibility, self::VALID_VISIBILITY)) {
if (!empty($this->visibility)&&!in_array($this->visibility, self::VALID_VISIBILITY)) {
throw new Exception("Invalid visibility for extension $this->key");
}
if(!is_array($this->db_support)) {
if (!is_array($this->db_support)) {
throw new Exception("db_support has to be an array for extension $this->key");
}
if(!is_array($this->authors)) {
if (!is_array($this->authors)) {
throw new Exception("authors has to be an array for extension $this->key");
}
if(!is_array($this->dependencies)) {
if (!is_array($this->dependencies)) {
throw new Exception("dependencies has to be an array for extension $this->key");
}
}
@ -251,7 +253,7 @@ abstract class ExtensionInfo
{
global $database;
$this->support_info = "";
if(!empty($this->db_support)&&!in_array($database->get_driver_name(), $this->db_support)) {
if (!empty($this->db_support)&&!in_array($database->get_driver_name(), $this->db_support)) {
$this->support_info .= "Database not supported. ";
}
// Additional checks here as needed
@ -276,7 +278,7 @@ abstract class ExtensionInfo
public static function get_by_key(string $key): ?ExtensionInfo
{
if(array_key_exists($key, self::$all_info_by_key)) {
if (array_key_exists($key, self::$all_info_by_key)) {
return self::$all_info_by_key[$key];
} else {
return null;
@ -296,20 +298,19 @@ abstract class ExtensionInfo
public static function load_all_extension_info()
{
foreach (get_declared_classes() as $class) {
$rclass = new ReflectionClass($class);
if ($rclass->isAbstract()) {
// don't do anything
} elseif (is_subclass_of($class, "ExtensionInfo")) {
$extension_info = new $class();
if(array_key_exists($extension_info->key, self::$all_info_by_key)) {
if (array_key_exists($extension_info->key, self::$all_info_by_key)) {
throw new Exception("Extension Info $class with key $extension_info->key has already been loaded");
}
self::$all_info_by_key[$extension_info->key] = $extension_info;
self::$all_info_by_class[$class] = $extension_info;
if($extension_info->core===true) {
if ($extension_info->core===true) {
self::$core_extensions[] = $extension_info->key;
}
}

View file

@ -143,7 +143,7 @@ class Image
if (!$result) {
$querylet = Image::build_search_querylet($tag_conditions, $img_conditions);
$querylet->append(new Querylet(" ORDER BY ".(Image::$order_sql ?: "images.".$config->get_string("index_order"))));
if($limit!=null) {
if ($limit!=null) {
$querylet->append(new Querylet(" LIMIT :limit ", ["limit" => $limit]));
}
$querylet->append(new Querylet(" OFFSET :offset ", ["offset"=>$start]));
@ -833,10 +833,9 @@ class Image
$opts = $matches[2];
$post = $matches[3];
if(isset($flexihashes[$opts])) {
if (isset($flexihashes[$opts])) {
$flexihash = $flexihashes[$opts];
}
else {
} else {
$flexihash = new Flexihash\Flexihash();
foreach (explode(",", $opts) as $opt) {
$parts = explode("=", $opt);
@ -968,7 +967,7 @@ class Image
FROM images
WHERE 1=0
");
} elseif($tag_count==1) {
} elseif ($tag_count==1) {
// All wildcard terms that qualify for a single tag can be treated the same as non-wildcards
$positive_tag_id_array[] = $tag_ids[0];
} else {
@ -985,14 +984,14 @@ class Image
$sql = "";
assert($positive_tag_id_array || $positive_wildcard_id_array || $negative_tag_id_array, @$_GET['q']);
if(!empty($positive_tag_id_array) || !empty($positive_wildcard_id_array)) {
if (!empty($positive_tag_id_array) || !empty($positive_wildcard_id_array)) {
$inner_joins = [];
if (!empty($positive_tag_id_array)) {
foreach($positive_tag_id_array as $tag) {
foreach ($positive_tag_id_array as $tag) {
$inner_joins[] = "= $tag";
}
}
if(!empty($positive_wildcard_id_array)) {
if (!empty($positive_wildcard_id_array)) {
foreach ($positive_wildcard_id_array as $tags) {
$positive_tag_id_list = join(', ', $tags);
$inner_joins[] = "IN ($positive_tag_id_list)";
@ -1006,12 +1005,12 @@ class Image
$i++;
$sub_query .= " INNER JOIN image_tags it$i ON it$i.image_id = it.image_id AND it$i.tag_id $inner_join ";
}
if(!empty($negative_tag_id_array)) {
if (!empty($negative_tag_id_array)) {
$negative_tag_id_list = join(', ', $negative_tag_id_array);
$sub_query .= " LEFT JOIN image_tags negative ON negative.image_id = it.image_id AND negative.tag_id IN ($negative_tag_id_list) ";
}
$sub_query .= "WHERE it.tag_id $first ";
if(!empty($negative_tag_id_array)) {
if (!empty($negative_tag_id_array)) {
$sub_query .= " AND negative.image_id IS NULL";
}
$sub_query .= " GROUP BY it.image_id ";
@ -1022,7 +1021,7 @@ class Image
$sub_query
) a on a.image_id = images.id
";
} elseif(!empty($negative_tag_id_array)) {
} elseif (!empty($negative_tag_id_array)) {
$negative_tag_id_list = join(', ', $negative_tag_id_array);
$sql = "
SELECT images.*

View file

@ -124,7 +124,7 @@ function get_thumbnail_size(int $orig_width, int $orig_height, bool $use_dpi_sca
}
if($use_dpi_scaling) {
if ($use_dpi_scaling) {
list($max_width, $max_height) = get_thumbnail_max_size_scaled();
} else {
$max_width = $config->get_int(ImageConfig::THUMB_WIDTH);
@ -138,7 +138,6 @@ function get_thumbnail_size(int $orig_width, int $orig_height, bool $use_dpi_sca
} else {
return $output;
}
}
function get_scaled_by_aspect_ratio(int $original_width, int $original_height, int $max_width, int $max_height) : array
@ -167,19 +166,20 @@ function get_thumbnail_max_size_scaled(): array
}
function create_image_thumb(string $hash, string $type, string $engine = null) {
function create_image_thumb(string $hash, string $type, string $engine = null)
{
global $config;
$inname = warehouse_path(Image::IMAGE_DIR, $hash);
$outname = warehouse_path(Image::THUMBNAIL_DIR, $hash);
$tsize = get_thumbnail_max_size_scaled();
if(empty($engine)) {
if (empty($engine)) {
$engine = $config->get_string(ImageConfig::THUMB_ENGINE);
}
$output_format = $config->get_string(ImageConfig::THUMB_TYPE);
if($output_format=="webp") {
if ($output_format=="webp") {
$output_format = Media::WEBP_LOSSY;
}
@ -206,10 +206,10 @@ function format_milliseconds(int $input): string
$remainder = floor($input / 1000);
foreach (TIME_UNITS AS $unit=>$conversion) {
foreach (TIME_UNITS as $unit=>$conversion) {
$count = $remainder % $conversion;
$remainder = floor($remainder / $conversion);
if($count==0&&$remainder<1) {
if ($count==0&&$remainder<1) {
break;
}
$output = "$count".$unit." ".$output;

View file

@ -307,14 +307,14 @@ class Page
$active_link = null;
// To save on event calls, we check if one of the top-level links has already been marked as active
foreach ($nav_links as $link) {
if($link->active===true) {
if ($link->active===true) {
$active_link = $link;
break;
}
}
$sub_links = null;
// If one is, we just query for sub-menu options under that one tab
if($active_link!==null) {
if ($active_link!==null) {
$psnbe = new PageSubNavBuildingEvent($active_link->name);
send_event($psnbe);
$sub_links = $psnbe->links;
@ -326,13 +326,13 @@ class Page
// Now we check for a current link so we can identify the sub-links to show
foreach ($psnbe->links as $sub_link) {
if($sub_link->active===true) {
if ($sub_link->active===true) {
$sub_links = $psnbe->links;
break;
}
}
// If the active link has been detected, we break out
if($sub_links!==null) {
if ($sub_links!==null) {
$link->active = true;
break;
}
@ -372,7 +372,6 @@ class Page
header('Accept-Ranges: bytes');
if (isset($_SERVER['HTTP_RANGE'])) {
$c_start = $start;
$c_end = $end;
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
@ -418,9 +417,10 @@ class Page
// After flush, we can tell if the client browser has disconnected.
// This means we can start sending a large file, and if we detect they disappeared
// then we can just stop and not waste any more resources or bandwidth.
if (connection_status() != 0)
if (connection_status() != 0) {
break;
}
}
} finally {
fclose($fp);
}
@ -541,7 +541,7 @@ class PageSubNavBuildingEvent extends Event
public function add_nav_link(string $name, Link $link, string $desc, ?bool $active = null, int $order = 50)
{
$this->links[] = new NavLink($name, $link, $desc, $active,$order);
$this->links[] = new NavLink($name, $link, $desc, $active, $order);
}
}
@ -561,7 +561,7 @@ class NavLink
$this->link = $link;
$this->description = $description;
$this->order = $order;
if($active==null) {
if ($active==null) {
$query = ltrim(_get_query(), "/");
if ($query === "") {
// This indicates the front page, so we check what's set as the front page
@ -572,15 +572,14 @@ class NavLink
} else {
$this->active = self::is_active([$link->page], $front_page);
}
} elseif($query===$link->page) {
} elseif ($query===$link->page) {
$this->active = true;
}else {
} else {
$this->active = self::is_active([$link->page]);
}
} else {
$this->active = $active;
}
}
public static function is_active(array $pages_matched, string $url = null): bool

View file

@ -66,5 +66,4 @@ abstract class Permissions
public const VIEW_TRASH = "view_trash";
public const PERFORM_BULK_ACTIONS = "perform_bulk_actions";
}

View file

@ -759,7 +759,7 @@ function validate_input(array $inputs): array
*/
function sanitize_path(string $path): string
{
return preg_replace('|[\\\\/]+|S',DIRECTORY_SEPARATOR,$path);
return preg_replace('|[\\\\/]+|S', DIRECTORY_SEPARATOR, $path);
}
/**
@ -770,11 +770,11 @@ function join_path(string ...$paths): string
{
$output = "";
foreach ($paths as $path) {
if(empty($path)) {
if (empty($path)) {
continue;
}
$path = sanitize_path($path);
if(empty($output)) {
if (empty($output)) {
$output = $path;
} else {
$output = rtrim($output, DIRECTORY_SEPARATOR);
@ -790,8 +790,8 @@ function join_path(string ...$paths): string
*/
function iterator_map(callable $callback, iterator $iter): Generator
{
foreach($iter as $i) {
yield call_user_func($callback,$i);
foreach ($iter as $i) {
yield call_user_func($callback, $i);
}
}
@ -810,12 +810,16 @@ function get_class_from_file(string $file): string
$class = $buffer = '';
$i = 0;
while (!$class) {
if (feof($fp)) break;
if (feof($fp)) {
break;
}
$buffer .= fread($fp, 512);
$tokens = token_get_all($buffer);
if (strpos($buffer, '{') === false) continue;
if (strpos($buffer, '{') === false) {
continue;
}
for (;$i<count($tokens);$i++) {
if ($tokens[$i][0] === T_CLASS) {

View file

@ -108,21 +108,29 @@ function send_event(Event $event): void
// send_event() is performance sensitive, and with the number
// of times tracer gets called the time starts to add up
if ($tracer_enabled) $_tracer->begin(get_class($event));
if ($tracer_enabled) {
$_tracer->begin(get_class($event));
}
// SHIT: http://bugs.php.net/bug.php?id=35106
$my_event_listeners = $_shm_event_listeners[get_class($event)];
ksort($my_event_listeners);
foreach ($my_event_listeners as $listener) {
if ($tracer_enabled) $_tracer->begin(get_class($listener));
if ($tracer_enabled) {
$_tracer->begin(get_class($listener));
}
if (method_exists($listener, $method_name)) {
$listener->$method_name($event);
}
if ($tracer_enabled) $_tracer->end();
if($event->stop_processing===true) {
if ($tracer_enabled) {
$_tracer->end();
}
if ($event->stop_processing===true) {
break;
}
}
$_shm_event_count++;
if ($tracer_enabled) $_tracer->end();
if ($tracer_enabled) {
$_tracer->end();
}
}

View file

@ -48,7 +48,6 @@ class PolyfillsTest extends \PHPUnit\Framework\TestCase
public function test_sanitize_path()
{
$this->assertEquals(
"one",
sanitize_path("one")
@ -88,7 +87,6 @@ class PolyfillsTest extends \PHPUnit\Framework\TestCase
DIRECTORY_SEPARATOR."one".DIRECTORY_SEPARATOR."two".DIRECTORY_SEPARATOR,
sanitize_path("\\/one/\\/\\/two\\/")
);
}
public function test_join_path()
@ -100,22 +98,22 @@ class PolyfillsTest extends \PHPUnit\Framework\TestCase
$this->assertEquals(
"one".DIRECTORY_SEPARATOR."two",
join_path("one","two")
join_path("one", "two")
);
$this->assertEquals(
"one".DIRECTORY_SEPARATOR."two".DIRECTORY_SEPARATOR."three",
join_path("one","two","three")
join_path("one", "two", "three")
);
$this->assertEquals(
"one".DIRECTORY_SEPARATOR."two".DIRECTORY_SEPARATOR."three",
join_path("one/two","three")
join_path("one/two", "three")
);
$this->assertEquals(
DIRECTORY_SEPARATOR."one".DIRECTORY_SEPARATOR."two".DIRECTORY_SEPARATOR."three".DIRECTORY_SEPARATOR,
join_path("\\/////\\\\one/\///"."\\//two\/\\//\\//","//\/\\\/three/\\/\/")
join_path("\\/////\\\\one/\///"."\\//two\/\\//\\//", "//\/\\\/three/\\/\/")
);
}
}

View file

@ -3,65 +3,63 @@ require_once "core/util.php";
class UtilTest extends \PHPUnit\Framework\TestCase
{
public function test_warehouse_path()
{
$hash = "7ac19c10d6859415";
$this->assertEquals(
join_path(DATA_DIR,"base",$hash),
warehouse_path("base",$hash,false, 0)
join_path(DATA_DIR, "base", $hash),
warehouse_path("base", $hash, false, 0)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a",$hash),
warehouse_path("base",$hash,false, 1)
join_path(DATA_DIR, "base", "7a", $hash),
warehouse_path("base", $hash, false, 1)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1",$hash),
warehouse_path("base",$hash,false, 2)
join_path(DATA_DIR, "base", "7a", "c1", $hash),
warehouse_path("base", $hash, false, 2)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c",$hash),
warehouse_path("base",$hash,false, 3)
join_path(DATA_DIR, "base", "7a", "c1", "9c", $hash),
warehouse_path("base", $hash, false, 3)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10",$hash),
warehouse_path("base",$hash,false, 4)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", $hash),
warehouse_path("base", $hash, false, 4)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10","d6",$hash),
warehouse_path("base",$hash,false, 5)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", "d6", $hash),
warehouse_path("base", $hash, false, 5)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10","d6","85",$hash),
warehouse_path("base",$hash,false, 6)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", "d6", "85", $hash),
warehouse_path("base", $hash, false, 6)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10","d6","85","94",$hash),
warehouse_path("base",$hash,false, 7)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", "d6", "85", "94", $hash),
warehouse_path("base", $hash, false, 7)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10","d6","85","94","15",$hash),
warehouse_path("base",$hash,false, 8)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", "d6", "85", "94", "15", $hash),
warehouse_path("base", $hash, false, 8)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10","d6","85","94","15",$hash),
warehouse_path("base",$hash,false, 9)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", "d6", "85", "94", "15", $hash),
warehouse_path("base", $hash, false, 9)
);
$this->assertEquals(
join_path(DATA_DIR,"base","7a","c1","9c","10","d6","85","94","15",$hash),
warehouse_path("base",$hash,false, 10)
join_path(DATA_DIR, "base", "7a", "c1", "9c", "10", "d6", "85", "94", "15", $hash),
warehouse_path("base", $hash, false, 10)
);
}
}

View file

@ -174,7 +174,7 @@ function warehouse_path(string $base, string $hash, bool $create=true, int $spli
{
$dirs =[DATA_DIR, $base];
$splits = min($splits, strlen($hash) / 2);
for($i = 0; $i < $splits; $i++) {
for ($i = 0; $i < $splits; $i++) {
$dirs[] = substr($hash, $i * 2, 2);
}
$dirs[] = $hash;
@ -343,7 +343,7 @@ function join_url(string $base, string ...$paths)
{
$output = $base;
foreach ($paths as $path) {
$output = rtrim($output,"/");
$output = rtrim($output, "/");
$path = ltrim($path, "/");
$output .= "/".$path;
}

View file

@ -91,7 +91,7 @@ class AdminPage extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::MANAGE_ADMINTOOLS)) {
$event->add_nav_link("admin", new Link('admin'), "Board Admin");
}

View file

@ -55,12 +55,11 @@ class AdminPageTheme extends Themelet
$html .= "<input type='submit' value='Set Tag Case'>";
$html .= "</form>\n";
$page->add_block(new Block("Set Tag Case", $html));
}
public function dbq_html($terms)
{
if(Extension::is_enabled(TrashInfo::KEY)) {
if (Extension::is_enabled(TrashInfo::KEY)) {
$warning = "This delete method will bypass the trash<br/>";
}
if (class_exists("ImageBan")) {
@ -75,6 +74,4 @@ class AdminPageTheme extends Themelet
";
return $html;
}
}

View file

@ -109,7 +109,7 @@ class AliasEditor extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="tags") {
if ($event->parent=="tags") {
$event->add_nav_link("aliases", new Link('alias/list'), "Aliases", NavLink::is_active(["alias"]));
}
}

View file

@ -47,7 +47,7 @@ class Artists extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Artist";
$block->body = $this->theme->get_help_html();

View file

@ -33,8 +33,8 @@ class AutoComplete extends Extension
//$limit = 0;
$cache_key = "autocomplete-$s";
$limitSQL = "";
$s = str_replace('_','\_', $s);
$s = str_replace('%','\%', $s);
$s = str_replace('_', '\_', $s);
$s = str_replace('%', '\%', $s);
$SQLarr = ["search"=>"$s%"]; #, "cat_search"=>"%:$s%"];
if (isset($_GET["limit"]) && $_GET["limit"] !== 0) {
$limitSQL = "LIMIT :limit";

View file

@ -22,7 +22,7 @@ class Blocks extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::MANAGE_BLOCKS)) {
$event->add_nav_link("blocks", new Link('blocks/list'), "Blocks Editor");
}

View file

@ -51,7 +51,7 @@ class Blotter extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->is_admin()) {
$event->add_nav_link("blotter", new Link('blotter/editor'), "Blotter Editor");
}

View file

@ -13,10 +13,10 @@ class BulkActionBlockBuildingEvent extends Event
$block = "";
}
if(!empty($access_key)) {
if (!empty($access_key)) {
assert(strlen($access_key)==1);
foreach ($this->actions as $existing) {
if($existing["access_key"]==$access_key) {
if ($existing["access_key"]==$access_key) {
throw new SCoreException("Access key $access_key is already in use");
}
}
@ -81,18 +81,18 @@ class BulkActions extends Extension
}
if ($user->can(Permissions::BULK_EDIT_IMAGE_TAG)) {
$event->add_action(
"bulk_tag",
"Tag",
"t",
"",
$this->theme->render_tag_input(),
10);
10
);
}
if ($user->can(Permissions::BULK_EDIT_IMAGE_SOURCE)) {
$event->add_action("bulk_source", "Set (S)ource", "s","", $this->theme->render_source_input(), 10);
$event->add_action("bulk_source", "Set (S)ource", "s", "", $this->theme->render_source_input(), 10);
}
}
@ -177,7 +177,7 @@ class BulkActions extends Extension
foreach ($data as $id) {
if (is_numeric($id)) {
$image = Image::by_id($id);
if($image!=null) {
if ($image!=null) {
yield $image;
}
}
@ -237,10 +237,10 @@ class BulkActions extends Extension
}
} else {
foreach ($items as $image) {
$img_tags = array_map("strtolower",$image->get_tag_array());
$img_tags = array_map("strtolower", $image->get_tag_array());
if (!empty($neg_tag_array)) {
$neg_tag_array = array_map("strtolower",$neg_tag_array);
$neg_tag_array = array_map("strtolower", $neg_tag_array);
$img_tags = array_merge($pos_tag_array, $img_tags);
$img_tags = array_diff($img_tags, $neg_tag_array);

View file

@ -157,7 +157,7 @@ class CommentList extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="comment") {
if ($event->parent=="comment") {
$event->add_nav_link("comment_list", new Link('comment/list'), "All");
$event->add_nav_link("comment_help", new Link('ext_doc/comment'), "Help");
}
@ -359,7 +359,7 @@ class CommentList extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Comments";
$block->body = $this->theme->get_help_html();

View file

@ -312,6 +312,5 @@ class CommentListTheme extends Themelet
<p>Returns images that have been commented on by user 123. </p>
</div>
';
}
}

View file

@ -28,4 +28,3 @@ becomes a link to smile.gif
<p>Images are stored in /ext/emoticons/default/, and you can
add more emoticons by uploading images into that folder.";
}

View file

@ -18,4 +18,3 @@ class Emoticons extends FormatterExtension
return $text;
}
}

View file

@ -16,7 +16,7 @@ class ET extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::VIEW_SYSINTO)) {
$event->add_nav_link("system_info", new Link('system_info'), "System Info", null, 10);
}

View file

@ -3,10 +3,12 @@
function __extman_extcmp(ExtensionInfo $a, ExtensionInfo $b): int
{
if($a->beta===true&&$b->beta===false)
if ($a->beta===true&&$b->beta===false) {
return 1;
if($a->beta===false&&$b->beta===true)
}
if ($a->beta===false&&$b->beta===true) {
return -1;
}
return strcmp($a->name, $b->name);
}
@ -82,7 +84,7 @@ class ExtManager extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::MANAGE_EXTENSION_LIST)) {
$event->add_nav_link("ext_manager", new Link('ext_manager'), "Extension Manager");
} else {
@ -108,7 +110,7 @@ class ExtManager extends Extension
{
$extensions = ExtensionInfo::get_all();
if (!$all) {
$extensions = array_filter($extensions,"__extman_extactive");
$extensions = array_filter($extensions, "__extman_extactive");
}
usort($extensions, "__extman_extcmp");
return $extensions;

View file

@ -32,7 +32,7 @@ class ExtManagerTheme extends Themelet
$h_link = make_link("ext_doc/" . url_escape($extension->key));
$h_enabled = ($extension->is_enabled() === true ? " checked='checked'" : "");
$h_disabled = ($extension->is_supported()===false || $extension->core===true? " disabled ": " " );
$h_disabled = ($extension->is_supported()===false || $extension->core===true? " disabled ": " ");
//baseline_open_in_new_black_18dp.png

View file

@ -144,7 +144,7 @@ class Favorites extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Favorites";
$block->body = $this->theme->get_help_html();
@ -155,11 +155,11 @@ class Favorites extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent=="posts") {
if ($event->parent=="posts") {
$event->add_nav_link("posts_favorites", new Link("post/list/favorited_by={$user->name}/1"), "My Favorites");
}
if($event->parent==="user") {
if ($event->parent==="user") {
if ($user->can(Permissions::MANAGE_ADMINTOOLS)) {
$username = url_escape($user->name);
$event->add_nav_link("favorites", new Link("post/list/favorited_by=$username/1"), "My Favorites");

View file

@ -56,6 +56,5 @@ class FavoritesTheme extends Themelet
<p>Returns images that have been favorited by user 123. </p>
</div>
';
}
}

View file

@ -2,7 +2,6 @@
class FlashFileHandler extends DataHandlerExtension
{
public function onMediaCheckProperties(MediaCheckPropertiesEvent $event)
{
switch ($event->ext) {

View file

@ -7,7 +7,7 @@ class IcoFileHandler extends DataHandlerExtension
public function onMediaCheckProperties(MediaCheckPropertiesEvent $event)
{
if(in_array($event->ext, self::SUPPORTED_EXTENSIONS)) {
if (in_array($event->ext, self::SUPPORTED_EXTENSIONS)) {
$event->lossless = true;
$event->video = false;
$event->audio = false;

View file

@ -12,7 +12,6 @@ class MP3FileHandler extends DataHandlerExtension
break;
}
// TODO: Buff out audio format support, length scanning
}
protected function create_thumb(string $hash, string $type): bool

View file

@ -7,14 +7,14 @@ class PixelFileHandler extends DataHandlerExtension
public function onMediaCheckProperties(MediaCheckPropertiesEvent $event)
{
if(in_array($event->ext, Media::LOSSLESS_FORMATS)) {
if (in_array($event->ext, Media::LOSSLESS_FORMATS)) {
$event->lossless = true;
} elseif($event->ext=="webp") {
} elseif ($event->ext=="webp") {
$event->lossless = Media::is_lossless_webp($event->file_name);
}
if(in_array($event->ext,self::SUPPORTED_EXTENSIONS)) {
if($event->lossless==null) {
if (in_array($event->ext, self::SUPPORTED_EXTENSIONS)) {
if ($event->lossless==null) {
$event->lossless = false;
}
$event->audio = false;
@ -111,5 +111,4 @@ class PixelFileHandler extends DataHandlerExtension
</form>
", 20);
}
}

View file

@ -4,7 +4,6 @@ use enshrined\svgSanitize\Sanitizer;
class SVGFileHandler extends DataHandlerExtension
{
public function onMediaCheckProperties(MediaCheckPropertiesEvent $event)
{
switch ($event->ext) {

View file

@ -36,19 +36,19 @@ class VideoFileHandler extends DataHandlerExtension
public function onMediaCheckProperties(MediaCheckPropertiesEvent $event)
{
if(in_array($event->ext, self::SUPPORTED_EXT)) {
if (in_array($event->ext, self::SUPPORTED_EXT)) {
$event->video = true;
try {
$data = Media::get_ffprobe_data($event->file_name);
if(is_array($data)) {
if(array_key_exists("streams", $data)) {
if (is_array($data)) {
if (array_key_exists("streams", $data)) {
$video = false;
$audio = true;
$streams = $data["streams"];
if (is_array($streams)) {
foreach ($streams as $stream) {
if(is_array($stream)) {
if (is_array($stream)) {
if (array_key_exists("codec_type", $stream)) {
$type = $stream["codec_type"];
switch ($type) {
@ -68,22 +68,20 @@ class VideoFileHandler extends DataHandlerExtension
&& is_numeric($stream["height"]) && intval($stream["height"]) > ($event->height) ?? 0) {
$event->height = intval($stream["height"]);
}
}
}
$event->video = $video;
$event->audio = $audio;
}
}
if(array_key_exists("format", $data)&& is_array($data["format"])) {
if (array_key_exists("format", $data)&& is_array($data["format"])) {
$format = $data["format"];
if(array_key_exists("duration", $format) && is_numeric($format["duration"])) {
if (array_key_exists("duration", $format) && is_numeric($format["duration"])) {
$event->length = floor(floatval($format["duration"]) * 1000);
}
}
}
} catch(MediaException $e) {
} catch (MediaException $e) {
}
}
}

View file

@ -14,11 +14,11 @@ class VideoFileHandlerTheme extends Themelet
$player = make_link('vendor/bower-asset/mediaelement/build/flashmediaelement.swf');
$width="auto";
if($image->width>1) {
if ($image->width>1) {
$width = $image->width."px";
}
$height="auto";
if($image->height>1) {
if ($image->height>1) {
$height = $image->height."px";
}

View file

@ -8,7 +8,6 @@ class HelpPageListBuildingEvent extends Event
{
$this->pages[$key] = $name;
}
}
class HelpPageBuildingEvent extends Event
@ -21,10 +20,9 @@ class HelpPageBuildingEvent extends Event
$this->key = $key;
}
function add_block(Block $block, int $position = 50)
{
if(!array_key_exists("$position",$this->blocks))
public function add_block(Block $block, int $position = 50)
{
if (!array_key_exists("$position", $this->blocks)) {
$this->blocks["$position"] = [];
}
$this->blocks["$position"][] = $block;
@ -49,7 +47,7 @@ class HelpPages extends Extension
} else {
$name = $event->get_arg(0);
$title = $name;
if(array_key_exists($name, $e->pages)) {
if (array_key_exists($name, $e->pages)) {
$title = $e->pages[$name];
}
@ -60,7 +58,7 @@ class HelpPages extends Extension
asort($hpbe->blocks);
foreach ($hpbe->blocks as $key=>$value) {
foreach($value as $block) {
foreach ($value as $block) {
$page->add_block($block);
}
}
@ -85,9 +83,9 @@ class HelpPages extends Extension
$event->add_link("Help", make_link("help"));
}
public function onHelpPageBuilding(HelpPageBuildingEvent $event) {
if($event->key=="licenses"){
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if ($event->key=="licenses") {
$block = new Block("Software Licenses");
$block->body = "The code in Shimmie is contributed by numerous authors under multiple licenses. For reference, these licenses are listed below. The base software is in general licensed under the GPLv2 license.";
$event->add_block($block);
@ -472,8 +470,6 @@ SOFTWARE.</pre>";
</pre>";
$event->add_block($block);
}
}
}

View file

@ -2,7 +2,6 @@
class HelpPagesTheme extends Themelet
{
public function display_list_page(array $pages)
{
global $page;
@ -27,5 +26,4 @@ class HelpPagesTheme extends Themelet
$page->set_title("Help - $title");
$page->set_heading("Help - $title");
}
}

View file

@ -1,6 +1,7 @@
<?php
abstract class ImageConfig {
abstract class ImageConfig
{
const THUMB_ENGINE = 'thumb_engine';
const THUMB_WIDTH = 'thumb_width';
const THUMB_HEIGHT = 'thumb_height';
@ -17,5 +18,4 @@ abstract class ImageConfig {
const COLLISION_MERGE = 'merge';
const COLLISION_ERROR = 'error';
}

View file

@ -7,7 +7,6 @@ require_once "config.php";
*/
class ImageIO extends Extension
{
const COLLISION_OPTIONS = ['Error'=>ImageConfig::COLLISION_ERROR, 'Merge'=>ImageConfig::COLLISION_MERGE];
const EXIF_READ_FUNCTION = "exif_read_data";
@ -240,10 +239,9 @@ class ImageIO extends Extension
try {
Media::update_image_media_properties($image->hash, strtolower($image->ext));
} catch(MediaException $e) {
log_warning("add_image","Error while running update_image_media_properties: ".$e->getMessage());
} catch (MediaException $e) {
log_warning("add_image", "Error while running update_image_media_properties: ".$e->getMessage());
}
}
// }}} end add
@ -322,7 +320,7 @@ class ImageIO extends Extension
$duplicate = Image::by_hash($image->hash);
if(!is_null($duplicate) && $duplicate->id!=$id) {
if (!is_null($duplicate) && $duplicate->id!=$id) {
$error = "Image <a href='" . make_link("post/view/{$duplicate->id}") . "'>{$duplicate->id}</a> " .
"already has hash {$image->hash}:<p>" . $this->theme->build_thumb_html($duplicate);
throw new ImageReplaceException($error);
@ -361,8 +359,8 @@ class ImageIO extends Extension
try {
Media::update_image_media_properties($image->hash, $image->ext);
} catch(MediaException $e) {
log_warning("image_replace","Error while running update_image_media_properties: ".$e->getMessage());
} catch (MediaException $e) {
log_warning("image_replace", "Error while running update_image_media_properties: ".$e->getMessage());
}
/* Generate new thumbnail */

View file

@ -97,7 +97,7 @@ class ImageBan extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::BAN_IMAGE)) {
$event->add_nav_link("image_bans", new Link('image_hash_ban/list/1'), "Image Bans", NavLink::is_active(["image_hash_ban"]));
}

View file

@ -108,10 +108,13 @@ class Index extends Extension
if (SPEED_HAX) {
if (!$user->can("big_search")) {
$fast_page_limit = 500;
if ($total_pages > $fast_page_limit) $total_pages = $fast_page_limit;
if ($total_pages > $fast_page_limit) {
$total_pages = $fast_page_limit;
}
if ($page_number > $fast_page_limit) {
$this->theme->display_error(
404, "Search limit hit",
404,
"Search limit hit",
"Only $fast_page_limit pages of results are searchable - " .
"if you want to find older results, use more specific search terms"
);
@ -180,19 +183,19 @@ class Index extends Extension
public function onPageNavBuilding(PageNavBuildingEvent $event)
{
$event->add_nav_link("posts", new Link('post/list'), "Posts", NavLink::is_active(["post","view"]),20);
$event->add_nav_link("posts", new Link('post/list'), "Posts", NavLink::is_active(["post","view"]), 20);
}
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="posts") {
if ($event->parent=="posts") {
$event->add_nav_link("posts_all", new Link('post/list'), "All");
}
}
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "General";
$block->body = $this->theme->get_help_html();

View file

@ -339,6 +339,5 @@ and of course start organising your images :-)
</ul>
</p>
';
}
}

View file

@ -96,7 +96,7 @@ class IPBan extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::BAN_IP)) {
$event->add_nav_link("ip_bans", new Link('ip_ban/list'), "IP Bans", NavLink::is_active(["ip_ban"]));
}

View file

@ -116,7 +116,7 @@ class LogDatabase extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::VIEW_EVENTLOG)) {
$event->add_nav_link("event_log", new Link('log/view'), "Event Log");
}

View file

@ -11,7 +11,6 @@ abstract class MediaConfig
const CONVERT_PATH = "media_convert_path";
const VERSION = "ext_media_version";
const MEM_LIMIT = 'media_mem_limit';
}
abstract class MediaEngine
@ -98,14 +97,19 @@ class MediaResizeEvent extends Event
public $ignore_aspect_ratio;
public $allow_upscale;
public function __construct(String $engine, string $input_path, string $input_type, string $output_path,
int $target_width, int $target_height,
public function __construct(
String $engine,
string $input_path,
string $input_type,
string $output_path,
int $target_width,
int $target_height,
bool $ignore_aspect_ratio = false,
string $target_format = null,
int $target_quality = 80,
bool $minimize = false,
bool $allow_upscale = true)
{
bool $allow_upscale = true
) {
assert(in_array($engine, MediaEngine::ALL));
$this->engine = $engine;
$this->input_path = $input_path;
@ -137,7 +141,6 @@ class MediaCheckPropertiesEvent extends Event
$this->file_name = $file_name;
$this->ext = $ext;
}
}
@ -186,7 +189,7 @@ class Media extends Extension
[0x52, 0x49, 0x46, 0x46, null, null, null, null, 0x57, 0x45, 0x42, 0x50, 0x56, 0x50, 0x38, 0x4C];
static function imagick_available(): bool
public static function imagick_available(): bool
{
return extension_loaded("imagick");
}
@ -286,7 +289,6 @@ class Media extends Extension
$sb->end_table();
$event->panel->add_block($sb);
}
public function onAdminBuilding(AdminBuildingEvent $event)
@ -368,7 +370,8 @@ class Media extends Extension
$event->target_format,
$event->ignore_aspect_ratio,
$event->target_quality,
$event->allow_upscale);
$event->allow_upscale
);
break;
case MediaEngine::IMAGICK:
@ -384,7 +387,8 @@ class Media extends Extension
$event->ignore_aspect_ratio,
$event->target_quality,
$event->minimize,
$event->allow_upscale);
$event->allow_upscale
);
//}
break;
default:
@ -414,7 +418,7 @@ class Media extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Media";
$block->body = $this->theme->get_help_html();
@ -473,7 +477,8 @@ class Media extends Extension
"video" => $database->scoresql_value_prepare($mcpe->video),
"audio" => $database->scoresql_value_prepare($mcpe->audio),
"length" => $mcpe->length
]);
]
);
}
public function get_images(String $ext = null)
@ -729,11 +734,12 @@ class Media extends Extension
// }
// }
public static function is_lossless(string $filename, string $format) {
if(in_array($format, self::LOSSLESS_FORMATS)) {
public static function is_lossless(string $filename, string $format)
{
if (in_array($format, self::LOSSLESS_FORMATS)) {
return true;
}
switch($format) {
switch ($format) {
case "webp":
return self::is_lossless_webp($filename);
break;
@ -752,8 +758,7 @@ class Media extends Extension
int $output_quality = 80,
bool $minimize = false,
bool $allow_upscale = true
): void
{
): void {
global $config;
$convert = $config->get_string(MediaConfig::CONVERT_PATH);
@ -766,7 +771,7 @@ class Media extends Extension
$output_type = $input_type;
}
if($output_type=="webp" && self::is_lossless($input_path, $input_type)) {
if ($output_type=="webp" && self::is_lossless($input_path, $input_type)) {
$output_type = self::WEBP_LOSSLESS;
}
@ -840,8 +845,7 @@ class Media extends Extension
bool $ignore_aspect_ratio = false,
int $output_quality = 80,
bool $allow_upscale = true
)
{
) {
$width = $info[0];
$height = $info[1];
@ -1040,7 +1044,6 @@ class Media extends Extension
} else {
throw new MediaException("Unable to open file for byte check: $file_name");
}
}
public static function is_animated_webp(String $image_filename): bool
@ -1084,7 +1087,7 @@ class Media extends Extension
* @param $format
* @return string|null The format name that the media extension will recognize.
*/
static public function normalize_format(string $format, ?bool $lossless = null): ?string
public static function normalize_format(string $format, ?bool $lossless = null): ?string
{
if ($format == "webp") {
if ($lossless === true) {
@ -1107,7 +1110,7 @@ class Media extends Extension
* @param string $filename
* @return array [width, height]
*/
static public function video_size(string $filename): array
public static function video_size(string $filename): array
{
global $config;
$ffmpeg = $config->get_string(MediaConfig::FFMPEG_PATH);
@ -1132,5 +1135,4 @@ class Media extends Extension
log_debug('Media', "Getting video size with `$cmd`, returns $output -- $size[0], $size[1]");
return $size;
}
}

View file

@ -42,6 +42,5 @@ class MediaTheme extends Themelet
</div>
<p>These search terms depend on the items being scanned for media content. Automatic scanning was implemented in mid-2019, so items uploaded before, or items uploaded on a system without ffmpeg, will require additional scanning before this will work.</p>
';
}
}

View file

@ -55,7 +55,7 @@ class NotATag extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="tags") {
if ($event->parent==="tags") {
if ($user->can(Permissions::BAN_IMAGE)) {
$event->add_nav_link("untags", new Link('untag/list/1'), "UnTags");
}

View file

@ -211,7 +211,7 @@ class Notes extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Notes";
$block->body = $this->theme->get_help_html();

View file

@ -269,7 +269,5 @@ class NotesTheme extends Themelet
<p>Returns images with note(s) by user 123.</p>
</div>
';
}
}

View file

@ -220,7 +220,7 @@ class NumericScore extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Numeric Score";
$block->body = $this->theme->get_help_html();
@ -296,11 +296,10 @@ class NumericScore extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="posts") {
if ($event->parent=="posts") {
$event->add_nav_link("numeric_score_day", new Link('popular_by_day'), "Popular by Day");
$event->add_nav_link("numeric_score_month", new Link('popular_by_month'), "Popular by Month");
$event->add_nav_link("numeric_score_year", new Link('popular_by_year'), "Popular by Year");
}
}

View file

@ -132,6 +132,5 @@ class NumericScoreTheme extends Themelet
<p>Sorts the search results by score, ascending.</p>
</div>
';
}
}

View file

@ -86,7 +86,7 @@ class PrivMsg extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="user") {
if ($event->parent==="user") {
if (!$user->is_anonymous()) {
$count = $this->count_pms($user);
$h_count = $count > 0 ? " <span class='unread'>($count)</span>" : "";

View file

@ -37,7 +37,6 @@ class PoolAddPostsEvent extends Event
$this->pool_id = $pool_id;
$this->posts = $posts;
}
}
class PoolCreationEvent extends Event
@ -58,7 +57,6 @@ class PoolCreationEvent extends Event
$this->public = $public;
$this->description = $description;
}
}
class Pools extends Extension
@ -143,7 +141,7 @@ class Pools extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="pool") {
if ($event->parent=="pool") {
$event->add_nav_link("pool_list", new Link('pool/list'), "List");
$event->add_nav_link("pool_new", new Link('pool/new'), "Create");
$event->add_nav_link("pool_updated", new Link('pool/updated'), "Changes");
@ -189,7 +187,8 @@ class Pools extends Extension
$title,
$user,
$_POST["public"] === "Y",
$_POST["description"]);
$_POST["description"]
);
send_event($event);
$page->set_mode(PageMode::REDIRECT);
@ -365,7 +364,7 @@ class Pools extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Pools";
$block->body = $this->theme->get_help_html();
@ -434,8 +433,8 @@ class Pools extends Extension
$pools = $database->get_all("SELECT * FROM pools ORDER BY title ");
$event->add_action("bulk_pool_add_existing", "Add To (P)ool", "p","", $this->theme->get_bulk_pool_selector($pools));
$event->add_action("bulk_pool_add_new", "Create Pool", "","", $this->theme->get_bulk_pool_input($event->search_terms));
$event->add_action("bulk_pool_add_existing", "Add To (P)ool", "p", "", $this->theme->get_bulk_pool_selector($pools));
$event->add_action("bulk_pool_add_new", "Create Pool", "", "", $this->theme->get_bulk_pool_input($event->search_terms));
}
public function onBulkAction(BulkActionEvent $event)
@ -452,7 +451,8 @@ class Pools extends Extension
if ($this->have_permission($user, $pool)) {
send_event(
new PoolAddPostsEvent($pool_id,iterator_map_to_array("image_to_id", $event->items)));
new PoolAddPostsEvent($pool_id, iterator_map_to_array("image_to_id", $event->items))
);
}
break;
case "bulk_pool_add_new":
@ -800,7 +800,7 @@ class Pools extends Extension
if (Extension::is_enabled(RatingsInfo::KEY)) {
$query .= "AND i.rating IN (".Ratings::privs_to_sql(Ratings::get_user_privs($user)).")";
}
if(Extension::is_enabled(TrashInfo::KEY)) {
if (Extension::is_enabled(TrashInfo::KEY)) {
$query .= $database->scoreql_to_sql(" AND trash = SCORE_BOOL_N ");
}

View file

@ -401,7 +401,7 @@ class PoolsTheme extends Themelet
public function get_bulk_pool_input(array $search_terms)
{
return "<input type='text' name='bulk_pool_new' placeholder='New pool' required='required' value='".(implode(" ",$search_terms))."' />";
return "<input type='text' name='bulk_pool_new' placeholder='New pool' required='required' value='".(implode(" ", $search_terms))."' />";
}
@ -429,6 +429,5 @@ class PoolsTheme extends Themelet
<p>Returns images in the "swimming pool" pool. Note that the underscore becomes a space</p>
</div>
';
}
}

View file

@ -36,7 +36,7 @@ class PostTitles extends Extension
{
global $config;
if($config->get_bool(PostTitlesConfig::SHOW_IN_WINDOW_TITLE)) {
if ($config->get_bool(PostTitlesConfig::SHOW_IN_WINDOW_TITLE)) {
$event->set_title(self::get_title($event->get_image()));
}
}
@ -67,8 +67,8 @@ class PostTitles extends Extension
{
$sb = new SetupBlock("Post Titles");
$sb->start_table();
$sb->add_bool_option(PostTitlesConfig::DEFAULT_TO_FILENAME,"Default to filename", true);
$sb->add_bool_option(PostTitlesConfig::SHOW_IN_WINDOW_TITLE,"Show in window title", true);
$sb->add_bool_option(PostTitlesConfig::DEFAULT_TO_FILENAME, "Default to filename", true);
$sb->add_bool_option(PostTitlesConfig::SHOW_IN_WINDOW_TITLE, "Show in window title", true);
$sb->end_table();
$event->panel->add_block($sb);
@ -88,9 +88,9 @@ class PostTitles extends Extension
global $config;
$title = $image->title??"";
if(empty($title) && $config->get_bool(PostTitlesConfig::DEFAULT_TO_FILENAME)) {
if (empty($title) && $config->get_bool(PostTitlesConfig::DEFAULT_TO_FILENAME)) {
$info = pathinfo($image->filename);
if(array_key_exists("extension",$info)) {
if (array_key_exists("extension", $info)) {
$title = basename($image->filename, '.' . $info['extension']);
} else {
$title = $image->filename;

View file

@ -3,8 +3,6 @@ class PostTitlesTheme extends Themelet
{
public function get_title_set_html(string $title, bool $can_set): string
{
$html = "
<tr>
<th>Title</th>

View file

@ -58,7 +58,7 @@ class RandomImage extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="posts") {
if ($event->parent=="posts") {
$event->add_nav_link("posts_random", new Link('random_image/view'), "Random Image");
}
}

View file

@ -67,7 +67,7 @@ class RandomList extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="posts") {
if ($event->parent=="posts") {
$event->add_nav_link("posts_random", new Link('random'), "Shuffle");
}
}

View file

@ -109,7 +109,7 @@ class Ratings extends Extension
{
global $user;
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Ratings";
@ -164,7 +164,7 @@ class Ratings extends Extension
global $user;
if ($user->can(Permissions::BULK_EDIT_IMAGE_RATING)) {
$event->add_action("bulk_rate","Set (R)ating", "r","",$this->theme->get_selection_rater_html("u","bulk_rating"));
$event->add_action("bulk_rate", "Set (R)ating", "r", "", $this->theme->get_selection_rater_html("u", "bulk_rating"));
}
}

View file

@ -57,7 +57,7 @@ class RegenThumb extends Extension
global $user;
if ($user->can(Permissions::DELETE_IMAGE)) {
$event->add_action("bulk_regen", "Regen Thumbnails", "","", $this->theme->bulk_html());
$event->add_action("bulk_regen", "Regen Thumbnails", "", "", $this->theme->bulk_html());
}
}

View file

@ -44,7 +44,7 @@ class Relationships extends Extension
{
if (isset($_POST['tag_edit__tags']) ? !preg_match('/parent[=|:]/', $_POST["tag_edit__tags"]) : true) { //Ignore tag_edit__parent if tags contain parent metatag
if (isset($_POST["tag_edit__parent"]) ? ctype_digit($_POST["tag_edit__parent"]) : false) {
send_event(new ImageRelationshipSetEvent($event->image->id,(int) $_POST["tag_edit__parent"]));
send_event(new ImageRelationshipSetEvent($event->image->id, (int) $_POST["tag_edit__parent"]));
} else {
$this->remove_parent($event->image->id);
}
@ -76,7 +76,7 @@ class Relationships extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Relationships";
$block->body = $this->theme->get_help_html();
@ -132,15 +132,14 @@ class Relationships extends Extension
$old_parent = $database->get_one("SELECT parent_id FROM images WHERE id = :cid", ["cid"=>$event->child_id]);
if($old_parent!=$event->parent_id) {
if ($old_parent!=$event->parent_id) {
if ($database->get_row("SELECT 1 FROM images WHERE id = :pid", ["pid" => $event->parent_id])) {
$result = $database->execute("UPDATE images SET parent_id = :pid WHERE id = :cid", ["pid" => $event->parent_id, "cid" => $event->child_id]);
if ($result->rowCount() > 0) {
$database->execute("UPDATE images SET has_children = TRUE WHERE id = :pid", ["pid" => $event->parent_id]);
if($old_parent!=null) {
if ($old_parent!=null) {
$this->set_has_children($old_parent);
}
}
@ -155,7 +154,7 @@ class Relationships extends Extension
$results = $database->get_all_iterable("SELECT * FROM images WHERE parent_id = :pid ", ["pid"=>$image->id]);
$output = [];
foreach ($results as $result) {
if($result["id"]==$omit) {
if ($result["id"]==$omit) {
continue;
}
$output[] = new Image($result);
@ -180,13 +179,11 @@ class Relationships extends Extension
// Doesn't work on pgsql
// $database->execute("UPDATE images SET has_children = (SELECT * FROM (SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM images WHERE parent_id = :pid) AS sub)
// WHERE id = :pid", ["pid"=>$parentID]);
// WHERE id = :pid", ["pid"=>$parentID]);
$database->execute(
"UPDATE images SET has_children = EXISTS (SELECT 1 FROM images WHERE parent_id = :pid) WHERE id = :pid",
["pid"=>$parent_id]);
["pid"=>$parent_id]
);
}
}

View file

@ -34,7 +34,7 @@ class RelationshipTest extends ShimmiePHPUnitTestCase
$image_3 = Image::by_id($image_id_3);
$this->assertNull($image_1->parent_id);
$this->assertEquals($image_id_1,$image_2->parent_id);
$this->assertEquals($image_id_1, $image_2->parent_id);
$this->assertNull($image_3->parent_id);
$this->assertTrue($image_1->has_children);
$this->assertFalse($image_2->has_children);
@ -56,7 +56,7 @@ class RelationshipTest extends ShimmiePHPUnitTestCase
$image_3 = Image::by_id($image_id_3);
$this->assertNull($image_1->parent_id);
$this->assertEquals($image_id_3,$image_2->parent_id);
$this->assertEquals($image_id_3, $image_2->parent_id);
$this->assertNull($image_3->parent_id);
$this->assertFalse($image_2->has_children);
$this->assertFalse($image_2->has_children);
@ -129,7 +129,7 @@ class RelationshipTest extends ShimmiePHPUnitTestCase
$image_3 = Image::by_id($image_id_3);
$this->assertNull($image_1->parent_id);
$this->assertEquals($image_id_1,$image_2->parent_id);
$this->assertEquals($image_id_1, $image_2->parent_id);
$this->assertNull($image_3->parent_id);
$this->assertTrue($image_1->has_children);
$this->assertFalse($image_2->has_children);
@ -151,8 +151,8 @@ class RelationshipTest extends ShimmiePHPUnitTestCase
$image_2 = Image::by_id($image_id_2);
$image_3 = Image::by_id($image_id_3);
$this->assertEquals($image_id_3,$image_1->parent_id);
$this->assertEquals($image_id_1,$image_2->parent_id);
$this->assertEquals($image_id_3, $image_1->parent_id);
$this->assertEquals($image_id_1, $image_2->parent_id);
$this->assertNull($image_3->parent_id);
$this->assertTrue($image_1->has_children);
$this->assertFalse($image_2->has_children);
@ -175,7 +175,7 @@ class RelationshipTest extends ShimmiePHPUnitTestCase
$image_3 = Image::by_id($image_id_3);
$this->assertNull($image_1->parent_id);
$this->assertEquals($image_id_1,$image_2->parent_id);
$this->assertEquals($image_id_1, $image_2->parent_id);
$this->assertNull($image_3->parent_id);
$this->assertTrue($image_1->has_children);
$this->assertFalse($image_2->has_children);

View file

@ -72,6 +72,5 @@ class RelationshipsTheme extends Themelet
<p>Returns images that have no children.</p>
</div>
';
}
}

View file

@ -127,7 +127,7 @@ class ReportImage extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::VIEW_IMAGE_REPORT)) {
$count = $this->count_reported_images();
$h_count = $count > 0 ? " ($count)" : "";

View file

@ -180,7 +180,7 @@ class ResizeImage extends Extension
$engine = $config->get_string(ResizeConfig::ENGINE);
if(!$this->can_resize_format($image_obj->ext, $image_obj->lossless)) {
if (!$this->can_resize_format($image_obj->ext, $image_obj->lossless)) {
throw new ImageResizeException("Engine $engine cannot resize selected image");
}

View file

@ -19,5 +19,4 @@ class RSS_CommentsInfo extends ExtensionInfo
public $license = self::LICENSE_GPLV2;
public $description = "Self explanatory";
public $db_support = [DatabaseDriver::MYSQL, DatabaseDriver::SQLITE]; // pgsql has no UNIX_TIMESTAMP
}

View file

@ -73,9 +73,8 @@ EOD;
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="comment") {
if ($event->parent=="comment") {
$event->add_nav_link("comment_rss", new Link('rss/comments'), "Feed");
}
}
}

View file

@ -113,7 +113,7 @@ class RSS_Images extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="posts") {
if ($event->parent=="posts") {
$event->add_nav_link("posts_rss", new Link('rss/images'), "Feed");
}
}

View file

@ -9,7 +9,6 @@ if ( // kill these glitched requests immediately
class Rule34 extends Extension
{
public function onImageDeletion(ImageDeletionEvent $event)
{
global $database;

View file

@ -136,20 +136,33 @@ class SetupBlock extends Block
private function format_option(string $name, $html, ?string $label, bool $table_row) {
private function format_option(string $name, $html, ?string $label, bool $table_row)
{
global $config;
if($table_row) $this->start_table_row();
if($table_row) $this->start_table_header_cell();
if ($table_row) {
$this->start_table_row();
}
if ($table_row) {
$this->start_table_header_cell();
}
if (!is_null($label)) {
$this->body .= "<label for='{$name}'>{$label}</label>";
}
if($table_row) $this->end_table_header_cell();
if ($table_row) {
$this->end_table_header_cell();
}
if($table_row) $this->start_table_cell();
if ($table_row) {
$this->start_table_cell();
}
$this->body .= $html;
if($table_row) $this->end_table_cell();
if($table_row) $this->end_table_row();
if ($table_row) {
$this->end_table_cell();
}
if ($table_row) {
$this->end_table_row();
}
}
public function add_text_option(string $name, string $label=null, bool $table_row = false)
@ -181,7 +194,7 @@ class SetupBlock extends Block
$checked = $config->get_bool($name) ? " checked" : "";
$html = "";
if(!$table_row&&!is_null($label)) {
if (!$table_row&&!is_null($label)) {
$html .= "<label for='{$name}'>{$label}</label>";
}
@ -210,7 +223,6 @@ class SetupBlock extends Block
$html .= "<input type='hidden' name='_type_$name' value='int'>\n";
$this->format_option($name, $html, $label, $table_row);
}
public function add_shorthand_int_option(string $name, string $label=null, bool $table_row = false)
@ -408,7 +420,7 @@ class Setup extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::CHANGE_SETTING)) {
$event->add_nav_link("setup", new Link('setup'), "Board Config", null, 0);
}

View file

@ -80,7 +80,7 @@ class Source_History extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::BULK_EDIT_IMAGE_TAG)) {
$event->add_nav_link("source_history", new Link('source_history/all/1'), "Source Changes", NavLink::is_active(["source_history"]));
}

View file

@ -20,6 +20,4 @@ class System extends Extension
{
$event->add_nav_link("system", new Link('system'), "System");
}
}

View file

@ -70,7 +70,8 @@ class TagCategories extends Extension
$count = $matches[3];
$types = $database->get_col(
$database->scoreql_to_sql('SELECT SCORE_STRNORM(category) FROM image_tag_categories'));
$database->scoreql_to_sql('SELECT SCORE_STRNORM(category) FROM image_tag_categories')
);
if (in_array($type, $types)) {
$event->add_querylet(
new Querylet($database->scoreql_to_sql("EXISTS (
@ -88,7 +89,7 @@ class TagCategories extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Tag Categories";
$block->body = $this->theme->get_help_html();

View file

@ -113,6 +113,5 @@ class TagCategoriesTheme extends Themelet
<p>Can use &lt;, &lt;=, &gt;, &gt;=, or =.</p>
<p>Category name is not case sensitive, category must exist for search to work.</p>
';
}
}

View file

@ -218,7 +218,7 @@ class TagEdit extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="tags") {
if ($event->parent=="tags") {
$event->add_nav_link("tags_help", new Link('ext_doc/tag_edit'), "Help");
}
}

View file

@ -80,7 +80,7 @@ class Tag_History extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::BULK_EDIT_IMAGE_TAG)) {
$event->add_nav_link("tag_history", new Link('tag_history/all/1'), "Tag Changes", NavLink::is_active(["tag_history"]));
}

View file

@ -5,7 +5,7 @@ class TagListConfig
{
public const LENGTH = "tag_list_length";
public const POPULAR_TAG_LIST_LENGTH = "popular_tag_list_length";
public CONSt TAGS_MIN = "tags_min";
public const TAGS_MIN = "tags_min";
public const INFO_LINK = "info_link";
public const IMAGE_TYPE = "tag_list_image_type";
public const RELATED_SORT = "tag_list_related_sort";

View file

@ -97,7 +97,7 @@ class TagList extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="tags") {
if ($event->parent=="tags") {
$event->add_nav_link("tags_map", new Link('tags/map'), "Map");
$event->add_nav_link("tags_alphabetic", new Link('tags/alphabetic'), "Alphabetic");
$event->add_nav_link("tags_popularity", new Link('tags/popularity'), "Popularity");
@ -137,15 +137,24 @@ class TagList extends Extension
$sb->start_table();
$sb->add_text_option(TagListConfig::INFO_LINK, "Tag info link", true);
$sb->add_text_option(TagListConfig::OMIT_TAGS, "Omit tags", true);
$sb->add_choice_option(TagListConfig::IMAGE_TYPE,
$sb->add_choice_option(
TagListConfig::IMAGE_TYPE,
TagListConfig::TYPE_CHOICES,
"Image tag list", true);
$sb->add_choice_option(TagListConfig::RELATED_SORT,
"Image tag list",
true
);
$sb->add_choice_option(
TagListConfig::RELATED_SORT,
TagListConfig::SORT_CHOICES,
"Sort related list by", true);
$sb->add_choice_option(TagListConfig::POPULAR_SORT,
"Sort related list by",
true
);
$sb->add_choice_option(
TagListConfig::POPULAR_SORT,
TagListConfig::SORT_CHOICES,
"Sort popular list by", true);
"Sort popular list by",
true
);
$sb->add_bool_option("tag_list_numbers", "Show tag counts", true);
$sb->end_table();
$event->panel->add_block($sb);
@ -179,7 +188,7 @@ class TagList extends Extension
$results = $database->cache->get("tag_list_omitted_tags:".$tags_config);
if($results==null) {
if ($results==null) {
$results = [];
$tags = explode(" ", $tags_config);
@ -200,13 +209,11 @@ class TagList extends Extension
} else {
$where[] = " tag LIKE :$arg ";
}
}
$results = $database->get_col("SELECT id FROM tags WHERE " . implode(" OR ", $where), $args);
$database->cache->set("tag_list_omitted_tags:" . $tags_config, $results, 600);
}
return $results;
}
@ -454,11 +461,11 @@ class TagList extends Extension
global $database, $config;
$omitted_tags = self::get_omitted_tags();
$starting_tags = $database->get_col("SELECT tag_id FROM image_tags WHERE image_id = :image_id",["image_id" => $image->id]);
$starting_tags = $database->get_col("SELECT tag_id FROM image_tags WHERE image_id = :image_id", ["image_id" => $image->id]);
$starting_tags = array_diff($starting_tags,$omitted_tags);
$starting_tags = array_diff($starting_tags, $omitted_tags);
if(count($starting_tags) === 0) {
if (count($starting_tags) === 0) {
// No valid starting tags, so can't look anything up
return;
}
@ -467,9 +474,9 @@ class TagList extends Extension
SELECT it2.tag_id
FROM image_tags AS it1
INNER JOIN image_tags AS it2 ON it1.image_id=it2.image_id
AND it2.tag_id NOT IN (".implode(",",array_merge($omitted_tags,$starting_tags)).")
AND it2.tag_id NOT IN (".implode(",", array_merge($omitted_tags, $starting_tags)).")
WHERE
it1.tag_id IN (".implode(",",$starting_tags).")
it1.tag_id IN (".implode(",", $starting_tags).")
GROUP BY it2.tag_id
) A ON A.tag_id = tags.id
ORDER BY count DESC
@ -530,7 +537,7 @@ class TagList extends Extension
if (empty($tags)) {
$omitted_tags = self::get_omitted_tags();
if(empty($omitted_tags)) {
if (empty($omitted_tags)) {
$query = "
SELECT tag, count
FROM tags
@ -538,7 +545,6 @@ class TagList extends Extension
ORDER BY count DESC
LIMIT :popular_tag_list_length
";
} else {
$query = "
SELECT tag, count
@ -618,9 +624,9 @@ class TagList extends Extension
$omitted_tags = self::get_omitted_tags();
$starting_tags = array_diff($starting_tags,$omitted_tags);
$starting_tags = array_diff($starting_tags, $omitted_tags);
if(count($starting_tags) === 0) {
if (count($starting_tags) === 0) {
// No valid starting tags, so can't look anything up
return [];
}
@ -631,9 +637,9 @@ class TagList extends Extension
FROM image_tags AS it1 -- Got other images with the same tags
INNER JOIN image_tags AS it2 ON it1.image_id=it2.image_id
-- And filter out unwanted tags
AND it2.tag_id NOT IN (".implode(",",array_merge($omitted_tags,$starting_tags)).")
AND it2.tag_id NOT IN (".implode(",", array_merge($omitted_tags, $starting_tags)).")
WHERE
it1.tag_id IN (".implode(",",$starting_tags).")
it1.tag_id IN (".implode(",", $starting_tags).")
GROUP BY it2.tag_id) A ON A.tag_id = t.id
ORDER BY A.calc_count
DESC LIMIT :limit
@ -643,14 +649,12 @@ class TagList extends Extension
$related_tags = $database->get_all($query, $args);
$database->cache->set("related_tags:$str_search", $related_tags, 60 * 60);
}
}
if ($related_tags === false) {
return [];
} else {
return $related_tags;
}
}

View file

@ -2,7 +2,6 @@
class Tips extends Extension
{
public function onInitExt(InitExtEvent $event)
{
global $config, $database;
@ -67,7 +66,7 @@ class Tips extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->is_admin()) {
$event->add_nav_link("tips", new Link('tips/list'), "Tips Editor");
}

View file

@ -169,7 +169,7 @@ class TranscodeImage extends Extension
$engine = $config->get_string(TranscodeConfig::ENGINE);
if ($user->is_admin()) {
$event->add_action(self::ACTION_BULK_TRANSCODE, "Transcode", null,"", $this->theme->get_transcode_picker_html($this->get_supported_output_formats($engine)));
$event->add_action(self::ACTION_BULK_TRANSCODE, "Transcode", null, "", $this->theme->get_transcode_picker_html($this->get_supported_output_formats($engine)));
}
}
@ -218,7 +218,7 @@ class TranscodeImage extends Extension
private function get_supported_output_formats($engine, ?String $omit_format = null, ?bool $lossless = null): array
{
if($omit_format!=null) {
if ($omit_format!=null) {
$omit_format = Media::normalize_format($omit_format, $lossless);
}
$output = [];
@ -229,7 +229,7 @@ class TranscodeImage extends Extension
$output[$key] = $value;
continue;
}
if(Media::is_output_supported($engine, $value)
if (Media::is_output_supported($engine, $value)
&&(empty($omit_format)||$omit_format!=$value)) {
$output[$key] = $value;
}

View file

@ -10,8 +10,13 @@ class TranscodeImageTheme extends Themelet
global $config;
$html = "
".make_form(make_link("transcode/{$image->id}"), 'POST', false, "",
"return transcodeSubmit()")."
".make_form(
make_link("transcode/{$image->id}"),
'POST',
false,
"",
"return transcodeSubmit()"
)."
<input type='hidden' name='image_id' value='{$image->id}'>
<input type='hidden' id='image_lossless' name='image_lossless' value='{$image->lossless}'>
".$this->get_transcode_picker_html($options)."

View file

@ -7,7 +7,6 @@ abstract class TrashConfig
class Trash extends Extension
{
public function get_priority(): int
{
// Needs to be early to intercept delete events
@ -50,7 +49,7 @@ class Trash extends Extension
{
global $user, $page;
if($event->image->trash===true && !$user->can(Permissions::VIEW_TRASH)) {
if ($event->image->trash===true && !$user->can(Permissions::VIEW_TRASH)) {
$page->set_mode(PageMode::REDIRECT);
$page->set_redirect(make_link("post/list"));
}
@ -58,7 +57,7 @@ class Trash extends Extension
public function onImageDeletion(ImageDeletionEvent $event)
{
if($event->force!==true && $event->image->trash!==true) {
if ($event->force!==true && $event->image->trash!==true) {
self::set_trash($event->image->id, true);
$event->stop_processing = true;
}
@ -78,7 +77,7 @@ class Trash extends Extension
if (preg_match(self::SEARCH_REGEXP, strtolower($event->term), $matches)) {
if($user->can(Permissions::VIEW_TRASH)) {
if ($user->can(Permissions::VIEW_TRASH)) {
$event->add_querylet(new Querylet($database->scoreql_to_sql("trash = SCORE_BOOL_Y ")));
}
}
@ -87,8 +86,8 @@ class Trash extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
global $user;
if($event->key===HelpPages::SEARCH) {
if($user->can(Permissions::VIEW_TRASH)) {
if ($event->key===HelpPages::SEARCH) {
if ($user->can(Permissions::VIEW_TRASH)) {
$block = new Block();
$block->header = "Trash";
$block->body = $this->theme->get_help_html();
@ -108,18 +107,19 @@ class Trash extends Extension
return true;
}
public static function set_trash($image_id, $trash) {
public static function set_trash($image_id, $trash)
{
global $database;
$database->execute("UPDATE images SET trash = :trash WHERE id = :id",
["trash"=>$database->scoresql_value_prepare($trash),"id"=>$image_id]);
$database->execute(
"UPDATE images SET trash = :trash WHERE id = :id",
["trash"=>$database->scoresql_value_prepare($trash),"id"=>$image_id]
);
}
public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event)
{
global $config, $database, $user;
if($event->image->trash===true && $user->can(Permissions::VIEW_TRASH)) {
if ($event->image->trash===true && $user->can(Permissions::VIEW_TRASH)) {
$event->add_part($this->theme->get_image_admin_html($event->image->id));
}
}
@ -129,7 +129,7 @@ class Trash extends Extension
global $user;
if ($user->can(Permissions::VIEW_TRASH)&&in_array("in:trash", $event->search_terms)) {
$event->add_action("bulk_trash_restore","(U)ndelete", "u");
$event->add_action("bulk_trash_restore", "(U)ndelete", "u");
}
}
@ -163,7 +163,5 @@ class Trash extends Extension
$database->Execute("CREATE INDEX images_trash_idx ON images(trash)");
$config->set_int(TrashConfig::VERSION, 1);
}
}
}

View file

@ -2,7 +2,8 @@
class TrashTheme extends Themelet
{
function get_image_admin_html(int $image_id) {
public function get_image_admin_html(int $image_id)
{
$html = "
".make_form(make_link('trash_restore/'.$image_id), 'POST')."
<input type='hidden' name='image_id' value='$image_id'>
@ -10,7 +11,8 @@ class TrashTheme extends Themelet
</form>
";
return $html; }
return $html;
}
public function get_help_html()
@ -21,6 +23,5 @@ class TrashTheme extends Themelet
<p>Returns images that are in the trash.</p>
</div>
';
}
}

View file

@ -177,7 +177,7 @@ class Upgrade extends Extension
$database->execute("ALTER TABLE images ADD COLUMN length INTEGER NULL ");
log_info("upgrade", "Setting indexes for media columns");
switch($database->get_driver_name()) {
switch ($database->get_driver_name()) {
case DatabaseDriver::PGSQL:
case DatabaseDriver::SQLITE:
$database->execute('CREATE INDEX images_video_idx ON images(video) WHERE video IS NOT NULL');
@ -213,7 +213,6 @@ class Upgrade extends Extension
log_info("upgrade", "Database at version 17");
$config->set_bool("in_upgrade", false);
}
}
public function get_priority(): int

View file

@ -135,12 +135,12 @@ class Upload extends Extension
public function onPageNavBuilding(PageNavBuildingEvent $event)
{
$event->add_nav_link("upload",new Link('upload'), "Upload");
$event->add_nav_link("upload", new Link('upload'), "Upload");
}
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="upload") {
if ($event->parent=="upload") {
if (class_exists("Wiki")) {
$event->add_nav_link("upload_guidelines", new Link('wiki/upload_guidelines'), "Guidelines");
}

View file

@ -270,7 +270,7 @@ class UserPage extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
global $user;
if($event->parent==="system") {
if ($event->parent==="system") {
if ($user->can(Permissions::EDIT_USER_CLASS)) {
$event->add_nav_link("user_admin", new Link('user_admin/list'), "User List", NavLink::is_active(["user_admin"]));
}
@ -317,7 +317,7 @@ class UserPage extends Extension
public function onHelpPageBuilding(HelpPageBuildingEvent $event)
{
if($event->key===HelpPages::SEARCH) {
if ($event->key===HelpPages::SEARCH) {
$block = new Block();
$block->header = "Users";
$block->body = $this->theme->get_help_html();

View file

@ -242,7 +242,6 @@ class UserPageTheme extends Themelet
$page->set_heading(html_escape($duser->name)."'s Page");
$page->add_block(new NavBlock());
$page->add_block(new Block("Stats", join("<br>", $stats), "main", 10));
}
public function build_options(User $duser, UserOptionsBuildingEvent $event)
@ -337,7 +336,6 @@ class UserPageTheme extends Themelet
foreach ($event->parts as $part) {
$html .= $part;
}
}
return $html;
}

View file

@ -26,7 +26,7 @@ class UserConfig extends Extension
{
global $config;
if ($config->get_int(self::VERSION,0)<1) {
if ($config->get_int(self::VERSION, 0)<1) {
$this->install();
}
}
@ -43,8 +43,7 @@ class UserConfig extends Extension
{
global $config, $database;
if ($config->get_int(self::VERSION,0) < 1) {
if ($config->get_int(self::VERSION, 0) < 1) {
log_info("upgrade", "Adding user config table");
$database->create_table("user_config", "

View file

@ -26,7 +26,8 @@ class DisplayingImageEvent extends Event
return $this->image;
}
public function set_title(String $title) {
public function set_title(String $title)
{
$this->title = $title;
}
}

View file

@ -171,13 +171,13 @@ class Wiki extends Extension
public function onPageNavBuilding(PageNavBuildingEvent $event)
{
$event->add_nav_link("wiki",new Link('wiki'), "Wiki");
$event->add_nav_link("wiki", new Link('wiki'), "Wiki");
}
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{
if($event->parent=="wiki") {
if ($event->parent=="wiki") {
$event->add_nav_link("wiki_rules", new Link('wiki/rules'), "Rules");
$event->add_nav_link("wiki_help", new Link('ext_doc/wiki'), "Help");
}

View file

@ -100,7 +100,7 @@ try {
$page->display();
}
if($database->transaction===true) {
if ($database->transaction===true) {
$database->commit();
}
@ -117,7 +117,7 @@ try {
$_tracer->end();
if (TRACE_FILE) {
if((microtime(true) - $_shm_load_start) > TRACE_THRESHOLD) {
if ((microtime(true) - $_shm_load_start) > TRACE_THRESHOLD) {
$_tracer->flush(TRACE_FILE);
}
}

View file

@ -101,7 +101,7 @@ class Layout
}
$custom_sublinks = "";
if(!empty($sub_links)) {
if (!empty($sub_links)) {
$custom_sublinks = "<div class='sbar'>";
foreach ($sub_links as $nav_link) {
$custom_sublinks .= "<li>".$this->navlinks($nav_link->link, $nav_link->description, $nav_link->active)."</li>";

View file

@ -33,7 +33,7 @@ class CustomViewImageTheme extends ViewImageTheme
<br>Filesize: $h_filesize
<br>Type: $h_type";
if($image->length!=null) {
if ($image->length!=null) {
$h_length = format_milliseconds($image->length);
$html .= "<br/>Length: $h_length";
}

View file

@ -101,7 +101,7 @@ class Layout
}
$custom_sublinks = "";
if(!empty($sub_links)) {
if (!empty($sub_links)) {
$custom_sublinks = "<div class='sbar'>";
foreach ($sub_links as $nav_link) {
$custom_sublinks .= "<li>".$this->navlinks($nav_link->link, $nav_link->description, $nav_link->active)."</li>";

View file

@ -33,7 +33,7 @@ class CustomViewImageTheme extends ViewImageTheme
<br>Type: $h_type
";
if($image->length!=null) {
if ($image->length!=null) {
$h_length = format_milliseconds($image->length);
$html .= "<br/>Length: $h_length";
}

View file

@ -57,7 +57,7 @@ class Layout
}
$custom_sublinks = "";
if(!empty($sub_links)) {
if (!empty($sub_links)) {
$custom_sublinks = "<div class='sbar'>";
foreach ($sub_links as $nav_link) {
$custom_sublinks .= $this->navlinks($nav_link->link, $nav_link->description, $nav_link->active);

View file

@ -33,7 +33,7 @@ class CustomViewImageTheme extends ViewImageTheme
<br>Filesize: $h_filesize
<br>Type: ".$h_type."
";
if($image->length!=null) {
if ($image->length!=null) {
$h_length = format_milliseconds($image->length);
$html .= "<br/>Length: $h_length";
}