120 lines
2.4 KiB
PHP
120 lines
2.4 KiB
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* @package Unlimited Elements
|
||
|
* @author UniteCMS http://unitecms.net
|
||
|
* @copyright Copyright (c) 2016 UniteCMS
|
||
|
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
|
||
|
*/
|
||
|
|
||
|
defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
|
||
|
|
||
|
class UCAdminNoticesOptions{
|
||
|
|
||
|
const OPTIONS_KEY = 'unlimited_elements_notices';
|
||
|
|
||
|
private static $optionsCache = array();
|
||
|
|
||
|
/**
|
||
|
* get the option value
|
||
|
*/
|
||
|
public static function getOption($key, $fallback = null){
|
||
|
|
||
|
$options = self::getOptions();
|
||
|
$value = UniteFunctionsUC::getVal($options['options'], $key, $fallback);
|
||
|
|
||
|
return $value;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* set the option value
|
||
|
*/
|
||
|
public static function setOption($key, $value){
|
||
|
|
||
|
$options = self::getOptions();
|
||
|
$options['options'][$key] = $value;
|
||
|
|
||
|
self::setOptions($options);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* get the notice all options
|
||
|
*/
|
||
|
public static function getNoticeOptions($id){
|
||
|
|
||
|
$options = self::getOptions();
|
||
|
$noticeOptions = UniteFunctionsUC::getVal($options['notices'], $id, array());
|
||
|
|
||
|
return $noticeOptions;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* get the notice option value
|
||
|
*/
|
||
|
public static function getNoticeOption($id, $key, $fallback = null){
|
||
|
|
||
|
$options = self::getOptions();
|
||
|
$noticeOptions = self::getNoticeOptions($id);
|
||
|
|
||
|
$value = UniteFunctionsUC::getVal($noticeOptions, $key, $fallback);
|
||
|
|
||
|
return $value;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* set the notice option value
|
||
|
*/
|
||
|
public static function setNoticeOption($id, $key, $value){
|
||
|
|
||
|
$options = self::getOptions();
|
||
|
$noticeOptions = self::getNoticeOptions($id);
|
||
|
|
||
|
$noticeOptions[$key] = $value;
|
||
|
|
||
|
$options['notices'][$id] = $noticeOptions;
|
||
|
|
||
|
self::setOptions($options);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* delete the notice option value
|
||
|
*/
|
||
|
public static function deleteNoticeOption($id, $key){
|
||
|
|
||
|
$options = self::getOptions();
|
||
|
$noticeOptions = self::getNoticeOptions($id);
|
||
|
|
||
|
unset($noticeOptions[$key]);
|
||
|
|
||
|
$options['notices'][$id] = $noticeOptions;
|
||
|
|
||
|
self::setOptions($options);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* get all options
|
||
|
*/
|
||
|
private static function getOptions(){
|
||
|
|
||
|
if(empty(self::$optionsCache)){
|
||
|
self::$optionsCache = get_option(self::OPTIONS_KEY, array(
|
||
|
'options' => array(),
|
||
|
'notices' => array(),
|
||
|
));
|
||
|
}
|
||
|
|
||
|
return self::$optionsCache;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* set all options
|
||
|
*/
|
||
|
private static function setOptions($options){
|
||
|
|
||
|
self::$optionsCache = $options;
|
||
|
|
||
|
update_option(self::OPTIONS_KEY, $options);
|
||
|
}
|
||
|
|
||
|
}
|