- File: Admin.php
- Full Path: /home/matthif/www/wp-content/plugins/uber-grid/src/Admin.php
- Date Modified: 03/16/2023 5:23 PM
- File size: 17.86 KB
- MIME-type: text/x-php
- Charset: utf-8
<?php
namespace PfhubPortfolio;
class Admin
{
public $pages = array();
public function __construct()
{
add_action('admin_menu', array($this, 'admin_menu'));
add_action('wp_loaded', array($this, 'wp_loaded'));
add_action('admin_enqueue_scripts', array($this, 'admin_styles'));
add_action('admin_enqueue_scripts', array($this, 'admin_scripts'));
}
public function admin_styles($hook)
{
if (in_array($hook, $GLOBALS['pfhub_portfolio']->admin->pages)) {
wp_enqueue_style("admin_css", PFHUB_PORTFOLIO_PLUGIN_URL . "/assets/style/admin.style.css", false);
wp_enqueue_style("jquery_ui", PFHUB_PORTFOLIO_PLUGIN_URL . "/assets/style/jquery-ui.css", false);
wp_enqueue_style("simple_slider_css", PFHUB_PORTFOLIO_PLUGIN_URL . "/assets/style/simple-slider.css", false);
}
}
public function admin_scripts($hook)
{
$ajax_url = admin_url("admin-ajax.php");
if (in_array($hook, $GLOBALS['pfhub_portfolio']->admin->pages)) {
wp_enqueue_media();
wp_enqueue_script("pfhub_portfolio_admin_js", PFHUB_PORTFOLIO_PLUGIN_URL . "/assets/js/admin.js", false);
wp_enqueue_script("jquery-ui-core");
wp_enqueue_script("simple_slider_js", PFHUB_PORTFOLIO_PLUGIN_URL . '/assets/js/simple-slider.js', false);
wp_enqueue_script('param_block2', PFHUB_PORTFOLIO_PLUGIN_URL . "/assets/js/jscolor.js");
wp_localize_script('pfhub_portfolio_admin_js', 'ajaxUrl', $ajax_url);
}
$edit_pages = array('post.php', 'post-new.php');
if (in_array($hook, $edit_pages)) {
wp_enqueue_script("pfhub_portfolio_add_shortcode", PFHUB_PORTFOLIO_PLUGIN_URL . "/assets/js/shortcode.js", false);
wp_localize_script('pfhub_portfolio_add_shortcode', 'ajax_object_shortecode', $ajax_url);
wp_localize_script('pfhub_portfolio_add_shortcode', 'pfhub_portfolio_add_shortecode_nonce', wp_create_nonce('pfhub_portfolio_add_shortcode'));
}
}
/**
* Prints Portfolio Menu
*/
public function admin_menu()
{
$this->pages[] = add_menu_page(__('Portfolio Gallery', 'pfhub_portfolio'), __('Portfolio Gallery', 'pfhub_portfolio'), 'delete_pages', 'portfolios_pfhub_portfolio', array(
AdminGrids::class,
'load_portfolio_page'
), 'dashicons-layout');
$this->pages[] = add_submenu_page('portfolios_pfhub_portfolio', __('Portfolios', 'pfhub_portfolio'), __('Portfolios', 'pfhub_portfolio'), 'delete_pages', 'portfolios_pfhub_portfolio', array(
AdminGrids::class,
'load_portfolio_page'
));
$this->pages[] = add_submenu_page('portfolios_pfhub_portfolio', __('Settings', 'pfhub_portfolio'), __('Settings', 'pfhub_portfolio'), 'delete_pages', 'Options_portfolio_styles', array(
$this,
'settings'
));
$this->pages[] = add_submenu_page('portfolios_pfhub_portfolio', __('Lightbox Settings', 'pfhub_portfolio'), __('Lightbox Settings', 'pfhub_portfolio'), 'delete_pages', 'Options_portfolio_lightbox_styles', array(
AdminLightboxSettings::class,
'load_page'
));
}
public function settings()
{
require(PFHUB_PORTFOLIO_TEMPLATES_PATH . DIRECTORY_SEPARATOR . 'admin-settings.php');
}
public function wp_loaded()
{
if (isset($_GET['page']) && $_GET['page'] == 'portfolios_pfhub_portfolio') {
if (isset($_GET['task'])) {
$task = sanitize_text_field($_GET['task']);
switch ($task) {
case 'add_portfolio':
$this->add_portfolio();
break;
case 'portfolio_video':
$this->add_video();
break;
case 'portfolio_add_thumb_video':
$this->add_thumb_video();
break;
case 'portfolio_video_edit':
$this->edit_video();
break;
case 'remove_portfolio':
$this->remove_portfolio();
break;
case 'duplicate_portfolio_gallery':
$this->duplicate_portfolio();
break;
}
}
}
}
/**
* Add New Portfolio
*/
public static function add_portfolio()
{
if (!isset($_REQUEST['pfhub_portfolio_add_portfolio_nonce']) || !wp_verify_nonce($_REQUEST['pfhub_portfolio_add_portfolio_nonce'], 'add_new_portfolio')) {
wp_die('Security check failure.');
}
global $wpdb;
$table_name = $wpdb->prefix . "pfhub_portfolio_grids";
$wpdb->insert(
$table_name,
array(
'name' => 'New portfolio',
'sl_height' => '375',
'sl_width' => '600',
'pause_on_hover' => 'on',
'grid_view_type' => '2',
'description' => '4000',
'param' => '1000',
'sl_position' => 'off',
'ordering' => '1',
'published' => '300',
'categories' => 'My First Category,My Second Category,My Third Category,',
'pfhub_portfolio_show_sorting' => 'off',
'pfhub_portfolio_show_filtering' => 'off',
)
);
$apply_portfolio_safe_link = wp_nonce_url(
'admin.php?page=portfolios_pfhub_portfolio&id=' . $wpdb->insert_id . '&task=apply',
'apply_portfolio_' . $wpdb->insert_id,
'pfhub_portfolio_apply_portfolio_nonce'
);
$apply_portfolio_safe_link = htmlspecialchars_decode($apply_portfolio_safe_link);
header('Location: ' . $apply_portfolio_safe_link);
}
/**
* Insert portfolio video
*/
public static function add_video()
{
if (!isset($_GET["id"]) || !absint($_GET['id']) || absint($_GET['id']) != $_GET['id']) {
wp_die('"id" parameter is required to be not negative integer');
}
$id = absint($_GET["id"]);
global $wpdb;
if (isset($_POST["pfhub_portfolio_add_video_input"]) && $_POST["pfhub_portfolio_add_video_input"] != '') {
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id= %d", $id);
$row = $wpdb->get_row($query);
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_images where grid_id = %d ", $row->id);
$rowplusorder = $wpdb->get_results($query);
foreach ($rowplusorder as $key => $rowplusorders) {
if ($rowplusorders->ordering == 0) {
$rowplusorderspl = 1;
$wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "pfhub_portfolio_images SET ordering = %d WHERE id = %d ", $rowplusorderspl, $rowplusorders->id));
} else {
$rowplusorderspl = $rowplusorders->ordering + 1;
$wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "pfhub_portfolio_images SET ordering = %d WHERE id = %d ", $rowplusorderspl, $rowplusorders->id));
}
}
$_POST["pfhub_portfolio_add_video_input"] .= ";";
$_POST["show_title"] = sanitize_text_field($_POST["show_title"]);
$_POST["show_description"] = wp_kses_post($_POST["show_description"]);
$_POST["pfhub_portfolio_add_video_input"] = explode(';', sanitize_text_field($_POST["pfhub_portfolio_add_video_input"]));
$_POST["pfhub_portfolio_add_video_input"] = array_map('esc_url', $_POST["pfhub_portfolio_add_video_input"]);
$_POST["pfhub_portfolio_add_video_input"] = array_map('htmlspecialchars_decode', $_POST["pfhub_portfolio_add_video_input"]);
$_POST["pfhub_portfolio_add_video_input"] = implode(';', $_POST["pfhub_portfolio_add_video_input"]);
$_POST["show_url"] = esc_url($_POST["show_url"]);
$table_name = $wpdb->prefix . "pfhub_portfolio_images";
$wpdb->insert(
$table_name,
array(
'name' => sanitize_text_field($_POST["show_title"]),
'grid_id' => $id,
'description' => wp_kses_post($_POST["show_description"]),
'image_url' => sanitize_text_field($_POST["pfhub_portfolio_add_video_input"]),
'media_url' => esc_url_raw($_POST["show_url"]),
'media_type' => 'video',
'link_target' => 'on',
'ordering' => '0',
'published' => '1',
'published_in_sl_width' => '1',
'category' => '',
)
);
}
$apply_portfolio_safe_link = wp_nonce_url(
'admin.php?page=portfolios_pfhub_portfolio&id=' . $id . '&task=apply',
'apply_portfolio_' . $id,
'pfhub_portfolio_apply_portfolio_nonce'
);
$apply_portfolio_safe_link = htmlspecialchars_decode($apply_portfolio_safe_link);
header('Location: ' . $apply_portfolio_safe_link);
}
/**
* Add project thumbnail video
*/
public static function add_thumb_video()
{
global $wpdb;
if (!isset($_GET["id"]) || !absint($_GET['id']) || absint($_GET['id']) != $_GET['id']) {
wp_die('"id" parameter is required to be not negative integer');
}
$id = absint($_GET["id"]);
if (isset($_POST["pfhub_portfolio_add_video_input_thumb"]) && $_POST["pfhub_portfolio_add_video_input_thumb"] != '') {
if (!isset($_REQUEST['add_thumb_video_nonce']) || !wp_verify_nonce($_REQUEST['add_thumb_video_nonce'], 'add_thumb_video_nonce')) {
wp_die('Security check failure');
}
if (isset($_GET['thumb_parent']) || $_GET['thumb_parent'] != null) {
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id= %d", $id);
$row = $wpdb->get_row($query);
$project_id = absint($_GET['thumb_parent']);
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_images where grid_id = %d and id = %d", $row->id, $project_id);
$get_proj_image = $wpdb->get_row($query);
$project_id = absint($_GET['thumb_parent']);
$get_proj_image->image_url .= sanitize_text_field($_POST["pfhub_portfolio_add_video_input_thumb"]) . ";";
$wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "pfhub_portfolio_images SET image_url = '%s' where grid_id = %s and id = %d", $get_proj_image->image_url, $row->id, $project_id));
$apply_portfolio_safe_link = wp_nonce_url(
'admin.php?page=portfolios_pfhub_portfolio&id=' . $id . '&task=apply',
'apply_portfolio_' . $id,
'pfhub_portfolio_apply_portfolio_nonce'
);
$apply_portfolio_safe_link = htmlspecialchars_decode($apply_portfolio_safe_link);
header('Location: ' . $apply_portfolio_safe_link);
}
}
}
/**
* Edit video
*/
public static function edit_video()
{
$thumb = sanitize_text_field($_GET["thumb"]);
if (!isset($_GET["id"]) || !absint($_GET['id']) || absint($_GET['id']) != $_GET['id']) {
wp_die('"id" parameter is required to be not negative integer');
}
$id = absint($_GET["id"]);
if (!isset($_REQUEST['portfolio_video_edit_nonce']) || !wp_verify_nonce($_REQUEST['portfolio_video_edit_nonce'], 'edit_thumb_video_nonce' . $id . $thumb)) {
wp_die('Security check failure');
}
global $wpdb;
$grid_id = absint($_GET["grid_id"]);
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_images where grid_id = %s and id = %d", $grid_id, $id);
$get_proj_image = $wpdb->get_row($query);
$input_edit_video = explode(";", $get_proj_image->image_url);
if (isset($_POST["pfhub_portfolio_edit_video_input"]) && $_POST["pfhub_portfolio_edit_video_input"] != '') {
$input_edit_video[$thumb] = sanitize_text_field($_POST["pfhub_portfolio_edit_video_input"]);
array_map('esc_url', $input_edit_video);
$new_url = implode(";", $input_edit_video);
$wpdb->query($wpdb->prepare("UPDATE " . $wpdb->prefix . "pfhub_portfolio_images SET image_url = '%s' where grid_id = %s and id = %d", $new_url, $grid_id, $id));
}
$apply_portfolio_safe_link = wp_nonce_url(
'admin.php?page=portfolios_pfhub_portfolio&id=' . $grid_id . '&task=apply',
'apply_portfolio_' . $grid_id,
'pfhub_portfolio_apply_portfolio_nonce'
);
$apply_portfolio_safe_link = htmlspecialchars_decode($apply_portfolio_safe_link);
header('Location: ' . $apply_portfolio_safe_link);
}
/**
* Remove video
*/
public static function remove_portfolio()
{
if (!isset($_GET["id"]) || !absint($_GET['id']) || absint($_GET['id']) != $_GET['id']) {
wp_die('"id" parameter is required to be not negative integer');
}
$id = absint($_GET["id"]);
if (!isset($_REQUEST['pfhub_portfolio_remove_portfolio_nonce']) || !wp_verify_nonce($_REQUEST['pfhub_portfolio_remove_portfolio_nonce'], 'remove_portfolio_' . $id)) {
wp_die('Security check failure');
}
global $wpdb;
$sql_remov_tag = $wpdb->prepare("DELETE FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id = %d", $id);
$sql_remov_image = $wpdb->prepare("DELETE FROM " . $wpdb->prefix . "pfhub_portfolio_images WHERE grid_id = %d", $id);
if (!$wpdb->query($sql_remov_tag)) {
setcookie('deleted', 'fail', time() + 2);
} else {
$wpdb->query($sql_remov_image);
setcookie('deleted', 'success', time() + 2);
}
header('Location: admin.php?page=portfolios_pfhub_portfolio');
}
/**
* Duplicate Portfolio
*/
public static function duplicate_portfolio()
{
if (isset($_GET['page']) && $_GET['page'] == 'portfolios_pfhub_portfolio') {
$task = isset($_GET["task"]) ? sanitize_text_field($_GET["task"]) : '';
if ($task && $task == 'duplicate_portfolio_gallery') {
if (!isset($_GET["id"]) || !absint($_GET['id']) || absint($_GET['id']) != $_GET['id']) {
wp_die('"id" parameter is required to be not negative integer');
}
$id = absint($_GET["id"]);
if (!isset($_REQUEST['pfhub_portfolio_duplicate_nonce']) || !wp_verify_nonce($_REQUEST['pfhub_portfolio_duplicate_nonce'], 'pfhub_portfolio_duplicate_nonce' . $id)) {
wp_die('Security check fail');
}
global $wpdb;
$table_name = $wpdb->prefix . "pfhub_portfolio_grids";
$query = $wpdb->prepare("SELECT * FROM " . $table_name . " WHERE id=%d", $id);
$portfolio_gallery = $wpdb->get_results($query);
$wpdb->insert(
$table_name,
array(
'name' => $portfolio_gallery[0]->name . ' Copy',
'sl_height' => $portfolio_gallery[0]->sl_height,
'sl_width' => $portfolio_gallery[0]->sl_width,
'pause_on_hover' => $portfolio_gallery[0]->pause_on_hover,
'grid_view_type' => $portfolio_gallery[0]->grid_view_type,
'description' => $portfolio_gallery[0]->description,
'param' => $portfolio_gallery[0]->param,
'sl_position' => $portfolio_gallery[0]->sl_position,
'ordering' => $portfolio_gallery[0]->ordering,
'published' => $portfolio_gallery[0]->published,
'categories' => $portfolio_gallery[0]->categories,
'pfhub_portfolio_show_sorting' => $portfolio_gallery[0]->pfhub_portfolio_show_sorting,
'pfhub_portfolio_show_filtering' => $portfolio_gallery[0]->pfhub_portfolio_show_filtering,
'autoslide' => $portfolio_gallery[0]->autoslide,
'show_loading' => $portfolio_gallery[0]->show_loading,
'loading_icon_type' => $portfolio_gallery[0]->loading_icon_type
)
);
$last_key = $wpdb->insert_id;
$table_name = $wpdb->prefix . "pfhub_portfolio_images";
$query = $wpdb->prepare("SELECT * FROM " . $table_name . " WHERE grid_id=%d", $id);
$portfolios = $wpdb->get_results($query);
$portfolios_list = "";
foreach ($portfolios as $key => $portfolio) {
$new_portfolio = "('";
$new_portfolio .= esc_sql($portfolio->name) . "','" . $last_key . "','" . esc_sql($portfolio->description) . "','" . $portfolio->image_url . "','" .
$portfolio->media_url . "','" . $portfolio->media_type . "','" . $portfolio->link_target . "','" . $portfolio->ordering . "','" .
$portfolio->published . "','" . $portfolio->published_in_sl_width . "','" . $portfolio->category . "')";
$portfolios_list .= $new_portfolio . ",";
}
$portfolios_list = substr($portfolios_list, 0, strlen($portfolios_list) - 1);
$query = "INSERT into " . $table_name . " (name,grid_id,description,image_url,media_url,media_type,link_target,ordering,published,published_in_sl_width,category)
VALUES " . $portfolios_list;
$wpdb->query($query);
wp_redirect('admin.php?page=portfolios_pfhub_portfolio');
}
}
}
}