HINT ALL THE TYPES. SIMPLE ALL THE EXTENSIONS.

This commit is contained in:
Shish 2012-02-08 11:24:25 +00:00
parent 9707c1f7ce
commit 4697e21fcd
43 changed files with 492 additions and 535 deletions

View File

@ -30,13 +30,13 @@
*/ */
class AdminBuildingEvent extends Event { class AdminBuildingEvent extends Event {
var $page; var $page;
public function AdminBuildingEvent($page) { public function AdminBuildingEvent(Page $page) {
$this->page = $page; $this->page = $page;
} }
} }
class AdminPage extends SimpleExtension { class AdminPage extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user; global $page, $user;
if($event->page_matches("admin")) { if($event->page_matches("admin")) {
@ -88,20 +88,20 @@ class AdminPage extends SimpleExtension {
} }
} }
public function onAdminBuilding($event) { public function onAdminBuilding(AdminBuildingEvent $event) {
global $page; global $page;
$this->theme->display_page($page); $this->theme->display_page($page);
$this->theme->display_form($page); $this->theme->display_form($page);
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Board Admin", make_link("admin")); $event->add_link("Board Admin", make_link("admin"));
} }
} }
private function delete_by_query($query) { private function delete_by_query(/*array(string)*/ $query) {
global $page, $user; global $page, $user;
assert(strlen($query) > 1); assert(strlen($query) > 1);
foreach(Image::find_images(0, 1000000, Tag::explode($query)) as $image) { foreach(Image::find_images(0, 1000000, Tag::explode($query)) as $image) {

View File

@ -11,7 +11,7 @@
class AuthorSetEvent extends Event { class AuthorSetEvent extends Event {
var $image, $user, $author; var $image, $user, $author;
public function AuthorSetEvent(Image $image, User $user, $author) public function AuthorSetEvent(Image $image, User $user, /*string*/ $author)
{ {
$this->image = $image; $this->image = $image;
$this->user = $user; $this->user = $user;

View File

@ -28,7 +28,7 @@
*/ */
class Blocks extends SimpleExtension { class Blocks extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $page; global $config, $page;
$all = $config->get_string("blocks_text"); $all = $config->get_string("blocks_text");
$blocks = explode("----", $all); $blocks = explode("----", $all);
@ -70,7 +70,7 @@ class Blocks extends SimpleExtension {
} }
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Blocks"); $sb = new SetupBlock("Blocks");
$sb->add_label("See <a href='".make_link("ext_doc/blocks")."'>the docs</a> for formatting"); $sb->add_label("See <a href='".make_link("ext_doc/blocks")."'>the docs</a> for formatting");
$sb->add_longtext_option("blocks_text"); $sb->add_longtext_option("blocks_text");

View File

@ -9,7 +9,7 @@
* Development TODO at http://github.com/zshall/shimmie2/issues * Development TODO at http://github.com/zshall/shimmie2/issues
*/ */
class Blotter extends SimpleExtension { class Blotter extends SimpleExtension {
public function onInitExt(Event $event) { public function onInitExt(InitExtEvent $event) {
/** /**
* I love re-using this installer don't I... * I love re-using this installer don't I...
*/ */
@ -43,7 +43,7 @@ class Blotter extends SimpleExtension {
$config->set_default_string("blotter_position", "subheading"); $config->set_default_string("blotter_position", "subheading");
} }
public function onSetupBuilding(Event $event) { public function onSetupBuilding(SetupBuildingEvent $event) {
global $config; global $config;
$sb = new SetupBlock("Blotter"); $sb = new SetupBlock("Blotter");
$sb->add_int_option("blotter_recent", "<br />Number of recent entries to display: "); $sb->add_int_option("blotter_recent", "<br />Number of recent entries to display: ");
@ -51,13 +51,13 @@ class Blotter extends SimpleExtension {
$sb->add_choice_option("blotter_position", array("Top of page" => "subheading", "In navigation bar" => "left"), "<br>Position: "); $sb->add_choice_option("blotter_position", array("Top of page" => "subheading", "In navigation bar" => "left"), "<br>Position: ");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onUserBlockBuilding(Event $event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Blotter Editor", make_link("blotter/editor")); $event->add_link("Blotter Editor", make_link("blotter/editor"));
} }
} }
public function onPageRequest(Event $event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $database, $user; global $page, $database, $user;
if($event->page_matches("blotter")) { if($event->page_matches("blotter")) {
switch($event->get_arg(0)) { switch($event->get_arg(0)) {

View File

@ -6,16 +6,15 @@
* Description: Allow users to bookmark searches * Description: Allow users to bookmark searches
*/ */
class Bookmarks implements Extension { class Bookmarks extends SimpleExtension {
var $theme; public function onInitExt(InitExtEvent $event) {
$this->install();
}
public function get_priority() {return 50;} public function onPageRequest(PageRequestEvent $event) {
global $page;
public function receive_event(Event $event) { if($event->page_matches("bookmark")) {
global $config, $database, $page, $user;
if(is_null($this->theme)) $this->theme = get_theme_object($this);
if(($event instanceof PageRequestEvent) && $event->page_matches("bookmark")) {
if($event->get_arg(0) == "add") { if($event->get_arg(0) == "add") {
if(isset($_POST['url'])) { if(isset($_POST['url'])) {
$page->set_mode("redirect"); $page->set_mode("redirect");

View File

@ -13,36 +13,29 @@
* engine" notification they have * engine" notification they have
*/ */
class BrowserSearch implements Extension { class BrowserSearch extends SimpleExtension {
public function onInitExt(InitExtEvent $event) {
public function get_priority() {return 50;}
public function receive_event(Event $event) {
global $page;
global $config; global $config;
if($event instanceof InitExtEvent) {
$config->set_default_string("search_suggestions_results_order", 'a'); $config->set_default_string("search_suggestions_results_order", 'a');
} }
public function onPageRequest(PageRequestEvent $event) {
global $config, $database, $page;
// Add in header code to let the browser know that the search plugin exists // Add in header code to let the browser know that the search plugin exists
if($event instanceof PageRequestEvent) {
// We need to build the data for the header // We need to build the data for the header
global $config;
$search_title = $config->get_string('title'); $search_title = $config->get_string('title');
$search_file_url = make_link('browser_search/please_dont_use_this_tag_as_it_would_break_stuff__search.xml'); $search_file_url = make_link('browser_search/please_dont_use_this_tag_as_it_would_break_stuff__search.xml');
$page->add_html_header("<link rel='search' type='application/opensearchdescription+xml' title='$search_title' href='$search_file_url'>"); $page->add_html_header("<link rel='search' type='application/opensearchdescription+xml' title='$search_title' href='$search_file_url'>");
}
// The search.xml file that is generated on the fly // The search.xml file that is generated on the fly
if(($event instanceof PageRequestEvent) && $event->page_matches("browser_search/please_dont_use_this_tag_as_it_would_break_stuff__search.xml")) { if($event->page_matches("browser_search/please_dont_use_this_tag_as_it_would_break_stuff__search.xml")) {
// First, we need to build all the variables we'll need // First, we need to build all the variables we'll need
$search_title = $config->get_string('title'); $search_title = $config->get_string('title');
$search_form_url = make_link('post/list/{searchTerms}'); $search_form_url = make_link('post/list/{searchTerms}');
$suggenton_url = make_link('browser_search/')."{searchTerms}"; $suggenton_url = make_link('browser_search/')."{searchTerms}";
$icon_b64 = base64_encode(file_get_contents("favicon.ico")); $icon_b64 = base64_encode(file_get_contents("favicon.ico"));
// Now for the XML // Now for the XML
$xml = " $xml = "
<SearchPlugin xmlns='http://www.mozilla.org/2006/browser/search/' xmlns:os='http://a9.com/-/spec/opensearch/1.1/'> <SearchPlugin xmlns='http://www.mozilla.org/2006/browser/search/' xmlns:os='http://a9.com/-/spec/opensearch/1.1/'>
@ -63,12 +56,10 @@ class BrowserSearch implements Extension {
$page->set_data($xml); $page->set_data($xml);
} }
else if(($event instanceof PageRequestEvent) && ( else if(
$event->page_matches("browser_search") && $event->page_matches("browser_search") &&
!$config->get_bool("disable_search_suggestions") !$config->get_bool("disable_search_suggestions")
)) { ) {
global $database;
// We have to build some json stuff // We have to build some json stuff
$tag_search = $event->get_arg(0); $tag_search = $event->get_arg(0);
@ -89,19 +80,16 @@ class BrowserSearch implements Extension {
array_push($tags_array,$tag['tag']); array_push($tags_array,$tag['tag']);
} }
$json_tag_list .= implode("\",\"", $tags_array); $json_tag_list .= implode("\",\"", $tags_array);
// $json_tag_list = implode($tags_array,", ");
// $json_tag_list = "\"".implode($tags_array,"\", \"")."\"";
// And now for the final output // And now for the final output
$json_string = "[\"$tag_search\",[\"$json_tag_list\"],[],[]]"; $json_string = "[\"$tag_search\",[\"$json_tag_list\"],[],[]]";
$page->set_mode("data"); $page->set_mode("data");
$page->set_data($json_string); $page->set_data($json_string);
} }
}
if($event instanceof SetupBuildingEvent) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sort_by = array(); $sort_by = array();
$sort_by['Alphabetical'] = 'a'; $sort_by['Alphabetical'] = 'a';
$sort_by['Tag Count'] = 't'; $sort_by['Tag Count'] = 't';
@ -113,5 +101,4 @@ class BrowserSearch implements Extension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
} }
}
?> ?>

View File

@ -15,7 +15,7 @@
*/ */
class BulkAdd extends SimpleExtension { class BulkAdd extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user; global $page, $user;
if($event->page_matches("bulk_add")) { if($event->page_matches("bulk_add")) {
if($user->is_admin() && $user->check_auth_token() && isset($_POST['dir'])) { if($user->is_admin() && $user->check_auth_token() && isset($_POST['dir'])) {
@ -26,7 +26,7 @@ class BulkAdd extends SimpleExtension {
} }
} }
public function onAdminBuilding($event) { public function onAdminBuilding(AdminBuildingEvent $event) {
$this->theme->display_admin_block(); $this->theme->display_admin_block();
} }

View File

@ -47,33 +47,23 @@ Completely compatibility will probably involve a rewrite with a different URL
*/ */
class DanbooruApi implements Extension class DanbooruApi extends SimpleExtension {
{ public function onPageRequest(PageRequestEvent $event) {
if($event->page_matches("api") && ($event->get_arg(0) == 'danbooru')) {
public function get_priority() {return 50;}
// Receive the event
public function receive_event(Event $event)
{
// Check if someone is accessing /api/danbooru (us)
if(($event instanceof PageRequestEvent) && ($event->page_matches("api")) && ($event->get_arg(0) == 'danbooru'))
{
// execute the danbooru processing code
$this->api_danbooru($event); $this->api_danbooru($event);
} }
if($event instanceof SearchTermParseEvent) }
{
public function onSearchTermParse(SearchTermParseEvent $event) {
$matches = array(); $matches = array();
if(preg_match("/^md5:([0-9a-fA-F]*)$/i", $event->term, $matches)) if(preg_match("/^md5:([0-9a-fA-F]*)$/i", $event->term, $matches)) {
{
$hash = strtolower($matches[1]); $hash = strtolower($matches[1]);
$event->add_querylet(new Querylet("images.hash = '$hash'")); // :-O $event->add_querylet(new Querylet("images.hash = '$hash'")); // :-O
// $event->set_querylet(new Querylet("images.hash = '$hash'"));
}
} }
} }
// Danbooru API // Danbooru API
private function api_danbooru($event) private function api_danbooru(PageRequestEvent $event)
{ {
global $page; global $page;
global $config; global $config;

View File

@ -13,19 +13,19 @@
*/ */
class Emoticons extends FormatterExtension { class Emoticons extends FormatterExtension {
public function format($text) { public function format(/*string*/ $text) {
$data_href = get_base_href(); $data_href = get_base_href();
$text = preg_replace("/:([a-z]*?):/s", "<img src='$data_href/ext/emoticons/default/\\1.gif'>", $text); $text = preg_replace("/:([a-z]*?):/s", "<img src='$data_href/ext/emoticons/default/\\1.gif'>", $text);
return $text; return $text;
} }
public function strip($text) { public function strip(/*string*/ $text) {
return $text; return $text;
} }
} }
class EmoticonList extends SimpleExtension { class EmoticonList extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
if($event->page_matches("emote/list")) { if($event->page_matches("emote/list")) {
$this->theme->display_emotes(glob("ext/emoticons/default/*")); $this->theme->display_emotes(glob("ext/emoticons/default/*"));
} }

View File

@ -13,7 +13,7 @@
*/ */
class ET extends SimpleExtension { class ET extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $user; global $user;
if($event->page_matches("system_info")) { if($event->page_matches("system_info")) {
if($user->is_admin()) { if($user->is_admin()) {
@ -22,7 +22,7 @@ class ET extends SimpleExtension {
} }
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("System Info", make_link("system_info")); $event->add_link("System Info", make_link("system_info"));
@ -46,9 +46,6 @@ class ET extends SimpleExtension {
$info['sys_disk'] = to_shorthand_int(disk_total_space("./") - disk_free_space("./")) . " / " . $info['sys_disk'] = to_shorthand_int(disk_total_space("./") - disk_free_space("./")) . " / " .
to_shorthand_int(disk_total_space("./")); to_shorthand_int(disk_total_space("./"));
$info['sys_server'] = $_SERVER["SERVER_SOFTWARE"]; $info['sys_server'] = $_SERVER["SERVER_SOFTWARE"];
$proto = preg_replace("#(.*)://.*#", "$1", DATABASE_DSN);
#$db = $database->db->ServerInfo();
#$info['sys_db'] = "$proto / {$db['version']}";
$info['stat_images'] = $database->get_one("SELECT COUNT(*) FROM images"); $info['stat_images'] = $database->get_one("SELECT COUNT(*) FROM images");
$info['stat_comments'] = $database->get_one("SELECT COUNT(*) FROM comments"); $info['stat_comments'] = $database->get_one("SELECT COUNT(*) FROM comments");

View File

@ -16,7 +16,7 @@
class FavoriteSetEvent extends Event { class FavoriteSetEvent extends Event {
var $image_id, $user, $do_set; var $image_id, $user, $do_set;
public function FavoriteSetEvent($image_id, User $user, $do_set) { public function FavoriteSetEvent(/*int*/ $image_id, User $user, /*boolean*/ $do_set) {
assert(is_numeric($image_id)); assert(is_numeric($image_id));
assert(is_bool($do_set)); assert(is_bool($do_set));
@ -27,14 +27,14 @@ class FavoriteSetEvent extends Event {
} }
class Favorites extends SimpleExtension { class Favorites extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
if($config->get_int("ext_favorites_version", 0) < 1) { if($config->get_int("ext_favorites_version", 0) < 1) {
$this->install(); $this->install();
} }
} }
public function onImageAdminBlockBuilding($event) { public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
global $database, $page, $user; global $database, $page, $user;
if(!$user->is_anonymous()) { if(!$user->is_anonymous()) {
$user_id = $user->id; $user_id = $user->id;
@ -48,14 +48,14 @@ class Favorites extends SimpleExtension {
} }
} }
public function onDisplayingImage($event) { public function onDisplayingImage(DisplayingImageEvent $event) {
$people = $this->list_persons_who_have_favorited($event->image); $people = $this->list_persons_who_have_favorited($event->image);
if(count($people) > 0) { if(count($people) > 0) {
$html = $this->theme->display_people($people); $html = $this->theme->display_people($people);
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user; global $page, $user;
if($event->page_matches("change_favorite") && !$user->is_anonymous() && $user->check_auth_token()) { if($event->page_matches("change_favorite") && !$user->is_anonymous() && $user->check_auth_token()) {
$image_id = int_escape($_POST['image_id']); $image_id = int_escape($_POST['image_id']);
@ -67,7 +67,7 @@ class Favorites extends SimpleExtension {
} }
} }
public function onUserPageBuilding($event) { public function onUserPageBuilding(UserPageBuildingEvent $event) {
$i_favorites_count = Image::count_images(array("favorited_by={$event->display_user->name}")); $i_favorites_count = Image::count_images(array("favorited_by={$event->display_user->name}"));
$i_days_old = ((time() - strtotime($event->display_user->join_date)) / 86400) + 1; $i_days_old = ((time() - strtotime($event->display_user->join_date)) / 86400) + 1;
$h_favorites_rate = sprintf("%.1f", ($i_favorites_count / $i_days_old)); $h_favorites_rate = sprintf("%.1f", ($i_favorites_count / $i_days_old));
@ -75,7 +75,7 @@ class Favorites extends SimpleExtension {
$event->add_stats("<a href='$favorites_link'>Images favorited</a>: $i_favorites_count, $h_favorites_rate per day"); $event->add_stats("<a href='$favorites_link'>Images favorited</a>: $i_favorites_count, $h_favorites_rate per day");
} }
public function onImageInfoSet($event) { public function onImageInfoSet(ImageInfoSetEvent $event) {
global $user; global $user;
if( if(
in_array('favorite_action', $_POST) && in_array('favorite_action', $_POST) &&
@ -85,28 +85,30 @@ class Favorites extends SimpleExtension {
} }
} }
public function onFavoriteSet($event) { public function onFavoriteSet(FavoriteSetEvent $event) {
global $user; global $user;
$this->add_vote($event->image_id, $user->id, $event->do_set); $this->add_vote($event->image_id, $user->id, $event->do_set);
} }
public function onImageDeletion($event) { // FIXME: this should be handled by the foreign key. Check that it
// is, and then remove this
public function onImageDeletion(ImageDeletionEvent $event) {
global $database; global $database;
$database->execute("DELETE FROM user_favorites WHERE image_id=:image_id", array("image_id"=>$event->image->id)); $database->execute("DELETE FROM user_favorites WHERE image_id=:image_id", array("image_id"=>$event->image->id));
} }
public function onParseLinkTemplate($event) { public function onParseLinkTemplate(ParseLinkTemplateEvent $event) {
$event->replace('$favorites', $event->image->favorites); $event->replace('$favorites', $event->image->favorites);
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
$username = url_escape($user->name); $username = url_escape($user->name);
$event->add_link("My Favorites", make_link("post/list/favorited_by=$username/1"), 20); $event->add_link("My Favorites", make_link("post/list/favorited_by=$username/1"), 20);
} }
public function onSearchTermParse($event) { public function onSearchTermParse(SearchTermParseEvent $event) {
$matches = array(); $matches = array();
if(preg_match("/favorites(<|>|<=|>=|=)(\d+)/", $event->term, $matches)) { if(preg_match("/favorites(<|>|<=|>=|=)(\d+)/", $event->term, $matches)) {
$cmp = $matches[1]; $cmp = $matches[1];
@ -181,7 +183,7 @@ class Favorites extends SimpleExtension {
array("image_id"=>$image_id, "user_id"=>$user_id)); array("image_id"=>$image_id, "user_id"=>$user_id));
} }
private function list_persons_who_have_favorited($image) { private function list_persons_who_have_favorited(Image $image) {
global $database; global $database;
return $database->get_col( return $database->get_col(

View File

@ -19,12 +19,12 @@
*/ */
class Featured extends SimpleExtension { class Featured extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
$config->set_default_int('featured_id', 0); $config->set_default_int('featured_id', 0);
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $page, $user; global $config, $page, $user;
if($event->page_matches("featured_image")) { if($event->page_matches("featured_image")) {
if($event->get_arg(0) == "set" && $user->check_auth_token()) { if($event->get_arg(0) == "set" && $user->check_auth_token()) {
@ -54,7 +54,7 @@ class Featured extends SimpleExtension {
} }
} }
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $database, $page, $user; global $config, $database, $page, $user;
$fid = $config->get_int("featured_id"); $fid = $config->get_int("featured_id");
if($fid > 0) { if($fid > 0) {
@ -74,7 +74,7 @@ class Featured extends SimpleExtension {
} }
} }
public function onImageAdminBlockBuilding($event) { public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_part($this->theme->get_buttons_html($event->image->id)); $event->add_part($this->theme->get_buttons_html($event->image->id));

View File

@ -9,7 +9,7 @@
*/ */
class Forum extends SimpleExtension { class Forum extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config, $database; global $config, $database;
// shortcut to latest // shortcut to latest
@ -57,7 +57,7 @@ class Forum extends SimpleExtension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onUserPageBuilding($event) { public function onUserPageBuilding(UserPageBuildingEvent $event) {
global $page, $user, $database; global $page, $user, $database;
$threads_count = $database->get_one("SELECT COUNT(*) FROM forum_threads WHERE user_id=?", array($event->display_user->id)); $threads_count = $database->get_one("SELECT COUNT(*) FROM forum_threads WHERE user_id=?", array($event->display_user->id));
@ -73,7 +73,7 @@ class Forum extends SimpleExtension {
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user; global $page, $user;
if($event->page_matches("forum")) { if($event->page_matches("forum")) {

View File

@ -11,12 +11,12 @@
*/ */
class ArchiveFileHandler extends SimpleExtension { class ArchiveFileHandler extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
$config->set_default_string('archive_extract_command', 'unzip -d "%d" "%f"'); $config->set_default_string('archive_extract_command', 'unzip -d "%d" "%f"');
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Archive Handler Options"); $sb = new SetupBlock("Archive Handler Options");
$sb->add_text_option("archive_tmp_dir", "Temporary folder: "); $sb->add_text_option("archive_tmp_dir", "Temporary folder: ");
$sb->add_text_option("archive_extract_command", "<br>Extraction command: "); $sb->add_text_option("archive_extract_command", "<br>Extraction command: ");
@ -24,7 +24,7 @@ class ArchiveFileHandler extends SimpleExtension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onDataUpload($event) { public function onDataUpload(DataUploadEvent $event) {
if($this->supported_ext($event->type)) { if($this->supported_ext($event->type)) {
global $config; global $config;
$tmp = sys_get_temp_dir(); $tmp = sys_get_temp_dir();

View File

@ -6,7 +6,7 @@
*/ */
class IcoFileHandler extends SimpleExtension { class IcoFileHandler extends SimpleExtension {
public function onDataUpload($event) { public function onDataUpload(DataUploadEvent $event) {
if($this->supported_ext($event->type) && $this->check_contents($event->tmpname)) { if($this->supported_ext($event->type) && $this->check_contents($event->tmpname)) {
$hash = $event->hash; $hash = $event->hash;
$ha = substr($hash, 0, 2); $ha = substr($hash, 0, 2);
@ -22,20 +22,20 @@ class IcoFileHandler extends SimpleExtension {
} }
} }
public function onThumbnailGeneration($event) { public function onThumbnailGeneration(ThumbnailGenerationEvent $event) {
if($this->supported_ext($event->type)) { if($this->supported_ext($event->type)) {
$this->create_thumb($event->hash); $this->create_thumb($event->hash);
} }
} }
public function onDisplayingImage($event) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $page; global $page;
if($this->supported_ext($event->image->ext)) { if($this->supported_ext($event->image->ext)) {
$this->theme->display_image($page, $event->image); $this->theme->display_image($page, $event->image);
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $database, $page; global $config, $database, $page;
if($event->page_matches("get_ico")) { if($event->page_matches("get_ico")) {
$id = int_escape($event->get_arg(0)); $id = int_escape($event->get_arg(0));

View File

@ -7,19 +7,19 @@
* Description: Use an additional stylesheet on certain holidays. * Description: Use an additional stylesheet on certain holidays.
*/ */
class Holiday extends SimpleExtension { class Holiday extends SimpleExtension {
public function onInitExt(Event $event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
$config->set_default_bool("holiday_aprilfools", false); $config->set_default_bool("holiday_aprilfools", false);
} }
public function onSetupBuilding(Event $event) { public function onSetupBuilding(SetupBuildingEvent $event) {
global $config; global $config;
$sb = new SetupBlock("Holiday Theme"); $sb = new SetupBlock("Holiday Theme");
$sb->add_bool_option("holiday_aprilfools", "Enable April Fools"); $sb->add_bool_option("holiday_aprilfools", "Enable April Fools");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onPageRequest(Event $event) { public function onPageRequest(PageRequestEvent $event) {
global $config; global $config;
$date = /*date('d/m') == '01/01' ||date('d/m') == '14/02' || */date('d/m') == '01/04'/* || date('d/m') == '24/12' || date('d/m') == '25/12' || date('d/m') == '31/12'*/; $date = /*date('d/m') == '01/01' ||date('d/m') == '14/02' || */date('d/m') == '01/04'/* || date('d/m') == '24/12' || date('d/m') == '25/12' || date('d/m') == '31/12'*/;
if($date){ if($date){

View File

@ -37,7 +37,7 @@ class AddIPBanEvent extends Event {
class IPBan extends SimpleExtension { class IPBan extends SimpleExtension {
public function get_priority() {return 10;} public function get_priority() {return 10;}
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
if($config->get_int("ext_ipban_version") < 5) { if($config->get_int("ext_ipban_version") < 5) {
$this->install(); $this->install();
@ -45,7 +45,7 @@ class IPBan extends SimpleExtension {
$this->check_ip_ban(); $this->check_ip_ban();
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
if($event->page_matches("ip_ban")) { if($event->page_matches("ip_ban")) {
global $config, $database, $page, $user; global $config, $database, $page, $user;
if($user->is_admin()) { if($user->is_admin()) {
@ -77,19 +77,19 @@ class IPBan extends SimpleExtension {
} }
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("IP Bans", make_link("ip_ban/list")); $event->add_link("IP Bans", make_link("ip_ban/list"));
} }
} }
public function onAddIPBan($event) { public function onAddIPBan(AddIPBanEvent $event) {
global $user; global $user;
$this->add_ip_ban($event->ip, $event->reason, $event->end, $user); $this->add_ip_ban($event->ip, $event->reason, $event->end, $user);
} }
public function onRemoveIPBan($event) { public function onRemoveIPBan(RemoveIPBanEvent $event) {
global $database; global $database;
$database->Execute("DELETE FROM bans WHERE id = :id", array("id"=>$event->id)); $database->Execute("DELETE FROM bans WHERE id = :id", array("id"=>$event->id));
$database->cache->delete("ip_bans_sorted"); $database->cache->delete("ip_bans_sorted");
@ -178,7 +178,7 @@ class IPBan extends SimpleExtension {
} }
} }
private function block($remote) { private function block(/*string*/ $remote) {
global $config, $database; global $config, $database;
$prefix = ($database->engine->name == "sqlite" ? "bans." : ""); $prefix = ($database->engine->name == "sqlite" ? "bans." : "");

View File

@ -4,28 +4,21 @@
* Author: Artanis <artanis.00@gmail.com> * Author: Artanis <artanis.00@gmail.com>
* Description: Show various forms of link to each image, for copy & paste * Description: Show various forms of link to each image, for copy & paste
*/ */
class LinkImage implements Extension { class LinkImage extends SimpleExtension {
var $theme; public function onDisplayingImage(DisplayingImageEvent $event) {
global $page;
public function get_priority() {return 50;}
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 DisplayingImageEvent)) {
$this->theme->links_block($page, $this->data($event->image)); $this->theme->links_block($page, $this->data($event->image));
} }
if($event instanceof SetupBuildingEvent) {
public function onSetupBuildingEvent(SetupBuildingEvent $event) {
$sb = new SetupBlock("Link to Image"); $sb = new SetupBlock("Link to Image");
$sb->add_text_option("ext_link-img_text-link_format", "Text Link Format: "); $sb->add_text_option("ext_link-img_text-link_format", "Text Link Format: ");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
if($event instanceof InitExtEvent) {
//just set default if empty. public function onInitExtEvent(InitExtEvent $event) {
$config->set_default_string("ext_link-img_text-link_format", global $config;
'$title - $id ($ext $size $filesize)'); $config->set_default_string("ext_link-img_text-link_format", '$title - $id ($ext $size $filesize)');
}
} }
private function hostify($str) { private function hostify($str) {
@ -37,7 +30,8 @@ class LinkImage implements Extension {
return "http://" . $_SERVER["HTTP_HOST"] . $str; return "http://" . $_SERVER["HTTP_HOST"] . $str;
} }
} }
private function data($image) {
private function data(Image $image) {
global $config; global $config;
$text_link = $image->parse_link_template($config->get_string("ext_link-img_text-link_format")); $text_link = $image->parse_link_template($config->get_string("ext_link-img_text-link_format"));

View File

@ -7,7 +7,7 @@
*/ */
class LogDatabase extends SimpleExtension { class LogDatabase extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $database; global $database;
global $config; global $config;
@ -28,7 +28,7 @@ class LogDatabase extends SimpleExtension {
$config->set_default_int("log_db_priority", SCORE_LOG_INFO); $config->set_default_int("log_db_priority", SCORE_LOG_INFO);
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Logging (Database)"); $sb = new SetupBlock("Logging (Database)");
$sb->add_choice_option("log_db_priority", array( $sb->add_choice_option("log_db_priority", array(
"Debug" => SCORE_LOG_DEBUG, "Debug" => SCORE_LOG_DEBUG,
@ -40,7 +40,7 @@ class LogDatabase extends SimpleExtension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $database, $user; global $database, $user;
if($event->page_matches("log/view")) { if($event->page_matches("log/view")) {
if($user->is_admin()) { if($user->is_admin()) {
@ -104,14 +104,14 @@ class LogDatabase extends SimpleExtension {
} }
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Event Log", make_link("log/view")); $event->add_link("Event Log", make_link("log/view"));
} }
} }
public function onLog($event) { public function onLog(LogEvent $event) {
global $config, $database, $user; global $config, $database, $user;
$username = ($user && $user->name) ? $user->name : "null"; $username = ($user && $user->name) ? $user->name : "null";

View File

@ -15,7 +15,7 @@
*/ */
class MassTagger extends SimpleExtension { class MassTagger extends SimpleExtension {
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $page, $user; global $config, $page, $user;
if( !$user->is_admin() ) return; if( !$user->is_admin() ) return;
@ -23,7 +23,7 @@ class MassTagger extends SimpleExtension {
$this->theme->display_mass_tagger( $page, $event, $config ); $this->theme->display_mass_tagger( $page, $event, $config );
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $page, $user; global $config, $page, $user;
if( !$event->page_matches("mass_tagger") ) return; if( !$event->page_matches("mass_tagger") ) return;
if( !$user->is_admin() ) return; if( !$user->is_admin() ) return;

View File

@ -9,14 +9,14 @@
*/ */
class News extends SimpleExtension { class News extends SimpleExtension {
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $page; global $config, $page;
if(strlen($config->get_string("news_text")) > 0) { if(strlen($config->get_string("news_text")) > 0) {
$this->theme->display_news($page, $config->get_string("news_text")); $this->theme->display_news($page, $config->get_string("news_text"));
} }
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("News"); $sb = new SetupBlock("News");
$sb->add_longtext_option("news_text"); $sb->add_longtext_option("news_text");
$event->panel->add_block($sb); $event->panel->add_block($sb);

View File

@ -8,7 +8,7 @@
*/ */
class Notes extends SimpleExtension { class Notes extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config, $database; global $config, $database;
// shortcut to latest // shortcut to latest
@ -66,9 +66,7 @@ class Notes extends SimpleExtension {
} }
} }
public function onPageRequest(PageRequestEvent $event) {
public function onPageRequest($event) {
global $page, $user; global $page, $user;
if($event->page_matches("note")) { if($event->page_matches("note")) {
@ -179,7 +177,7 @@ class Notes extends SimpleExtension {
/* /*
* HERE WE LOAD THE NOTES IN THE IMAGE * HERE WE LOAD THE NOTES IN THE IMAGE
*/ */
public function onDisplayingImage($event) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $page, $user; global $page, $user;
//display form on image event //display form on image event
@ -191,7 +189,7 @@ class Notes extends SimpleExtension {
/* /*
* HERE WE ADD THE BUTTONS ON SIDEBAR * HERE WE ADD THE BUTTONS ON SIDEBAR
*/ */
public function onImageAdminBlockBuilding($event) { public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
global $user; global $user;
if(!$user->is_anonymous()) { if(!$user->is_anonymous()) {
$event->add_part($this->theme->note_button($event->image->id)); $event->add_part($this->theme->note_button($event->image->id));
@ -207,7 +205,7 @@ class Notes extends SimpleExtension {
/* /*
* HERE WE ADD QUERYLETS TO ADD SEARCH SYSTEM * HERE WE ADD QUERYLETS TO ADD SEARCH SYSTEM
*/ */
public function onSearchTermParse($event) { public function onSearchTermParse(SearchTermParseEvent $event) {
$matches = array(); $matches = array();
if(preg_match("/note=(.*)/i", $event->term, $matches)) { if(preg_match("/note=(.*)/i", $event->term, $matches)) {
$notes = int_escape($matches[1]); $notes = int_escape($matches[1]);

View File

@ -12,41 +12,38 @@
class NumericScoreSetEvent extends Event { class NumericScoreSetEvent extends Event {
var $image_id, $user, $score; var $image_id, $user, $score;
public function NumericScoreSetEvent($image_id, $user, $score) { public function NumericScoreSetEvent(/*int*/ $image_id, User $user, /*int*/ $score) {
$this->image_id = $image_id; $this->image_id = $image_id;
$this->user = $user; $this->user = $user;
$this->score = $score; $this->score = $score;
} }
} }
class NumericScore implements Extension { class NumericScore extends SimpleExtension {
var $theme; public function onInitExt(InitExtEvent $event) {
global $config;
public function get_priority() {return 50;}
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_numeric_score_version", 0) < 1) { if($config->get_int("ext_numeric_score_version", 0) < 1) {
$this->install(); $this->install();
} }
} }
if($event instanceof DisplayingImageEvent) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $user, $page;
if(!$user->is_anonymous()) { if(!$user->is_anonymous()) {
$html = $this->theme->get_voter_html($event->image); $html = $this->theme->get_voter_html($event->image);
$page->add_block(new Block("Image Score", $html, "left", 20)); $page->add_block(new Block("Image Score", $html, "left", 20));
} }
} }
if($event instanceof UserPageBuildingEvent) { public function onUserPageBuilding(UserPageBuildingEvent $event) {
global $page;
$html = $this->theme->get_nuller_html($event->display_user); $html = $this->theme->get_nuller_html($event->display_user);
$page->add_block(new Block("Votes", $html, "main", 60)); $page->add_block(new Block("Votes", $html, "main", 60));
} }
if($event instanceof PageRequestEvent) { public function onPageRequest(PageRequestEvent $event) {
global $config, $database, $user, $page;
if($event->page_matches("numeric_score_votes")) { if($event->page_matches("numeric_score_votes")) {
$image_id = int_escape($event->get_arg(0)); $image_id = int_escape($event->get_arg(0));
$x = $database->get_all( $x = $database->get_all(
@ -180,20 +177,25 @@ class NumericScore implements Extension {
} }
} }
if($event instanceof NumericScoreSetEvent) { public function onNumericScoreSet(NumericScoreSetEvent $event) {
global $user;
log_info("numeric_score", "Rated Image #{$event->image_id} as {$event->score}"); log_info("numeric_score", "Rated Image #{$event->image_id} as {$event->score}");
$this->add_vote($event->image_id, $user->id, $event->score); $this->add_vote($event->image_id, $user->id, $event->score);
} }
if($event instanceof ImageDeletionEvent) { public function onImageDeletion(ImageDeletionEvent $event) {
global $database;
$database->execute("DELETE FROM numeric_score_votes WHERE image_id=:id", array("id" => $event->image->id)); $database->execute("DELETE FROM numeric_score_votes WHERE image_id=:id", array("id" => $event->image->id));
} }
if($event instanceof ParseLinkTemplateEvent) { // FIXME: on user deletion
// FIXME: on user vote nuke
public function onParseLinkTemplate(ParseLinkTemplateEvent $event) {
$event->replace('$score', $event->image->numeric_score); $event->replace('$score', $event->image->numeric_score);
} }
if($event instanceof SearchTermParseEvent) { public function onSearchTermParse(SearchTermParseEvent $event) {
$matches = array(); $matches = array();
if(preg_match("/^score(<|<=|=|>=|>)(\d+)$/", $event->term, $matches)) { if(preg_match("/^score(<|<=|=|>=|>)(\d+)$/", $event->term, $matches)) {
$cmp = $matches[1]; $cmp = $matches[1];
@ -233,7 +235,6 @@ class NumericScore implements Extension {
array("ns_user_id"=>$iid))); array("ns_user_id"=>$iid)));
} }
} }
}
private function install() { private function install() {
global $database; global $database;
@ -259,7 +260,7 @@ class NumericScore implements Extension {
} }
} }
private function add_vote($image_id, $user_id, $score) { private function add_vote(/*int*/ $image_id, /*int*/ $user_id, /*int*/ $score) {
global $database; global $database;
$database->execute( $database->execute(
"DELETE FROM numeric_score_votes WHERE image_id=:imageid AND user_id=:userid", "DELETE FROM numeric_score_votes WHERE image_id=:imageid AND user_id=:userid",

View File

@ -6,7 +6,7 @@
*/ */
class Oekaki extends SimpleExtension { class Oekaki extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $user, $page; global $user, $page;
if($event->page_matches("oekaki")) { if($event->page_matches("oekaki")) {
@ -82,7 +82,7 @@ class Oekaki extends SimpleExtension {
} }
// FIXME: "edit this image" button on existing images? // FIXME: "edit this image" button on existing images?
function onPostListBuilding($event) { function onPostListBuilding(PostListBuildingEvent $event) {
global $user, $page; global $user, $page;
if($this->can_upload($user)) { if($this->can_upload($user)) {
$this->theme->display_block($page); $this->theme->display_block($page);

View File

@ -11,7 +11,7 @@
*/ */
class SendPMEvent extends Event { class SendPMEvent extends Event {
public function __construct($pm) { public function __construct(PM $pm) {
$this->pm = $pm; $this->pm = $pm;
} }
} }
@ -43,7 +43,7 @@ class PM {
} }
class PrivMsg extends SimpleExtension { class PrivMsg extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config, $database; global $config, $database;
// shortcut to latest // shortcut to latest
@ -78,7 +78,7 @@ class PrivMsg extends SimpleExtension {
} }
/* /*
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuilding $event) {
global $user; global $user;
if(!$user->is_anonymous()) { if(!$user->is_anonymous()) {
$event->add_link("Private Messages", make_link("pm")); $event->add_link("Private Messages", make_link("pm"));
@ -86,7 +86,7 @@ class PrivMsg extends SimpleExtension {
} }
*/ */
public function onUserPageBuilding($event) { public function onUserPageBuilding(UserPageBuilding $event) {
global $page, $user; global $page, $user;
$duser = $event->display_user; $duser = $event->display_user;
if(!$user->is_anonymous() && !$duser->is_anonymous()) { if(!$user->is_anonymous() && !$duser->is_anonymous()) {
@ -99,7 +99,7 @@ class PrivMsg extends SimpleExtension {
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $database, $page, $user; global $database, $page, $user;
if($event->page_matches("pm")) { if($event->page_matches("pm")) {
if(!$user->is_anonymous()) { if(!$user->is_anonymous()) {
@ -153,7 +153,7 @@ class PrivMsg extends SimpleExtension {
} }
} }
public function onSendPM($event) { public function onSendPM(SendPMEvent $event) {
global $database; global $database;
$database->execute(" $database->execute("
INSERT INTO private_message( INSERT INTO private_message(

View File

@ -11,7 +11,7 @@ class PoolCreationException extends SCoreException {
} }
class Pools extends SimpleExtension { class Pools extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config, $database; global $config, $database;
if ($config->get_int("ext_pools_version") < 1){ if ($config->get_int("ext_pools_version") < 1){
@ -65,7 +65,7 @@ class Pools extends SimpleExtension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $page, $user; global $config, $page, $user;
if($event->page_matches("pool")) { if($event->page_matches("pool")) {
@ -216,7 +216,7 @@ class Pools extends SimpleExtension {
} }
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
$event->add_link("Pools", make_link("pool/list")); $event->add_link("Pools", make_link("pool/list"));
} }
@ -224,7 +224,7 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE GET THE POOLS WHERE THE IMAGE APPEARS WHEN THE IMAGE IS DISPLAYED * HERE WE GET THE POOLS WHERE THE IMAGE APPEARS WHEN THE IMAGE IS DISPLAYED
*/ */
public function onDisplayingImage($event) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $config, $database, $page; global $config, $database, $page;
if($config->get_bool("poolsInfoOnViewImage")) { if($config->get_bool("poolsInfoOnViewImage")) {
@ -242,7 +242,7 @@ class Pools extends SimpleExtension {
} }
} }
public function onImageAdminBlockBuilding($event) { public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
global $config, $database, $user; global $config, $database, $user;
if($config->get_bool("poolsAdderOnViewImage") && !$user->is_anonymous()) { if($config->get_bool("poolsAdderOnViewImage") && !$user->is_anonymous()) {
if($user->is_admin()) { if($user->is_admin()) {
@ -261,7 +261,7 @@ class Pools extends SimpleExtension {
/* /*
* HERE WE GET THE LIST OF POOLS * HERE WE GET THE LIST OF POOLS
*/ */
private function list_pools(Page $page, $pageNumber) { private function list_pools(Page $page, /*int*/ $pageNumber) {
global $config, $database; global $config, $database;
if(is_null($pageNumber) || !is_numeric($pageNumber)) if(is_null($pageNumber) || !is_numeric($pageNumber))

View File

@ -8,7 +8,7 @@
* and replace it with a link to google chart APIs * and replace it with a link to google chart APIs
*/ */
class QRImage extends SimpleExtension { class QRImage extends SimpleExtension {
public function onDisplayingImage($event) { public function onDisplayingImage(DisplayingImageEvent $event) {
$this->theme->links_block(make_http(make_link('image/'.$event->image->id.'.jpg'))); $this->theme->links_block(make_http(make_link('image/'.$event->image->id.'.jpg')));
} }
} }

View File

@ -20,7 +20,7 @@
*/ */
class RandomImage extends SimpleExtension { class RandomImage extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $database, $page, $user; global $config, $database, $page, $user;
if($event->page_matches("random_image")) { if($event->page_matches("random_image")) {
if($event->count_args() == 1) { if($event->count_args() == 1) {
@ -51,13 +51,13 @@ class RandomImage extends SimpleExtension {
} }
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Random Image"); $sb = new SetupBlock("Random Image");
$sb->add_bool_option("show_random_block", "Show Random Block: "); $sb->add_bool_option("show_random_block", "Show Random Block: ");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $page; global $config, $page;
if($config->get_bool("show_random_block")) { if($config->get_bool("show_random_block")) {
$image = Image::by_random($event->search_terms); $image = Image::by_random($event->search_terms);

View File

@ -13,7 +13,7 @@
*/ */
class RegenThumb extends SimpleExtension { class RegenThumb extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $database, $page, $user; global $config, $database, $page, $user;
if($event->page_matches("regen_thumb") && $user->is_admin() && isset($_POST['image_id'])) { if($event->page_matches("regen_thumb") && $user->is_admin() && isset($_POST['image_id'])) {
@ -23,7 +23,7 @@ class RegenThumb extends SimpleExtension {
} }
} }
public function onImageAdminBlockBuilding($event) { public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_part($this->theme->get_buttons_html($event->image->id)); $event->add_part($this->theme->get_buttons_html($event->image->id));

View File

@ -29,16 +29,9 @@ class AddReportedImageEvent extends Event {
} }
} }
class ReportImage implements Extension { class ReportImage extends SimpleExtension {
var $theme; public function onInitExt(InitExtEvent $event) {
global $config;
public function get_priority() {return 50;}
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) {
$config->set_default_bool('report_image_show_thumbs', true); $config->set_default_bool('report_image_show_thumbs', true);
if($config->get_int("ext_report_image_version") < 1) { if($config->get_int("ext_report_image_version") < 1) {
@ -46,7 +39,9 @@ class ReportImage implements Extension {
} }
} }
if(($event instanceof PageRequestEvent) && $event->page_matches("image_report")) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user;
if($event->page_matches("image_report")) {
if($event->get_arg(0) == "add") { if($event->get_arg(0) == "add") {
if(isset($_POST['image_id']) && isset($_POST['reason'])) { if(isset($_POST['image_id']) && isset($_POST['reason'])) {
$image_id = int_escape($_POST['image_id']); $image_id = int_escape($_POST['image_id']);
@ -70,41 +65,46 @@ class ReportImage implements Extension {
} }
} }
} }
}
if($event instanceof AddReportedImageEvent) { public function onAddReportedImage(AddReportedImageEvent $event) {
global $database;
$database->Execute( $database->Execute(
"INSERT INTO image_reports(image_id, reporter_id, reason) "INSERT INTO image_reports(image_id, reporter_id, reason)
VALUES (?, ?, ?)", VALUES (?, ?, ?)",
array($event->image_id, $event->reporter_id, $event->reason)); array($event->image_id, $event->reporter_id, $event->reason));
} }
if($event instanceof RemoveReportedImageEvent) { public function onRemoveReportedImage(RemoveReportedImageEvent $event) {
global $database;
$database->Execute("DELETE FROM image_reports WHERE id = ?", array($event->id)); $database->Execute("DELETE FROM image_reports WHERE id = ?", array($event->id));
} }
if($event instanceof DisplayingImageEvent) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $config, $user, $page;
if($config->get_bool('report_image_anon') || !$user->is_anonymous()) { if($config->get_bool('report_image_anon') || !$user->is_anonymous()) {
$this->theme->display_image_banner($page, $event->image); $this->theme->display_image_banner($page, $event->image);
} }
} }
if($event instanceof SetupBuildingEvent) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Report Image Options"); $sb = new SetupBlock("Report Image Options");
$sb->add_bool_option("report_image_anon", "Allow anonymous image reporting: "); $sb->add_bool_option("report_image_anon", "Allow anonymous image reporting: ");
$sb->add_bool_option("report_image_show_thumbs", "<br>Show thumbnails in admin panel: "); $sb->add_bool_option("report_image_show_thumbs", "<br>Show thumbnails in admin panel: ");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
if($event instanceof UserBlockBuildingEvent) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Reported Images", make_link("image_report/list")); $event->add_link("Reported Images", make_link("image_report/list"));
} }
} }
if($event instanceof ImageDeletionEvent) { public function onImageDeletion(ImageDeletionEvent $event) {
global $database;
$database->Execute("DELETE FROM image_reports WHERE image_id = ?", array($event->image->id)); $database->Execute("DELETE FROM image_reports WHERE image_id = ?", array($event->image->id));
} }
}
protected function install() { protected function install() {
global $database; global $database;

View File

@ -5,11 +5,10 @@
* License: GPLv2 * License: GPLv2
* Description: Allows the admin to set min / max image dimentions * Description: Allows the admin to set min / max image dimentions
*/ */
class ResolutionLimit implements Extension { class ResolutionLimit extends SimpleExtension {
public function get_priority() {return 40;} // early, to veto ImageUploadEvent public function get_priority() {return 40;} // early, to veto ImageUploadEvent
public function receive_event(Event $event) { public function onImageAddition(ImageAdditionEvent $event) {
if($event instanceof ImageAdditionEvent) {
global $config; global $config;
$min_w = $config->get_int("upload_min_width", -1); $min_w = $config->get_int("upload_min_width", -1);
$min_h = $config->get_int("upload_min_height", -1); $min_h = $config->get_int("upload_min_height", -1);
@ -45,7 +44,8 @@ class ResolutionLimit implements Extension {
} }
} }
} }
if($event instanceof SetupBuildingEvent) {
public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Resolution Limits"); $sb = new SetupBlock("Resolution Limits");
$sb->add_label("Min "); $sb->add_label("Min ");
@ -69,5 +69,4 @@ class ResolutionLimit implements Extension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
} }
}
?> ?>

View File

@ -28,7 +28,7 @@ class ImageResizeException extends SCoreException {
*/ */
class ResizeImage extends SimpleExtension { class ResizeImage extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
$config->set_default_bool('resize_enabled', true); $config->set_default_bool('resize_enabled', true);
$config->set_default_bool('resize_upload', false); $config->set_default_bool('resize_upload', false);
@ -36,7 +36,7 @@ class ResizeImage extends SimpleExtension {
$config->set_default_int('resize_default_height', 0); $config->set_default_int('resize_default_height', 0);
} }
public function onImageAdminBlockBuilding($event) { public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
global $user, $config; global $user, $config;
if($user->is_admin() && $config->get_bool("resize_enabled")) { if($user->is_admin() && $config->get_bool("resize_enabled")) {
/* Add a link to resize the image */ /* Add a link to resize the image */
@ -44,7 +44,7 @@ class ResizeImage extends SimpleExtension {
} }
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Image Resize"); $sb = new SetupBlock("Image Resize");
$sb->add_bool_option("resize_enabled", "Allow resizing images: "); $sb->add_bool_option("resize_enabled", "Allow resizing images: ");
$sb->add_bool_option("resize_upload", "<br>Resize on upload: "); $sb->add_bool_option("resize_upload", "<br>Resize on upload: ");
@ -89,7 +89,7 @@ class ResizeImage extends SimpleExtension {
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user; global $page, $user;
if ( $event->page_matches("resize") && $user->is_admin() ) { if ( $event->page_matches("resize") && $user->is_admin() ) {

View File

@ -7,7 +7,7 @@
*/ */
class RSS_Comments extends SimpleExtension { class RSS_Comments extends SimpleExtension {
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $page; global $config, $page;
$title = $config->get_string('title'); $title = $config->get_string('title');
@ -15,7 +15,7 @@ class RSS_Comments extends SimpleExtension {
"title=\"$title - Comments\" href=\"".make_link("rss/comments")."\" />"); "title=\"$title - Comments\" href=\"".make_link("rss/comments")."\" />");
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $database, $page; global $config, $database, $page;
if($event->page_matches("rss/comments")) { if($event->page_matches("rss/comments")) {
$page->set_mode("data"); $page->set_mode("data");

View File

@ -7,7 +7,7 @@
*/ */
class RSS_Images extends SimpleExtension { class RSS_Images extends SimpleExtension {
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $page; global $config, $page;
$title = $config->get_string('title'); $title = $config->get_string('title');
@ -22,7 +22,7 @@ class RSS_Images extends SimpleExtension {
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
if($event->page_matches("rss/images")) { if($event->page_matches("rss/images")) {
$search_terms = $event->get_search_terms(); $search_terms = $event->get_search_terms();
$page_number = $event->get_page_number(); $page_number = $event->get_page_number();

View File

@ -206,7 +206,7 @@ class TestFinder extends TestSuite {
} }
class SimpleSCoreTest extends SimpleExtension { class SimpleSCoreTest extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page; global $page;
if($event->page_matches("test")) { if($event->page_matches("test")) {
set_time_limit(0); set_time_limit(0);
@ -220,7 +220,7 @@ class SimpleSCoreTest extends SimpleExtension {
} }
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Run Tests", make_link("test/all")); $event->add_link("Run Tests", make_link("test/all"));

View File

@ -8,14 +8,14 @@
*/ */
class XMLSitemap extends SimpleExtension { class XMLSitemap extends SimpleExtension {
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
if($event->page_matches("sitemap.xml")) { if($event->page_matches("sitemap.xml")) {
$images = Image::find_images(0, 50, array()); $images = Image::find_images(0, 50, array());
$this->do_xml($images); $this->do_xml($images);
} }
} }
private function do_xml($images) { private function do_xml(/*array(Image)*/ $images) {
global $page; global $page;
$page->set_mode("data"); $page->set_mode("data");
$page->set_type("application/xml"); $page->set_type("application/xml");

View File

@ -9,7 +9,7 @@ class Tag_History extends SimpleExtension {
// in before tags are actually set, so that "get current tags" works // in before tags are actually set, so that "get current tags" works
public function get_priority() {return 40;} public function get_priority() {return 40;}
public function onInitExtEvent($event) { public function onInitExtEvent(InitExtEvent $event) {
global $config; global $config;
$config->set_default_int("history_limit", -1); $config->set_default_int("history_limit", -1);
@ -19,7 +19,7 @@ class Tag_History extends SimpleExtension {
} }
} }
public function onAdminBuildingEvent($event) { public function onAdminBuildingEvent(AdminBuildingEvent $event) {
global $user; global $user;
if(isset($_POST['revert_ip']) && $user->is_admin() && $user->check_auth_token()) { if(isset($_POST['revert_ip']) && $user->is_admin() && $user->check_auth_token()) {
@ -55,7 +55,7 @@ class Tag_History extends SimpleExtension {
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $page, $user; global $config, $page, $user;
if ($event->page_matches("tag_history")) { if ($event->page_matches("tag_history")) {
@ -78,18 +78,18 @@ class Tag_History extends SimpleExtension {
} }
} }
public function onDisplayingImage($event) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $page; global $page;
// handle displaying a link on the view page // handle displaying a link on the view page
$this->theme->display_history_link($page, $event->image->id); $this->theme->display_history_link($page, $event->image->id);
} }
public function onImageDeletion($event) { public function onImageDeletion(ImageDeletionEvent $event) {
// handle removing of history when an image is deleted // handle removing of history when an image is deleted
$this->delete_all_tag_history($event->image->id); $this->delete_all_tag_history($event->image->id);
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Tag History"); $sb = new SetupBlock("Tag History");
$sb->add_label("Limit to "); $sb->add_label("Limit to ");
$sb->add_int_option("history_limit"); $sb->add_int_option("history_limit");
@ -98,19 +98,18 @@ class Tag_History extends SimpleExtension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onTagSetEvent($event) { public function onTagSet(TagSetEvent $event) {
$this->add_tag_history($event->image, $event->tags); $this->add_tag_history($event->image, $event->tags);
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuilding $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Tag Changes", make_link("tag_history")); $event->add_link("Tag Changes", make_link("tag_history"));
} }
} }
protected function install() protected function install() {
{
global $database; global $database;
global $config; global $config;

View File

@ -6,16 +6,8 @@
* Do not remove this notice. * Do not remove this notice.
*/ */
class Tagger implements Extension { class Tagger extends SimpleExtension {
var $theme; public function onDisplayingImage(DisplayingImageEvent $event) {
public function get_priority() {return 50;}
public function receive_event(Event $event) {
if(is_null($this->theme))
$this->theme = get_theme_object($this);
if($event instanceof DisplayingImageEvent) {
global $page, $config, $user; global $page, $config, $user;
if($config->get_bool("tag_edit_anon") if($config->get_bool("tag_edit_anon")
@ -26,7 +18,7 @@ class Tagger implements Extension {
} }
} }
if($event instanceof SetupBuildingEvent) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Tagger"); $sb = new SetupBlock("Tagger");
$sb->add_bool_option("ext_tagger_enabled","Enable Tagger"); $sb->add_bool_option("ext_tagger_enabled","Enable Tagger");
$sb->add_int_option("ext_tagger_search_delay","<br/>Delay queries by "); $sb->add_int_option("ext_tagger_search_delay","<br/>Delay queries by ");
@ -38,14 +30,13 @@ class Tagger implements Extension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
} }
}
// Tagger AJAX back-end // Tagger AJAX back-end
class TaggerXML implements Extension { class TaggerXML extends SimpleExtension {
public function get_priority() {return 10;} public function get_priority() {return 10;}
public function receive_event(Event $event) { public function onPageRequest(PageRequestEvent $event) {
if(($event instanceof PageRequestEvent) && $event->page_matches("tagger/tags")) { if($event->page_matches("tagger/tags")) {
global $page; global $page;
//$match_tags = null; //$match_tags = null;

View File

@ -9,7 +9,7 @@
*/ */
class Tips extends SimpleExtension { class Tips extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $config, $database; global $config, $database;
if ($config->get_int("ext_tips_version") < 1){ if ($config->get_int("ext_tips_version") < 1){
@ -31,7 +31,7 @@ class Tips extends SimpleExtension {
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $page, $user; global $page, $user;
$this->getTip(); $this->getTip();
@ -67,7 +67,7 @@ class Tips extends SimpleExtension {
} }
} }
public function onUserBlockBuilding($event) { public function onUserBlockBuilding(UserBlockBuildingEvent $event) {
global $user; global $user;
if($user->is_admin()) { if($user->is_admin()) {
$event->add_link("Tips Editor", make_link("tips/list")); $event->add_link("Tips Editor", make_link("tips/list"));

View File

@ -7,14 +7,14 @@
*/ */
class TwitterSoc extends SimpleExtension { class TwitterSoc extends SimpleExtension {
public function onPostListBuilding($event) { public function onPostListBuilding(PostListBuildingEvent $event) {
global $config, $page; global $config, $page;
if(strlen($config->get_string("twitter_soc_username")) > 0) { if(strlen($config->get_string("twitter_soc_username")) > 0) {
$this->theme->display_feed($page, $config->get_string("twitter_soc_username")); $this->theme->display_feed($page, $config->get_string("twitter_soc_username"));
} }
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Tweet!"); $sb = new SetupBlock("Tweet!");
$sb->add_text_option("twitter_soc_username", "Username "); $sb->add_text_option("twitter_soc_username", "Username ");
$event->panel->add_block($sb); $event->panel->add_block($sb);

View File

@ -7,13 +7,13 @@
* Description: Shimmie updater! * Description: Shimmie updater!
*/ */
class Update extends SimpleExtension { class Update extends SimpleExtension {
public function onInitExt(Event $event) { public function onInitExt(InitExtEvent $event) {
global $config; global $config;
$config->set_default_string("update_url", "http://nodeload.github.com/shish/shimmie2/zipball/master"); //best to avoid using https $config->set_default_string("update_url", "http://nodeload.github.com/shish/shimmie2/zipball/master"); //best to avoid using https
$config->set_default_string("commit_hash", ""); $config->set_default_string("commit_hash", "");
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
global $config; global $config;
//Would prefer to use the admin panel for this. //Would prefer to use the admin panel for this.
//But since the admin panel is optional...kind of stuck to using this. //But since the admin panel is optional...kind of stuck to using this.
@ -25,7 +25,7 @@ class Update extends SimpleExtension {
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
public function onPageRequest(Event $event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $user; global $config, $user;
if($event->page_matches("update") && $user->is_admin()) { if($event->page_matches("update") && $user->is_admin()) {
$ok = $this->update_shimmie(); $ok = $this->update_shimmie();

View File

@ -54,7 +54,7 @@ class WikiPage {
} }
class Wiki extends SimpleExtension { class Wiki extends SimpleExtension {
public function onInitExt($event) { public function onInitExt(InitExtEvent $event) {
global $database; global $database;
global $config; global $config;
@ -80,7 +80,7 @@ class Wiki extends SimpleExtension {
} }
} }
public function onPageRequest($event) { public function onPageRequest(PageRequestEvent $event) {
global $config, $page, $user; global $config, $page, $user;
if($event->page_matches("wiki")) { if($event->page_matches("wiki")) {
if(is_null($event->get_arg(0)) || strlen(trim($event->get_arg(0))) == 0) { if(is_null($event->get_arg(0)) || strlen(trim($event->get_arg(0))) == 0) {
@ -153,7 +153,7 @@ class Wiki extends SimpleExtension {
} }
} }
public function onWikiUpdate($event) { public function onWikiUpdate(WikiUpdateEvent $event) {
global $database; global $database;
$wpage = $event->wikipage; $wpage = $event->wikipage;
try { try {
@ -167,7 +167,7 @@ class Wiki extends SimpleExtension {
} }
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Wiki"); $sb = new SetupBlock("Wiki");
$sb->add_bool_option("wiki_edit_anon", "Allow anonymous edits: "); $sb->add_bool_option("wiki_edit_anon", "Allow anonymous edits: ");
$sb->add_bool_option("wiki_edit_user", "<br>Allow user edits: "); $sb->add_bool_option("wiki_edit_user", "<br>Allow user edits: ");

View File

@ -10,12 +10,12 @@ class WordFilter extends SimpleExtension {
// before emoticon filter // before emoticon filter
public function get_priority() {return 40;} public function get_priority() {return 40;}
public function onTextFormatting($event) { public function onTextFormatting(TextFormattingEvent $event) {
$event->formatted = $this->filter($event->formatted); $event->formatted = $this->filter($event->formatted);
$event->stripped = $this->filter($event->stripped); $event->stripped = $this->filter($event->stripped);
} }
public function onSetupBuilding($event) { public function onSetupBuilding(SetupBuildingEvent $event) {
$sb = new SetupBlock("Word Filter"); $sb = new SetupBlock("Word Filter");
$sb->add_longtext_option("word_filter"); $sb->add_longtext_option("word_filter");
$sb->add_label("<br>(each line should be search term and replace term, separated by a comma)"); $sb->add_label("<br>(each line should be search term and replace term, separated by a comma)");