| Current Path : /home/poneycluc/www/plugins/system/t4/admin/src/ |
| Current File : /home/poneycluc/www/plugins/system/t4/admin/src/Draft.php |
<?php
namespace T4Admin;
use Joomla\CMS\Cache\Cache;
use Joomla\CMS\Factory;
use Joomla\CMS\Session\Session;
class Draft {
static $cache_group = 't4admin';
public static function getCache() {
$conf = Factory::getConfig();
$options = [
'caching' => true,
'cachebase' => $conf->get('cache_path', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache')
];
return Cache::getInstance('', $options);
}
public static function clean() {
$cache = self::getCache();
$cache->clean(self::$cache_group);
}
public static function clear($id = null, $token = null) {
if ($id === null) $id = Factory::getApplication()->input->getInt('id');
if ($token === null) $token = Session::getFormToken();
$cache = self::getCache();
$key = self::makekey($token, $id);
$cache->remove($key, self::$cache_group);
Factory::getDocument()->addScriptDeclaration('var t4previewkey="' . $key . '"');
}
public static function store($type = null) {
$input = Factory::getApplication()->input;
$post = $input->post;
$id = $input->getInt('id');
if ($type === null) $type = Factory::getApplication()->input->get('type');
$token = Session::getFormToken();
// $savedata = json_decode(file_get_contents('php://input'), true);
$savedata = $post->getRaw('data');
$key = self::makekey($token, $id);
$data = self::load($key);
if (!is_array($data)) $data = [];
$data[$type] = $savedata;
$cache = self::getCache();
$cache->store($data, $key, self::$cache_group);
return $key;
}
public static function load($key) {
static $data = null;
if ($data === null) {
$cache = self::getCache();
$data = $cache->get($key, self::$cache_group);
if (empty($data)) $data = [];
}
return $data;
}
public static function makekey($token, $id) {
return md5("$token|$id");
}
}