- File: AdminGrids.php
- Full Path: /home/matthif/www/wp-content/plugins/uber-grid/src/AdminGrids.php
- Date Modified: 03/16/2023 5:23 PM
- File size: 16.12 KB
- MIME-type: text/x-php
- Charset: utf-8
<?php
namespace PfhubPortfolio;
class AdminGrids
{
public static function load_portfolio_page()
{
$task = isset($_GET["task"]) ? sanitize_text_field($_GET["task"]) : '';
$id = isset($_GET["id"]) ? intval($_GET['id']) : 0;
switch ($task) {
case 'edit_cat':
if ($id) {
self::edit_portfolio($id);
}
break;
case 'save':
if ($id) {
self::save_portfolio_data($id);
}
break;
case 'apply':
$a = isset($_REQUEST['pfhub_portfolio_apply_portfolio_nonce']);
$b = wp_verify_nonce($_REQUEST['pfhub_portfolio_apply_portfolio_nonce'], 'apply_portfolio_' . $id);
$c = wp_verify_nonce($_REQUEST['pfhub_portfolio_apply_portfolio_nonce'], 'remove_project_' . (isset($_GET['removeslide']) ? absint($_GET['removeslide']) : ''));
if (!(($b || $c) && $a)) {
wp_die('Security check failure');
}
if ($id) {
self::save_portfolio_data($id);
self::edit_portfolio($id);
}
break;
default:
self::show_portfolios_page();
break;
}
}
public static function show_portfolios_page()
{
global $wpdb;
if (isset($_COOKIE['deleted'])) {
if ($_COOKIE['deleted'] == 'success') {
?>
<div class="updated"><p><strong><?php _e('Item Deleted.'); ?></strong></p></div>
<?php
} elseif ($_COOKIE["deleted"] == 'fail') {
?>
<div id="message" class="error"><p>Portfolio Not Deleted</p></div>
<?php }
}
if (isset($_POST['search_events_by_title'])) {
$_POST['search_events_by_title'] = esc_html(stripslashes($_POST['search_events_by_title']));
}
if (isset($_POST['asc_or_desc'])) {
$_POST['asc_or_desc'] = sanitize_text_field($_POST['asc_or_desc']);
}
if (isset($_POST['order_by'])) {
$_POST['order_by'] = sanitize_text_field($_POST['order_by']);
}
$where = '';
$sort["custom_style"] = "manage-column column-autor sortable desc";
$sort["default_style"] = "manage-column column-autor sortable desc";
$sort["sortid_by"] = 'id';
$sort["1_or_2"] = 1;
$order = '';
if (isset($_POST['page_number'])) {
if ($_POST['asc_or_desc']) {
$sort["sortid_by"] = sanitize_text_field($_POST['order_by']);
if ($_POST['asc_or_desc'] == 1) {
$sort["custom_style"] = "manage-column column-title sorted asc";
$sort["1_or_2"] = "2";
$order = "ORDER BY " . $sort["sortid_by"] . " ASC";
} else {
$sort["custom_style"] = "manage-column column-title sorted desc";
$sort["1_or_2"] = "1";
$order = "ORDER BY " . $sort["sortid_by"] . " DESC";
}
}
if ($_POST['page_number']) {
$limit = (floatval($_POST['page_number']) - 1) * 20;
} else {
$limit = 0;
}
} else {
$limit = 0;
}
if (isset($_POST['search_events_by_title'])) {
$search_tag = esc_html(stripslashes($_POST['search_events_by_title']));
} else {
$search_tag = "";
}
if (isset($_GET["catid"])) {
$cat_id = absint($_GET["catid"]);
} else {
if (isset($_POST['cat_search'])) {
$cat_id = absint($_POST['cat_search']);
} else {
$cat_id = 0;
}
}
if ($search_tag) {
$where = " WHERE name LIKE '%" . sanitize_text_field($search_tag) . "%' ";
}
if ($where) {
if ($cat_id) {
$where .= " AND sl_width=" . $cat_id;
}
} else {
if ($cat_id) {
$where .= " WHERE sl_width=" . $cat_id;
}
}
$cat_row_query = "SELECT id,name FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE sl_width=0";
// get the total number of records
$query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "pfhub_portfolio_grids" . $where;
$total = $wpdb->get_var($query);
$pageNav['total'] = $total;
$pageNav['limit'] = $limit / 20 + 1;
if ($cat_id) {
$query = "SELECT a.* , COUNT(b.id) AS count, g.par_name AS par_name FROM " . $wpdb->prefix . "pfhub_portfolio_grids AS a LEFT JOIN " . $wpdb->prefix . "pfhub_portfolio_grids AS b ON a.id = b.sl_width LEFT JOIN (SELECT " . $wpdb->prefix . "pfhub_portfolio_grids.ordering as ordering," . $wpdb->prefix . "pfhub_portfolio_grids.id AS id, COUNT( " . $wpdb->prefix . "pfhub_portfolio_images.grid_id ) AS prod_count
FROM " . $wpdb->prefix . "pfhub_portfolio_images, " . $wpdb->prefix . "pfhub_portfolio_grids
WHERE " . $wpdb->prefix . "pfhub_portfolio_images.grid_id = " . $wpdb->prefix . "pfhub_portfolio_grids.id
GROUP BY " . $wpdb->prefix . "pfhub_portfolio_images.grid_id) AS c ON c.id = a.id LEFT JOIN
(SELECT " . $wpdb->prefix . "pfhub_portfolio_grids.name AS par_name," . $wpdb->prefix . "pfhub_portfolio_grids.id FROM " . $wpdb->prefix . "pfhub_portfolio_grids) AS g
ON a.sl_width=g.id WHERE a.name LIKE '%" . $search_tag . "%' group by a.id " . $order . " LIMIT " . $limit . ",20";
} else {
$query = "SELECT a.* , COUNT(b.id) AS count, g.par_name AS par_name FROM " . $wpdb->prefix . "pfhub_portfolio_grids AS a LEFT JOIN " . $wpdb->prefix . "pfhub_portfolio_grids AS b ON a.id = b.sl_width LEFT JOIN (SELECT " . $wpdb->prefix . "pfhub_portfolio_grids.ordering as ordering," . $wpdb->prefix . "pfhub_portfolio_grids.id AS id, COUNT( " . $wpdb->prefix . "pfhub_portfolio_images.grid_id ) AS prod_count
FROM " . $wpdb->prefix . "pfhub_portfolio_images, " . $wpdb->prefix . "pfhub_portfolio_grids
WHERE " . $wpdb->prefix . "pfhub_portfolio_images.grid_id = " . $wpdb->prefix . "pfhub_portfolio_grids.id
GROUP BY " . $wpdb->prefix . "pfhub_portfolio_images.grid_id) AS c ON c.id = a.id LEFT JOIN
(SELECT " . $wpdb->prefix . "pfhub_portfolio_grids.name AS par_name," . $wpdb->prefix . "pfhub_portfolio_grids.id FROM " . $wpdb->prefix . "pfhub_portfolio_grids) AS g
ON a.sl_width=g.id WHERE a.name LIKE '%" . $search_tag . "%' group by a.id " . $order . " LIMIT " . $limit . ",20";
}
$rows = $wpdb->get_results($query);
global $glob_ordering_in_cat;
if (isset($sort["sortid_by"])) {
if ($sort["sortid_by"] == 'ordering') {
if ($_POST['asc_or_desc'] == 1) {
$glob_ordering_in_cat = " ORDER BY ordering ASC";
} else {
$glob_ordering_in_cat = " ORDER BY ordering DESC";
}
}
}
$rows = \PfhubPortfolio\Helpers\GridHelper::catTree($rows);
$query = "SELECT " . $wpdb->prefix . "pfhub_portfolio_grids.ordering," . $wpdb->prefix . "pfhub_portfolio_grids.id, COUNT( " . $wpdb->prefix . "pfhub_portfolio_images.grid_id ) AS prod_count
FROM " . $wpdb->prefix . "pfhub_portfolio_images, " . $wpdb->prefix . "pfhub_portfolio_grids
WHERE " . $wpdb->prefix . "pfhub_portfolio_images.grid_id = " . $wpdb->prefix . "pfhub_portfolio_grids.id
GROUP BY " . $wpdb->prefix . "pfhub_portfolio_images.grid_id ";
$prod_rows = $wpdb->get_results($query);
foreach ($rows as $row) {
foreach ($prod_rows as $row_1) {
if ($row->id == $row_1->id) {
$row->ordering = $row_1->ordering;
$row->prod_count = $row_1->prod_count;
}
}
}
require_once(PFHUB_PORTFOLIO_TEMPLATES_PATH . DIRECTORY_SEPARATOR . 'admin-grids.php');
}
public static function edit_portfolio($id)
{
global $wpdb;
if (isset($_GET["removeslide"])) {
if (absint($_GET['removeslide']) != $_GET['removeslide'] || !absint($_GET['removeslide'])) {
wp_die(__('"removeslide" parameter is required to be not negative integer', 'pfhub_portfolio'));
} else {
$project_id = absint($_GET["removeslide"]);
$wpdb->query("DELETE FROM " . $wpdb->prefix . "pfhub_portfolio_images WHERE id = " . $project_id);
}
}
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id= %d", $id);
$row = $wpdb->get_row($query);
if (!isset($row->grid_view_type)) {
return 'id not found';
}
$images = explode(";;;", $row->grid_view_type);
$par = explode(' ', $row->param);
$count_ord = count($images);
$cat_row = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id!=" . $id . " and sl_width=0");
$cat_row = \PfhubPortfolio\Helpers\GridHelper::catTree($cat_row);
$query = $wpdb->prepare("SELECT name,ordering FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE sl_width=%d ORDER BY `ordering` ", $row->sl_width);
$ord_elem = $wpdb->get_results($query);
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_images where grid_id = %d order by ordering ASC ", $row->id);
$rowim = $wpdb->get_results($query);
$query = "SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids order by id ASC";
$rowsld = $wpdb->get_results($query);
require_once(PFHUB_PORTFOLIO_TEMPLATES_PATH . DIRECTORY_SEPARATOR . 'admin-grid-images.php');
}
public static function save_portfolio_data($id)
{
global $wpdb;
if (!(isset($_POST['sl_width']) && isset($_POST["name"]))) {
return;
}
$id = absint($id);
$name = sanitize_text_field(wp_unslash($_POST["name"]));
$sl_width = absint($_POST["sl_width"]);
$sl_height = absint($_POST["sl_height"]);
$pause_on_hover = in_array($_POST["pause_on_hover"], array(
'on',
'off'
)) ? $_POST["pause_on_hover"] : 'on';
$autoslide = in_array($_POST["autoslide"], array('on', 'off')) ? $_POST["autoslide"] : 'on';
$portfolio_effects_list = absint($_POST["portfolio_effects_list"]);
$description = absint($_POST["sl_pausetime"]);
$sl_changespeed = absint($_POST["sl_changespeed"]);
$all_categories = wp_unslash(str_replace(' ', '_', sanitize_text_field($_POST["allCategories"])));
$pfhub_portfolio_show_sorting = in_array($_POST["pfhub_portfolio_show_sorting"], array(
'on',
'off'
)) ? $_POST["pfhub_portfolio_show_sorting"] : 'off';
$pfhub_portfolio_show_filtering = in_array($_POST["pfhub_portfolio_show_filtering"], array(
'on',
'off'
)) ? $_POST["pfhub_portfolio_show_filtering"] : 'off';
$show_loading = in_array($_POST["show_loading"], array(
'on',
'off'
)) ? $_POST["show_loading"] : 'on';
$loading_icon_type = absint($_POST["loading_icon_type"]);
$wpdb->update(
$wpdb->prefix . "pfhub_portfolio_grids",
array(
'name' => $name,
'sl_width' => $sl_width,
'sl_height' => $sl_height,
'pause_on_hover' => $pause_on_hover,
'autoslide' => $autoslide,
'grid_view_type' => $portfolio_effects_list,
'description' => $description,
'param' => $sl_changespeed,
'ordering' => 1,
'categories' => $all_categories,
'pfhub_portfolio_show_sorting' => $pfhub_portfolio_show_sorting,
'pfhub_portfolio_show_filtering' => $pfhub_portfolio_show_filtering,
'show_loading' => $show_loading,
'loading_icon_type' => $loading_icon_type,
),
array('id' => $id)
);
update_option('pfhub_portfolio_disable_right_click', sanitize_text_field($_POST['disable_right_click']));
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id = %d", $id);
$row = $wpdb->get_row($query);
if (isset($_POST['pfhub_portfolio_admin_image_hover_preview'])) {
$img_preview = sanitize_text_field($_POST['pfhub_portfolio_admin_image_hover_preview']);
update_option('pfhub_portfolio_admin_image_hover_preview', $img_preview);
} else {
update_option('pfhub_portfolio_admin_image_hover_preview', 'off');
}
if (isset($_POST['changedvalues']) && $_POST['changedvalues'] != '') {
$changedValues = preg_replace('#[^0-9,]+#', '', $_POST['changedvalues']);
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_images where grid_id = %d AND id in (" . $changedValues . ") order by id ASC", $row->id);
$rowim = $wpdb->get_results($query);
foreach ($rowim as $key => $rowimages) {
$imgDescription = wp_kses_post(wp_unslash($_POST["im_description" . $rowimages->id . ""]));
$imgTitle = wp_kses_post(wp_unslash($_POST["titleimage" . $rowimages->id . ""]));
$orderBy = absint($_POST["order_by_" . $rowimages->id]);
$link_target = sanitize_text_field($_POST["sl_link_target" . $rowimages->id]);
$url = sanitize_text_field($_POST["media_url" . $rowimages->id]);
$image_url = sanitize_text_field($_POST["imagess" . $rowimages->id]);
$wpdb->update(
$wpdb->prefix . "pfhub_portfolio_images",
array(
'ordering' => $orderBy,
'link_target' => $link_target,
'media_url' => $url,
'name' => $imgTitle,
'description' => $imgDescription,
'image_url' => $image_url,
),
array('id' => absint($rowimages->id))
);
}
}
if ($_POST["imagess"] != '') {
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_images where grid_id = %d order by id ASC", $row->id);
$rowim = $wpdb->get_results($query);
foreach ($rowim as $key => $rowimages) {
$orderingplus = $rowimages->ordering + 1;
$wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "pfhub_portfolio_images SET ordering = %d WHERE ID = %d ", $orderingplus, $rowimages->id));
}
$table_name = $wpdb->prefix . "pfhub_portfolio_images";
$imagesnewuploader = explode(";;;", sanitize_text_field($_POST["imagess"]));
array_pop($imagesnewuploader);
foreach ($imagesnewuploader as $imagesnewupload) {
$wpdb->insert(
$table_name,
array(
'name' => '',
'grid_id' => $row->id,
'description' => '',
'image_url' => $imagesnewupload . ';',
'media_url' => '',
'ordering' => '0',
'published' => 2,
'published_in_sl_width' => '1',
),
array('%s', '%d', '%s', '%s', '%s', '%s', '%d', '%s')
);
}
$query = $wpdb->prepare("SELECT * FROM " . $table_name . " WHERE grid_id=%d ORDER BY ordering", $id);
$portfolio_images = $wpdb->get_results($query);
$i = 0;
foreach ($portfolio_images as $portfolio_image) {
$wpdb->update(
$table_name,
array('ordering' => $i),
array('id' => $portfolio_image->id)
);
$i++;
}
}
?>
<div class="updated"><p><strong><?php _e('Item Saved', 'pfhub_portfolio'); ?></strong></p></div>
<?php
return true;
}
}