mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
121 lines
3.1 KiB
PHP
121 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* Presentation Plugin, Poll API
|
|
*
|
|
* PHP version 7
|
|
*
|
|
* @category API
|
|
* @package Grav\Plugin\PresentationPlugin
|
|
* @subpackage Grav\Plugin\PresentationPlugin\Poll
|
|
* @author Ole Vik <git@olevik.net>
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
* @link https://github.com/OleVik/grav-plugin-presentation
|
|
*/
|
|
|
|
namespace Grav\Plugin\PresentationPlugin\API;
|
|
|
|
/**
|
|
* Poll API
|
|
*
|
|
* Simple REST API for communicating Event Data between pages
|
|
*
|
|
* @category Extensions
|
|
* @package Grav\Plugin\PresentationPlugin
|
|
* @author Ole Vik <git@olevik.net>
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
* @link https://github.com/OleVik/grav-plugin-presentation
|
|
*/
|
|
class Poll implements PollInterface
|
|
{
|
|
/**
|
|
* Initiate Poll Storage
|
|
*
|
|
* @param string $directory Path to directory.
|
|
* @param string $file Filename.
|
|
*/
|
|
public function __construct($directory, $file)
|
|
{
|
|
$this->directory = $directory;
|
|
$this->file = $file;
|
|
$this->DS = DIRECTORY_SEPARATOR;
|
|
}
|
|
|
|
/**
|
|
* Set Poll Event Data
|
|
*
|
|
* @param string $data Event Data to execute.
|
|
*
|
|
* @throws Exception Errors from file operations.
|
|
*
|
|
* @return bool State of execution.
|
|
*/
|
|
public function set($data)
|
|
{
|
|
try {
|
|
if (!is_writable($this->directory)) {
|
|
try {
|
|
mkdir($this->directory, 0755, true);
|
|
} catch (\Exception $e) {
|
|
throw new \Exception($e);
|
|
}
|
|
}
|
|
try {
|
|
file_put_contents($this->directory . $this->DS . $this->file, $data);
|
|
echo $data;
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
throw new \Exception($e);
|
|
}
|
|
return false;
|
|
} catch (\Exception $e) {
|
|
throw new \Exception($e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get Poll Event Data
|
|
*
|
|
* @throws Exception Errors from file operations.
|
|
*
|
|
* @return bool State of execution.
|
|
*/
|
|
public function get()
|
|
{
|
|
try {
|
|
$target = $this->directory . $this->DS . $this->file;
|
|
if (file_exists($target)) {
|
|
$data = file_get_contents($target);
|
|
echo $data;
|
|
return true;
|
|
} else {
|
|
echo '100 Continue';
|
|
return false;
|
|
}
|
|
} catch (\Exception $e) {
|
|
throw new \Exception($e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Remove Poll Event Data
|
|
*
|
|
* @throws Exception Errors from file operations.
|
|
*
|
|
* @return bool State of execution.
|
|
*/
|
|
public function remove()
|
|
{
|
|
try {
|
|
$target = $this->directory . $this->DS . $this->file;
|
|
if (file_exists($target)) {
|
|
unlink($target);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} catch (\Exception $e) {
|
|
throw new \Exception($e);
|
|
}
|
|
return false;
|
|
}
|
|
}
|