195 lines
6.9 KiB
PHP
195 lines
6.9 KiB
PHP
|
<?php
|
||
|
namespace ShortPixel;
|
||
|
use ShortPixel\ShortPixelLogger\ShortPixelLogger as Log;
|
||
|
use ShortPixel\Notices\NoticeController as Notices;
|
||
|
|
||
|
use ShortPixel\Helper\UiHelper as UiHelper;
|
||
|
|
||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||
|
exit; // Exit if accessed directly.
|
||
|
}
|
||
|
|
||
|
$fs = \wpSPIO()->filesystem();
|
||
|
|
||
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- This is not a form
|
||
|
if ( isset($_GET['noheader']) ) {
|
||
|
require_once(ABSPATH . 'wp-admin/admin-header.php');
|
||
|
}
|
||
|
|
||
|
$this->loadView('custom/part-othermedia-top');
|
||
|
|
||
|
?>
|
||
|
|
||
|
|
||
|
<div class='extra-heading top'>
|
||
|
<span> </span>
|
||
|
<span>
|
||
|
<select name='bulk-actions'>
|
||
|
<option><?php _e('Bulk Actions', 'shortpixel-image-optimiser'); ?></option>
|
||
|
<option value='optimize'><?php _e('Optimize','shortpixel-image-optimiser'); ?></option>
|
||
|
<option value='restore'><?php _e('Restore', 'shortpixel-image-optimiser'); ?></option>
|
||
|
<option value="mark-completed"><?php _e('Mark completed', 'shortpixel-image-optimiser'); ?></option>
|
||
|
</select> <button class='button' type='button' name='doBulkAction'><?php _e('Apply', 'shortpixel-image-optimiser'); ?></button>
|
||
|
</span>
|
||
|
|
||
|
<span class='custom-filter'>
|
||
|
<form method="get" action="<?php echo $this->url ?>" >
|
||
|
<input type='hidden' name='page' value='wp-short-pixel-custom'>
|
||
|
<?php $this->printFilter(); ?>
|
||
|
<button class='button' type='submit'><?php _e('Filter', 'shortpixel-image-optimiser'); ?></button>
|
||
|
</form>
|
||
|
</span>
|
||
|
|
||
|
</div>
|
||
|
<div class='list-overview'>
|
||
|
|
||
|
|
||
|
<div class='heading'>
|
||
|
<?php foreach($this->view->headings as $hname => $heading):
|
||
|
$isSortable = $heading['sortable'];
|
||
|
?>
|
||
|
<span class='heading <?php echo esc_attr($hname) ?>'>
|
||
|
<?php echo $this->getDisplayHeading($heading); ?>
|
||
|
</span>
|
||
|
|
||
|
<?php endforeach; ?>
|
||
|
</div>
|
||
|
|
||
|
<?php if (count($this->view->items) == 0) : ?>
|
||
|
<div class='no-items'> <p>
|
||
|
<?php
|
||
|
|
||
|
if (true === $view->hasSearch)
|
||
|
{
|
||
|
echo esc_html__('Your search query didn\'t result in any images. ', 'shortpixel-image-optimiser');
|
||
|
}
|
||
|
elseif (true === $view->hasFilter )
|
||
|
{
|
||
|
printf(esc_html__('Filter didn\'t yield any results. %s Show all Items %s ', 'shortpixel-image-optimiser'), "<a href='$this->url'>",'</a>');
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$folder_url = esc_url(add_query_arg('part', 'folders', $this->url));
|
||
|
|
||
|
printf(esc_html__('No images available. Go to %s Folders %s to configure additional folders to be optimized.','shortpixel-image-optimiser'), '<a href="'. esc_url($folder_url) . '">', '</a>');
|
||
|
|
||
|
} ?>
|
||
|
</p>
|
||
|
</div>
|
||
|
|
||
|
<?php endif; ?>
|
||
|
|
||
|
<?php
|
||
|
$folders = $this->view->folders;
|
||
|
|
||
|
foreach($this->view->items as $item):
|
||
|
|
||
|
|
||
|
?>
|
||
|
|
||
|
<div class='item item-<?php echo esc_attr($item->get('id')) ?>'>
|
||
|
<?php
|
||
|
|
||
|
$allActions = array_merge(UiHelper::getActions($item), UiHelper::getListActions($item));
|
||
|
|
||
|
$checkBoxActions = array();
|
||
|
if (array_key_exists('optimize', $allActions))
|
||
|
{
|
||
|
$checkBoxActions[] = 'is-optimizable';
|
||
|
}
|
||
|
if (array_key_exists('restore', $allActions))
|
||
|
{
|
||
|
$checkBoxActions[] = 'is-restorable';
|
||
|
}
|
||
|
|
||
|
$filesize = $item->getFileSize();
|
||
|
$display_date = $this->getDisplayDate($item);
|
||
|
$folder_id = $item->get('folder_id');
|
||
|
|
||
|
$rowActions = $this->getRowActions($item);
|
||
|
|
||
|
|
||
|
$folder = isset($folders[$folder_id]) ? $folders[$folder_id] : false;
|
||
|
$media_type = ($folder && $folder->get('is_nextgen')) ? __('Nextgen', 'shortpixel-image-optimiser') : __('Custom', 'shortpixel_image_optimiser');
|
||
|
$img_url = $fs->pathToUrl($item);
|
||
|
$is_heavy = ($filesize >= 500000 && $filesize > 0);
|
||
|
|
||
|
$item_class = '';
|
||
|
if (count($checkBoxActions) > 0)
|
||
|
$item_class = ' class="' . implode(' ', $checkBoxActions) . '" ';
|
||
|
|
||
|
?>
|
||
|
<span><input type='checkbox' name='select[]' value="<?php echo $item->get('id'); ?>" <?php echo $item_class ?>/></span>
|
||
|
<span><a href="<?php echo esc_attr($img_url); ?>" target="_blank">
|
||
|
<div class='thumb' <?php if($is_heavy)
|
||
|
{
|
||
|
echo('title="' . esc_attr__('This image is heavy and it would slow this page down if displayed here. Click to open it in a new browser tab.', 'shortpixel-image-optimiser') . '"');
|
||
|
}
|
||
|
?> style="background-image:url('<?php echo($is_heavy ? esc_url(wpSPIO()->plugin_url('res/img/heavy-image@2x.png')) : esc_url($img_url)) ?>')">
|
||
|
</div>
|
||
|
</a></span>
|
||
|
<span class='filename'><?php echo esc_html($item->getFileName()) ?>
|
||
|
|
||
|
<div class="row-actions">
|
||
|
<span class='item-id'>#<?php echo esc_attr($item->get('id')); ?></span>
|
||
|
|
||
|
<?php
|
||
|
if (isset($rowActions)):
|
||
|
$i = 0;
|
||
|
foreach($rowActions as $actionName => $action):
|
||
|
|
||
|
|
||
|
$classes = ''; // ($action['display'] == 'button') ? " button-smaller button-primary $actionName " : "$actionName";
|
||
|
$link = ($action['type'] == 'js') ? 'javascript:' . $action['function'] : $action['function'];
|
||
|
$newtab = ($actionName == 'extendquota' || $actionName == 'view') ? 'target="_blank"' : '';
|
||
|
|
||
|
if ($i > 0)
|
||
|
echo "|";
|
||
|
?>
|
||
|
<a href="<?php echo $link ?>" <?php echo esc_attr($newtab); ?> class="<?php echo $classes ?>"><?php echo $action['text'] ?></a>
|
||
|
<?php
|
||
|
$i++;
|
||
|
endforeach;UiHelper::getActions($item);
|
||
|
|
||
|
endif;
|
||
|
?>
|
||
|
</div>
|
||
|
</span>
|
||
|
<span class='folderpath'><?php echo esc_html( (string) $item->getFileDir()); ?></span>
|
||
|
<span class='mediatype'><?php echo esc_html($media_type) ?></span>
|
||
|
<span class="date"><?php echo esc_html($display_date) ?></span>
|
||
|
|
||
|
<span >
|
||
|
<?php $this->doActionColumn($item); ?>
|
||
|
</span>
|
||
|
|
||
|
</div>
|
||
|
<?php endforeach; ?>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div class='pagination tablenav bottom'>
|
||
|
<div class="view_switch">
|
||
|
<?php if ($this->has_hidden_items || $this->show_hidden):
|
||
|
|
||
|
if ($this->show_hidden)
|
||
|
{
|
||
|
printf('<a href="%s">%s</a>', esc_url(add_query_arg('show_hidden',false)), esc_html__('Back to normal items', 'shortpixel-image-optimiser'));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
printf('<a href="%s">%s</a>', esc_url(add_query_arg('show_hidden',true)), esc_html__('Show hidden items', 'shortpixel-image-optimiser'));
|
||
|
}
|
||
|
|
||
|
endif; ?>
|
||
|
</div>
|
||
|
<div class='tablenav-pages'>
|
||
|
<?php echo $this->view->pagination; ?>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
</div> <!-- wrap -->
|
||
|
|
||
|
<?php $this->loadView('snippets/part-comparer'); ?>
|