<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
<?php
/**
 * @author    ThemePunch <info@themepunch.com>
 * @link      https://www.themepunch.com/
 * @copyright 2024 ThemePunch
 */

if(!defined('ABSPATH')) exit();

class RevSliderFavorite extends RevSliderFunctions {

	/**
	 * change the setting of a favorization
	 * @param string $do
	 * @param string $type
	 * @param mixed $id
	 * @return array
	 **/
	public function set_favorite($do, $type, $id){
		$fav = get_option('rs_favorite', array());
		$id	 = esc_attr($id);

		if(!isset($fav[$type])) $fav[$type] = array();
		$key = array_search($id, $fav[$type]);
		if($key === false){
			if($do == 'add') $fav[$type][] = $id;
		}elseif($do == 'remove'){
			unset($fav[$type][$key]);
		}elseif($do == 'replace'){
			$fav[$type] = $id;
		}
		update_option('rs_favorite', $fav);
		
		return $fav;
	}
	
	/**
	 * get a certain favorite type
	 * @param string $type
	 * @return array
	 **/
	public function get_favorite($type){
		$fav = get_option('rs_favorite', array());
		return $this->get_val($fav, $type, array());
	}
	
	/**
	 * return if certain element is in favorites
	 * @param string $type
	 * @param mixed $id
	 * @return bool
	 **/
	public function is_favorite($type, $id){
		$favs = $this->get_favorite($type);
		return array_search($id, $favs) !== false;
	}
}