75 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php declare(strict_types=1);
 | 
						|
use function MicroHTML\INPUT;
 | 
						|
 | 
						|
class RegenThumbTheme extends Themelet
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Show a form which offers to regenerate the thumb of an image with ID #$image_id
 | 
						|
     */
 | 
						|
    public function get_buttons_html(int $image_id): string
 | 
						|
    {
 | 
						|
        return (string)SHM_SIMPLE_FORM(
 | 
						|
            "regen_thumb/one",
 | 
						|
            INPUT(["type"=>'hidden', "name"=>'image_id', "value"=>$image_id]),
 | 
						|
            SHM_SUBMIT('Regenerate Thumbnail')
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Show a link to the new thumbnail.
 | 
						|
     */
 | 
						|
    public function display_results(Page $page, Image $image)
 | 
						|
    {
 | 
						|
        $page->set_title("Thumbnail Regenerated");
 | 
						|
        $page->set_heading("Thumbnail Regenerated");
 | 
						|
        $page->add_html_header("<meta http-equiv=\"cache-control\" content=\"no-cache\">");
 | 
						|
        $page->add_block(new NavBlock());
 | 
						|
        $page->add_block(new Block("Thumbnail", $this->build_thumb_html($image)));
 | 
						|
    }
 | 
						|
 | 
						|
    public function bulk_html(): string
 | 
						|
    {
 | 
						|
        return "<label><input type='checkbox' name='bulk_regen_thumb_missing_only' id='bulk_regen_thumb_missing_only' style='width:13px' value='true' />Only missing thumbs</label>";
 | 
						|
    }
 | 
						|
 | 
						|
    public function display_admin_block(): void
 | 
						|
    {
 | 
						|
        global $page, $database;
 | 
						|
 | 
						|
        $mimes = [];
 | 
						|
        $results = $database->get_all("SELECT mime, count(*) count FROM images group by mime");
 | 
						|
        foreach ($results as $result) {
 | 
						|
            array_push($mimes, "<option value='".$result["mime"]."'>".$result["mime"]." (".$result["count"].")</option>");
 | 
						|
        }
 | 
						|
 | 
						|
        $html = "
 | 
						|
            Will only regenerate missing thumbnails, unless force is selected. Force will override the limit and will likely take a very long time to process.
 | 
						|
			<p>".make_form(make_link("admin/regen_thumbs"))."
 | 
						|
				<table class='form'>
 | 
						|
                <tr><th><label for='regen_thumb_force'>Force</label></th><td><input type='checkbox' name='regen_thumb_force' id='regen_thumb_force' value='true' /></td></tr>
 | 
						|
                <tr><th><label for='regen_thumb_limit'>Limit</label></th><td><input type='number' name='regen_thumb_limit' id='regen_thumb_limit' value='1000' /></td></tr>
 | 
						|
                <tr><th><label for='regen_thumb_mime'>MIME</label></th><td>
 | 
						|
                    <select name='regen_thumb_mime' id='regen_thumb_mime'>
 | 
						|
                        <option value=''>All</option>
 | 
						|
                        ".implode($mimes)."
 | 
						|
                    </select>
 | 
						|
                </td></tr>
 | 
						|
                <tr><td colspan='2'><input type='submit' value='Regenerate Thumbnails'></td></tr>
 | 
						|
				</table>
 | 
						|
			</form></p>
 | 
						|
			<p>".make_form(make_link("admin/delete_thumbs"), "POST", false, "", "return confirm('Are you sure you want to delete all thumbnails?')")."
 | 
						|
				<table class='form'>
 | 
						|
                    <tr><th><label for='delete_thumb_mime'>MIME</label></th><td>
 | 
						|
                        <select name='delete_thumb_mime' id='delete_thumb_mime'>
 | 
						|
                            <option value=''>All</option>
 | 
						|
                            ".implode($mimes)."
 | 
						|
                        </select>
 | 
						|
                    </td></tr>
 | 
						|
					<tr><td colspan='2'><input type='submit' value='Delete Thumbnails'></td></tr>
 | 
						|
				</table>
 | 
						|
            </form></p>
 | 
						|
            		";
 | 
						|
        $page->add_block(new Block("Regen Thumbnails", $html));
 | 
						|
    }
 | 
						|
}
 |