Exemple #1
0
 public function images()
 {
     if (!current_user_can('shopp_settings')) {
         wp_die(__('You do not have sufficient permissions to access this page.'));
     }
     $defaults = array('paged' => 1, 'per_page' => 25, 'action' => false, 'selected' => array());
     $args = array_merge($defaults, $_REQUEST);
     extract($args, EXTR_SKIP);
     $edit = false;
     if (isset($_GET['id'])) {
         $edit = (int) $_GET['id'];
         if ('new' == $_GET['id']) {
             $edit = 'new';
         }
     }
     if (isset($_GET['delete']) || 'delete' == $action) {
         check_admin_referer('shopp-settings-images');
         if (!empty($_GET['delete'])) {
             $selected[] = (int) $_GET['delete'];
         }
         $selected = array_filter($selected);
         foreach ($selected as $delete) {
             $Record = new ImageSetting((int) $delete);
             $Record->delete();
         }
     }
     if (!empty($_POST['save'])) {
         check_admin_referer('shopp-settings-images');
         $ImageSetting = new ImageSetting($edit);
         $_POST['name'] = sanitize_title_with_dashes($_POST['name']);
         $_POST['sharpen'] = floatval(str_replace('%', '', $_POST['sharpen']));
         $ImageSetting->updates($_POST);
         if (!empty($ImageSetting->name)) {
             $ImageSetting->save();
         }
     }
     $start = $per_page * ($paged - 1);
     $ImageSetting = new ImageSetting($edit);
     $table = $ImageSetting->_table;
     $columns = 'SQL_CALC_FOUND_ROWS *';
     $where = array("type='{$ImageSetting->type}'", "context='{$ImageSetting->context}'");
     $limit = "{$start},{$per_page}";
     $options = compact('columns', 'useindex', 'table', 'joins', 'where', 'groupby', 'having', 'limit', 'orderby');
     $query = sDB::select($options);
     $settings = sDB::query($query, 'array', array($ImageSetting, 'loader'));
     $total = sDB::found();
     $num_pages = ceil($total / $per_page);
     $ListTable = ShoppUI::table_set_pagination($this->screen, $total, $num_pages, $per_page);
     $fit_menu = $ImageSetting->fit_menu();
     $quality_menu = $ImageSetting->quality_menu();
     $actions_menu = array('delete' => __('Delete', 'Shopp'));
     $json_settings = array();
     $skip = array('created', 'modified', 'numeral', 'context', 'type', 'sortorder', 'parent');
     foreach ($settings as &$Setting) {
         if (method_exists($Setting, 'json')) {
             $json_settings[$Setting->id] = $Setting->json($skip);
         }
     }
     include $this->ui('images.php');
 }