116 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
class todo extends Module {
 | 
						|
 | 
						|
	
 | 
						|
	protected static $paramsList = array(
 | 
						|
		'visibility',
 | 
						|
		'x',
 | 
						|
		'y'
 | 
						|
	);
 | 
						|
 | 
						|
	public $params = array();
 | 
						|
	const TODO_FILE = 'db/todoist.xml';
 | 
						|
	private $token;
 | 
						|
	private $project_name;
 | 
						|
	private $project_id;
 | 
						|
	
 | 
						|
	public function __construct($params){
 | 
						|
		$this->moduleName = get_class();
 | 
						|
		$this->pathToModule = 'modules/'.$this->moduleName.'/';
 | 
						|
		$this->setParams($params);
 | 
						|
		echo '<script type="text/javascript" src="'.$this->pathToModule.'js/'.$this->moduleName.'.js"></script>
 | 
						|
				<link rel="stylesheet" href="'.$this->pathToModule.'css/'.$this->moduleName.'.css" type="text/css" />';
 | 
						|
		if($xmla = simplexml_load_file($this->pathToModule.self::TODO_FILE)){
 | 
						|
			$this->setToken($xmla->token);
 | 
						|
			$this->setProjectName($xmla->name);
 | 
						|
			$this->setProjectId($xmla->id);
 | 
						|
			echo '<div id="todo" style="top:'.$params['y'].'; left :'.$params['x'].';">';
 | 
						|
			if($this->token == null || $this->project_id == null)
 | 
						|
				echo 'Impossible de trouver votre configuration. <a href="'.$this->pathToModule.'includes/install-todoist.php">Cliquez ici</a> pour la mettre en place.</div>';
 | 
						|
			else{
 | 
						|
				$token 	= $xmla->token;
 | 
						|
				$id		= $xmla->id;
 | 
						|
				echo '</div><script type="text/javascript" src="'.$this->pathToModule.'js/getUncompletedTasks.php?token='.$token.'&id='.$id.'"></script>';
 | 
						|
			}
 | 
						|
			echo '<script>
 | 
						|
					$(document).ready(function(){
 | 
						|
						$(\'#todo\').resizable();
 | 
						|
					});</script>';
 | 
						|
		}else{
 | 
						|
			echo 'baaaaad persistance...';
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	private function setToken($token){
 | 
						|
		if($token == '' || $token == null)
 | 
						|
			$this->token = null;
 | 
						|
		else
 | 
						|
			$this->token = $token;
 | 
						|
	}
 | 
						|
	
 | 
						|
	private function setProjectName($name){
 | 
						|
		if($name == '' || $name == null)
 | 
						|
			$this->project_name = null;
 | 
						|
		else
 | 
						|
			$this->project_name = $name;
 | 
						|
	}
 | 
						|
	
 | 
						|
	private function setProjectId($id){
 | 
						|
		if($id == '' || $id == null)
 | 
						|
			$this->project_id = null;
 | 
						|
		else
 | 
						|
			$this->project_id = $id;
 | 
						|
	}
 | 
						|
	
 | 
						|
	private function setParams($params){
 | 
						|
		$this->params = $params;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public static function start($params){
 | 
						|
		$todo = new todo($params);
 | 
						|
	}
 | 
						|
	
 | 
						|
	public function setX($x){
 | 
						|
		// Saving the position and z-index of the note:
 | 
						|
		$xmla = simplexml_load_file('../'.AccueilModules::CONFIG_FILE);
 | 
						|
 | 
						|
		$path = $xmla->xpath("//item[@id='todo']"); 
 | 
						|
		$path[0]->x = $x;
 | 
						|
		
 | 
						|
		$xmla->asXML('../'.AccueilModules::CONFIG_FILE);
 | 
						|
		
 | 
						|
		echo "ok";
 | 
						|
	}
 | 
						|
	
 | 
						|
	public function setY($y){
 | 
						|
		// Saving the position and z-index of the note:
 | 
						|
		$xmla = simplexml_load_file('../'.AccueilModules::CONFIG_FILE);
 | 
						|
 | 
						|
		$path = $xmla->xpath("//item[@id='todo']"); 
 | 
						|
		$path[0]->y = $y;
 | 
						|
		
 | 
						|
		$xmla->asXML('../'.AccueilModules::CONFIG_FILE);
 | 
						|
		
 | 
						|
		echo "ok";
 | 
						|
	}
 | 
						|
	
 | 
						|
	public function setVisibility($visibility){
 | 
						|
		// Saving the position and z-index of the note:
 | 
						|
		$xmla = simplexml_load_file('../'.AccueilModules::CONFIG_FILE);
 | 
						|
 | 
						|
		$path = $xmla->xpath("//item[@id='todo']"); 
 | 
						|
		$path[0]->visibility = $visibility;
 | 
						|
		
 | 
						|
		$xmla->asXML('../'.AccueilModules::CONFIG_FILE);
 | 
						|
		
 | 
						|
		echo "ok";
 | 
						|
	}
 | 
						|
	
 | 
						|
	public static function updateConfig($updated){
 | 
						|
		foreach ($updated as $what=>$withWhat){
 | 
						|
			if(in_array($what, self::$paramsList)){
 | 
						|
				call_user_func(array(get_class(), "set".ucfirst($what)), $withWhat);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
} |