function prepare_items() { global $wpdb; $sql = 'SELECT term_id, name FROM `' . $wpdb->prefix . 'terms`'; $buff = $wpdb->get_results($sql, ARRAY_A); if ($wpdb->last_error != '') { WPGrabberErrorHandler::add($wpdb->last_error, __FILE__, __LINE__); } elseif (count($buff)) { foreach ($buff as $el) { $this->categories[$el['term_id']] = $el['name']; } } $per_page = $this->get_items_per_page('wpgrabber_feeds_per_page', 10); $current_page = $this->get_pagenum(); $this->_column_headers = $this->get_column_info(); $sql_where = array(); $sql_order = array(); if (isset($_POST['s'])) { $search = trim($_POST['s']); if ($search != '') { $sql_where[] = 'w.`name` LIKE \'%' . esc_sql($search) . '%\''; } } if (isset($_SESSION['wpgrabberCategoryFilter']) and intval($_SESSION['wpgrabberCategoryFilter'])) { $sql_where[] = 'w.`catid` = ' . (int) $_SESSION['wpgrabberCategoryFilter']; } if (isset($_GET['orderby'])) { $orderby = trim($_GET['orderby']); $sortable = $this->get_sortable_columns(); if ($orderby != '' and isset($sortable[$orderby])) { $table = $orderby == 'count_posts' ? '' : 'w.'; $sql_order[] = $table . $orderby . ' ' . ((isset($_GET['order']) and $_GET['order'] == 'desc') ? 'DESC' : 'ASC'); } } $sql_order[] = 'w.id DESC'; $sql = 'SELECT SQL_CALC_FOUND_ROWS w.*, COUNT(wc.id) AS count_posts FROM `' . $wpdb->prefix . 'wpgrabber` AS w LEFT JOIN `' . $wpdb->prefix . 'wpgrabber_content` AS wc ON wc.feed_id = w.id ' . (!empty($sql_where) ? 'WHERE ' . implode(' AND ', $sql_where) : '') . ' GROUP BY w.id ' . (!empty($sql_order) ? 'ORDER BY ' . implode(', ', $sql_order) : '') . ' LIMIT ' . ($current_page - 1) * $per_page . ', ' . $per_page; $items = $wpdb->get_results($sql, ARRAY_A); if ($wpdb->last_error != '') { WPGrabberErrorHandler::add($wpdb->last_error, __FILE__, __LINE__); } else { $this->items = $items; $this->set_pagination_args(array('total_items' => $wpdb->get_var('SELECT FOUND_ROWS()'), 'per_page' => $per_page)); } }
protected function _afterExecute($id) { parent::_afterExecute($id); if ($this->testOn) { } else { foreach ($this->updateFeedData as $key => $value) { $sql[] = '`' . $key . '` = \'' . esc_sql($value) . '\''; } $sql = 'UPDATE `' . $this->db->prefix . 'wpgrabber` SET ' . implode(',', $sql) . ' WHERE id = ' . (int) $id; $this->db->query($sql); if ($this->db->last_error != '') { WPGrabberErrorHandler::add($this->db->last_error, __FILE__, __LINE__); } $this->updateFeedData = array(); $this->_echo('<br /><b>Импорт ленты: <a target="_blank" href="' . $this->feed['url'] . '">' . $this->feed['name'] . '</a> успешно завершен! - ' . date('H:i:s Y-m-d') . '</b><br />'); } }
function wpgrabberOff() { global $wpdb; WPGrabberErrorHandler::initPhpErrors(); if (isset($_REQUEST['rows'])) { $rows = array_map('intval', $_REQUEST['rows']); $sql = 'UPDATE `' . $wpdb->prefix . 'wpgrabber` SET published = 0 WHERE id IN (' . implode(',', $rows) . ')'; $result = $wpdb->query($sql); if ($wpdb->last_error != '') { WPGrabberErrorHandler::add($wpdb->last_error, __FILE__, __LINE__); } if ($result > 0) { wpgrabberAdminNotice('Выбранные ленты успешно выключены'); return true; } } wpgrabberAdminNotice('Ошибка выключения выбранных лент!', 'error'); return false; }