| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- <?php
 
- ###
 
- # @name		Plugins Module
 
- # @author		Tobias Reich
 
- # @copyright	2014 by Tobias Reich
 
- ###
 
- if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
 
- class Plugins implements \SplSubject {
 
- 	private $files		= array();
 
- 	private $observers	= array();
 
- 	public $action	= null;
 
- 	public $args	= null;
 
- 	public function __construct($files, $database, $settings) {
 
- 		if (!isset($files)) return false;
 
- 		# Init vars
 
- 		$plugins		= $this;
 
- 		$this->files	= $files;
 
- 		# Load plugins
 
- 		foreach ($this->files as $file) {
 
- 			if ($file==='') continue;
 
- 			include(LYCHEE_PLUGINS . $file);
 
- 		}
 
- 		return true;
 
- 	}
 
- 	public function attach(\SplObserver $observer) {
 
- 		if (!isset($observer)) return false;
 
- 		# Add observer
 
- 		$this->observers[] = $observer;
 
- 		return true;
 
- 	}
 
- 	public function detach(\SplObserver $observer) {
 
- 		if (!isset($observer)) return false;
 
- 		# Remove observer
 
- 		$key = array_search($observer, $this->observers, true);
 
- 		if ($key) unset($this->observers[$key]);
 
- 		return true;
 
- 	}
 
- 	public function notify() {
 
- 		# Notify each observer
 
- 		foreach ($this->observers as $value) $value->update($this);
 
- 		return true;
 
- 	}
 
- 	public function activate($action, $args) {
 
- 		if (!isset($action, $args)) return false;
 
- 		# Save vars
 
- 		$this->action	= $action;
 
- 		$this->args		= $args;
 
- 		# Notify observers
 
- 		$this->notify();
 
- 		return true;
 
- 	}
 
- }
 
- ?>
 
 
  |