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'); ?>
 |