57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php declare(strict_types=1);
 | 
						|
 | 
						|
/*
 | 
						|
 * SearchTermParseEvent:
 | 
						|
 * Signal that a search term needs parsing
 | 
						|
 */
 | 
						|
class SearchTermParseEvent extends Event
 | 
						|
{
 | 
						|
    public int $id = 0;
 | 
						|
    public ?string $term = null;
 | 
						|
    /** @var string[] */
 | 
						|
    public array $context = [];
 | 
						|
    /** @var Querylet[] */
 | 
						|
    public array $querylets = [];
 | 
						|
    public ?string $order = null;
 | 
						|
 | 
						|
    public function __construct(int $id, string $term=null, array $context=[])
 | 
						|
    {
 | 
						|
        parent::__construct();
 | 
						|
        $this->id = $id;
 | 
						|
        $this->term = $term;
 | 
						|
        $this->context = $context;
 | 
						|
    }
 | 
						|
 | 
						|
    public function add_querylet(Querylet $q)
 | 
						|
    {
 | 
						|
        $this->querylets[] = $q;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
class SearchTermParseException extends SCoreException
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
class PostListBuildingEvent extends Event
 | 
						|
{
 | 
						|
    public array $search_terms = [];
 | 
						|
    public array $parts = [];
 | 
						|
 | 
						|
    /**
 | 
						|
     * #param string[] $search
 | 
						|
     */
 | 
						|
    public function __construct(array $search)
 | 
						|
    {
 | 
						|
        parent::__construct();
 | 
						|
        $this->search_terms = $search;
 | 
						|
    }
 | 
						|
 | 
						|
    public function add_control(string $html, int $position=50)
 | 
						|
    {
 | 
						|
        while (isset($this->parts[$position])) {
 | 
						|
            $position++;
 | 
						|
        }
 | 
						|
        $this->parts[$position] = $html;
 | 
						|
    }
 | 
						|
}
 |