54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Name: Image Notes
 | |
|  * Author: Shish <webmaster@shishnet.org>
 | |
|  * License: GPLv2
 | |
|  * Description: Adds notes overlaid on the images
 | |
|  * Documentation:
 | |
|  *  This is quite broken :(
 | |
|  */
 | |
| 
 | |
| class Notes implements Extension {
 | |
| 	var $theme;
 | |
| 
 | |
| 	public function receive_event(Event $event) {
 | |
| 		if(is_null($this->theme)) $this->theme = get_theme_object($this);
 | |
| 
 | |
| 		if($event instanceof InitExtEvent) {
 | |
| 			global $config;
 | |
| 			if($config->get_int("ext_notes_version") < 1) {
 | |
| 				$this->install();
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		if($event instanceof DisplayingImageEvent) {
 | |
| 			global $database;
 | |
| 			$notes = $database->get_all("SELECT * FROM image_notes WHERE image_id = ?", array($event->image->id));
 | |
| 			$this->theme->display_notes($event->page, $notes);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	protected function install() {
 | |
| 		global $database;
 | |
| 		global $config;
 | |
| 		$database->create_table("image_notes", "
 | |
| 			id SCORE_AIPK,
 | |
| 			image_id INTEGER NOT NULL,
 | |
| 			user_id INTEGER NOT NULL,
 | |
| 			owner_ip SCORE_INET NOT NULL,
 | |
| 			created_at DATETIME NOT NULL,
 | |
| 			updated_at DATETIME NOT NULL,
 | |
| 			version INTEGER DEFAULT 1 NOT NULL,
 | |
| 			is_active SCORE_BOOL DEFAULT SCORE_BOOL_Y NOT NULL,
 | |
| 			x INTEGER NOT NULL,
 | |
| 			y INTEGER NOT NULL,
 | |
| 			w INTEGER NOT NULL,
 | |
| 			h INTEGER NOT NULL,
 | |
| 			body TEXT NOT NULL
 | |
| 		");
 | |
| 		$config->set_int("ext_notes_version", 1);
 | |
| 	}
 | |
| }
 | |
| add_event_listener(new Notes());
 | |
| ?>
 |