* 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) { global $config, $database, $page, $user; if(is_null($this->theme)) $this->theme = get_theme_object($this); if($event instanceof InitExtEvent) { if($config->get_int("ext_notes_version") < 1) { $this->install(); } } if($event instanceof DisplayingImageEvent) { $notes = $database->get_all("SELECT * FROM image_notes WHERE image_id = ?", array($event->image->id)); $this->theme->display_notes($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()); ?>