Uname: Linux webm021.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
Software: Apache
PHP version: 5.4.45 [ PHP INFO ] PHP os: Linux
Server Ip: 54.36.91.62
Your Ip: 216.73.216.52
User: matthif (139342) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : AdminGrids.php
<?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;
    }
}
© 2026 XylotrechusZ