Constants for index config

This commit is contained in:
Matthew Barbour 2019-08-16 09:18:14 -05:00 committed by Shish
parent de39f3e5d7
commit 6b030c00eb
7 changed files with 88 additions and 73 deletions

View File

@ -154,7 +154,7 @@ class PageRequestEvent extends Event
public function get_page_size(): int
{
global $config;
return $config->get_int('index_images');
return $config->get_int(IndexConfig::IMAGES);
}
}

View File

@ -150,8 +150,8 @@ class Image
$result = Image::get_accelerated_result($tag_conditions, $img_conditions, $start, $limit);
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) {
$querylet->append(new Querylet(" ORDER BY ".(Image::$order_sql ?: "images.".$config->get_string(IndexConfig::ORDER))));
if($limit!=null) {
$querylet->append(new Querylet(" LIMIT :limit ", ["limit" => $limit]));
$querylet->append(new Querylet(" OFFSET :offset ", ["offset"=>$start]));
}
@ -334,7 +334,7 @@ class Image
public static function count_pages(array $tags=[]): float
{
global $config;
return ceil(Image::count_images($tags) / $config->get_int('index_images'));
return ceil(Image::count_images($tags) / $config->get_int(IndexConfig::IMAGES));
}
private static function terms_to_conditions(array $terms): array

View File

@ -52,7 +52,7 @@ class ArrowkeyNavigation extends Extension
global $config, $database;
// get the amount of images per page
$images_per_page = $config->get_int('index_images');
$images_per_page = $config->get_int(IndexConfig::IMAGES);
// if there are no tags, use default
if (is_null($event->get_arg(1))) {

11
ext/index/config.php Normal file
View File

@ -0,0 +1,11 @@
<?php
class IndexConfig
{
public const IMAGES = "index_images";
public const SHOW_PAGE_SIZES = "index_show_page_sizes";
public const PAGE_SIZES = "index_page_sizes";
public const TIPS = "index_tips";
public const ORDER = "index_order";
}

65
ext/index/events.php Normal file
View File

@ -0,0 +1,65 @@
<?php
/*
* SearchTermParseEvent:
* Signal that a search term needs parsing
*/
class SearchTermParseEvent extends Event
{
/** @var null|string */
public $term = null;
/** @var string[] */
public $context = [];
/** @var Querylet[] */
public $querylets = [];
public function __construct(string $term=null, array $context=[])
{
$this->term = $term;
$this->context = $context;
}
public function is_querylet_set(): bool
{
return (count($this->querylets) > 0);
}
public function get_querylets(): array
{
return $this->querylets;
}
public function add_querylet(Querylet $q)
{
$this->querylets[] = $q;
}
}
class SearchTermParseException extends SCoreException
{
}
class PostListBuildingEvent extends Event
{
/** @var array */
public $search_terms = [];
/** @var array */
public $parts = [];
/**
* #param string[] $search
*/
public function __construct(array $search)
{
$this->search_terms = $search;
}
public function add_control(string $html, int $position=50)
{
while (isset($this->parts[$position])) {
$position++;
}
$this->parts[$position] = $html;
}
}

View File

@ -1,68 +1,7 @@
<?php
/*
* SearchTermParseEvent:
* Signal that a search term needs parsing
*/
class SearchTermParseEvent extends Event
{
/** @var null|string */
public $term = null;
/** @var string[] */
public $context = [];
/** @var Querylet[] */
public $querylets = [];
public function __construct(string $term=null, array $context=[])
{
$this->term = $term;
$this->context = $context;
}
public function is_querylet_set(): bool
{
return (count($this->querylets) > 0);
}
public function get_querylets(): array
{
return $this->querylets;
}
public function add_querylet(Querylet $q)
{
$this->querylets[] = $q;
}
}
class SearchTermParseException extends SCoreException
{
}
class PostListBuildingEvent extends Event
{
/** @var array */
public $search_terms = [];
/** @var array */
public $parts = [];
/**
* #param string[] $search
*/
public function __construct(array $search)
{
$this->search_terms = $search;
}
public function add_control(string $html, int $position=50)
{
while (isset($this->parts[$position])) {
$position++;
}
$this->parts[$position] = $html;
}
}
require_once "config.php";
require_once "events.php";
class Index extends Extension
{
@ -72,9 +11,9 @@ class Index extends Extension
public function onInitExt(InitExtEvent $event)
{
global $config;
$config->set_default_int("index_images", 24);
$config->set_default_bool("index_tips", true);
$config->set_default_string("index_order", "id DESC");
$config->set_default_int(IndexConfig::IMAGES, 24);
$config->set_default_bool(IndexConfig::TIPS, true);
$config->set_default_string(IndexConfig::ORDER, "id DESC");
}
public function onPageRequest(PageRequestEvent $event)
@ -167,7 +106,7 @@ class Index extends Extension
$sb->position = 20;
$sb->add_label("Show ");
$sb->add_int_option("index_images");
$sb->add_int_option(IndexConfig::IMAGES);
$sb->add_label(" images on the post list");
$event->panel->add_block($sb);

View File

@ -129,7 +129,7 @@ class NumericScore extends Extension
$sql = "SELECT id FROM images
WHERE EXTRACT(YEAR FROM posted) = :year
";
$args = ["limit" => $config->get_int("index_images"), "year" => $year];
$args = ["limit" => $config->get_int(IndexConfig::IMAGES), "year" => $year];
if ($event->page_matches("popular_by_day")) {
$sql .=