HEX
Server: Apache
System: Linux host60.registrar-servers.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: wwwrenee (3804)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /home/wwwrenee/public_html/wp-content/plugins/insta-gallery/includes/controllers/FeedController.php
<?php

require_once QLIGG_PLUGIN_DIR . 'includes/models/Feed.php';
require_once QLIGG_PLUGIN_DIR . 'includes/controllers/QLIGG_Controller.php';

class QLIGG_Feed_Controller extends QLIGG_Controller {


	protected static $instance;
	protected static $slug = QLIGG_DOMAIN . '_feeds';

	function add_menu() {
		add_submenu_page( QLIGG_DOMAIN, esc_html__( 'Feeds', 'insta-gallery' ), esc_html__( 'Feeds', 'insta-gallery' ), 'qligg_manage_feeds', self::$slug, array( $this, 'add_panel' ) );
	}

	function add_panel() {
		global $submenu, $qliggAPI;
		$feed_model    = new QLIGG_Feed();
		$feeds         = $feed_model->get_feeds();
		$account_model = new QLIGG_Account();
		$accounts      = $account_model->get_accounts();

		include QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php';
		include QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/feeds.php';
	}

	function get_feed( $feed_id ) {
		function get_the_title1( $id ) {
			return ( $id == 'all' ) ? esc_html__( 'All', 'insta-gallery' ) : get_the_title( $id );
		}

		$feed_model = new QLIGG_Feed();
		$feed       = $feed_model->get_feed( $feed_id );
		return $feed;
	}

	function ajax_edit_feed() {
		if ( current_user_can( 'qligg_manage_feeds' ) && check_ajax_referer( 'qligg_edit_feed', 'nonce', false ) ) {

			$feed_id = ( isset( $_REQUEST['feed_id'] ) ) ? absint( $_REQUEST['feed_id'] ) : -1;

			if ( $feed_id != -1 ) {
				$feed = $this->get_feed( $feed_id );
				if ( $feed ) {
					return parent::success_ajax( $feed );
				}
			}
			parent::error_reload_page();
		}
		parent::error_access_denied();
	}

	function ajax_save_feed() {
		if ( isset( $_REQUEST['feed'] ) && current_user_can( 'qligg_manage_feeds' ) && check_ajax_referer( 'qligg_save_feed', 'nonce', false ) ) {

			$feed = json_decode( stripslashes( $_REQUEST['feed'] ), true );

			if ( is_array( $feed ) ) {

				$feed_model = new QLIGG_Feed();

				if ( isset( $feed['id'] ) ) {
					return parent::success_ajax( $feed_model->update_feed( $feed ) );
				} else {
					return parent::success_ajax( $feed_model->add_feed( $feed ) );
				}

				return parent::error_reload_page();
			}
		}
		return parent::error_access_denied();
	}

	function ajax_delete_feed() {
		if ( isset( $_REQUEST['feed_id'] ) && current_user_can( 'qligg_manage_feeds' ) && check_ajax_referer( 'qligg_delete_feed', 'nonce', false ) ) {

			$feed_id = absint( $_REQUEST['feed_id'] );

			$feed_model = new QLIGG_Feed();

			$feed = $feed_model->delete_feed( $feed_id );

			if ( $feed['type'] == 'username' ) {
				$tk = "%%insta_gallery_v2_user_media_{$feed['username']}_%%";
			} else {
				$tk = "%%insta_gallery_v2_tag_media_{$feed['tag']}_%%";
			}

			$feed_model->clear_cache( $tk );

			if ( $feed_id ) {
				return parent::success_ajax( $feed );
			}

			parent::error_reload_page();
		}

		parent::error_access_denied();
	}

	function ajax_clear_cache() {
		global $wpdb;

		if ( isset( $_REQUEST['feed_id'] ) && current_user_can( 'qligg_manage_feeds' ) && check_ajax_referer( 'qligg_clear_cache', 'nonce', false ) ) {

			$feed_id = absint( $_REQUEST['feed_id'] );

			$feed_model = new QLIGG_Feed();

			$feed = $feed_model->get_feed( $feed_id );

			if ( $feed['type'] == 'username' ) {
				$tk = "%%insta_gallery_v2_user_media_{$feed['username']}_%%";
			} else {
				$tk = "%%insta_gallery_v2_tag_media_{$feed['tag']}_%%";
			}

			$feed_model->clear_cache( $tk );

			return parent::success_ajax( esc_html__( 'Feed cache cleared', 'insta-gallery' ) );
		}

		parent::error_access_denied();
	}

	function init() {
		add_action( 'wp_ajax_qligg_edit_feed', array( $this, 'ajax_edit_feed' ) );
		add_action( 'wp_ajax_qligg_save_feed', array( $this, 'ajax_save_feed' ) );
		add_action( 'wp_ajax_qligg_delete_feed', array( $this, 'ajax_delete_feed' ) );
		add_action( 'wp_ajax_qligg_clear_cache', array( $this, 'ajax_clear_cache' ) );
		add_action( 'admin_enqueue_scripts', array( $this, 'add_js' ) );
		add_action( 'admin_menu', array( $this, 'add_menu' ) );
	}

	function add_js() {
		if ( isset( $_GET['page'] ) && ( $_GET['page'] === self::$slug ) ) {
			$feed_model    = new QLIGG_Feed();
			$account_model = new QLIGG_Account();
			wp_enqueue_media();

			wp_localize_script(
				'qligg-backend',
				'qligg_feed',
				array(
					'nonce'    => array(
						'qligg_edit_feed'   => wp_create_nonce( 'qligg_edit_feed' ),
						'qligg_save_feed'   => wp_create_nonce( 'qligg_save_feed' ),
						'qligg_delete_feed' => wp_create_nonce( 'qligg_delete_feed' ),
						'qligg_clear_cache' => wp_create_nonce( 'qligg_clear_cache' ),
					),
					'message'  => array(
						'save'                => __( 'Please save feed settings to update user account.', 'insta-gallery' ),
						'confirm_delete'      => __( 'Do you want to delete the feed?', 'insta-gallery' ),
						'confirm_clear_cache' => __( 'Do you want to delete the feed?', 'insta-gallery' ),
						'confirm_username'    => __( 'You need to create token before creating a feed.', 'insta-gallery' ),
					),
					'accounts' => $account_model->get_accounts(),
					'args'     => $feed_model->get_args(),
					'redirect' => array(
						'accounts' => admin_url( 'admin.php?page=qligg_account' ),
					),
				)
			);
		}
	}

	public static function instance() {
		if ( ! isset( self::$instance ) ) {
			self::$instance = new self();
			self::$instance->init();
		}
		return self::$instance;
	}
}

QLIGG_Feed_Controller::instance();