Esempio n. 1
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Site Description");
     $sb->add_text_option("site_description", "Description: ");
     $sb->add_text_option("site_keywords", "<br>Keywords: ");
     $event->panel->add_block($sb);
 }
Esempio n. 2
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Amazon S3");
     $sb->add_text_option("amazon_s3_access", "Access key: ");
     $sb->add_text_option("amazon_s3_secret", "<br>Secret key: ");
     $sb->add_text_option("amazon_s3_bucket", "<br>Bucket: ");
     $event->panel->add_block($sb);
 }
Esempio n. 3
0
 public function onSetupBuilding($event)
 {
     $sb = new SetupBlock("Archive Handler Options");
     $sb->add_text_option("archive_tmp_dir", "Temporary folder: ");
     $sb->add_text_option("archive_extract_command", "<br>Extraction command: ");
     $sb->add_label("<br>%f for archive, %d for temporary directory");
     $event->panel->add_block($sb);
 }
Esempio n. 4
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Mailing Options");
     $sb->add_text_option("mail_sub", "Subject prefix: ");
     $sb->add_text_option("mail_img", "<br>Banner Image URL: ");
     $sb->add_text_option("mail_style", "<br>Style URL: ");
     $sb->add_longtext_option("mail_fot", "<br>Footer (Use HTML)");
     $sb->add_label("<br><i>Should measure 550x110px. Use an absolute URL</i>");
     $event->panel->add_block($sb);
 }
Esempio n. 5
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Google Analytics");
     $sb->add_text_option("google_analytics_id", "Analytics ID: ");
     $sb->add_label("<br>(eg. UA-xxxxxxxx-x)");
     $event->panel->add_block($sb);
 }
Esempio n. 6
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Blotter");
     $sb->add_int_option("blotter_recent", "<br />Number of recent entries to display: ");
     $sb->add_text_option("blotter_color", "<br />Color of important updates: (ABCDEF format) ");
     $sb->add_choice_option("blotter_position", array("Top of page" => "subheading", "In navigation bar" => "left"), "<br>Position: ");
     $event->panel->add_block($sb);
 }
Esempio n. 7
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sort_by = array('Alphabetical' => 'a', 'Popularity' => 'p', 'Relevance' => 'r');
     $sb = new SetupBlock("Tag Edit Cloud");
     $sb->add_bool_option("tageditcloud_disable", "Disable Tag Selection Cloud: ");
     $sb->add_choice_option("tageditcloud_sort", $sort_by, "<br>Sort the tags by:");
     $sb->add_bool_option("tageditcloud_usedfirst", "<br>Always show used tags first: ");
     $sb->add_label("<br><b>Alpha sort</b>:<br>Only show tags used at least ");
     $sb->add_int_option("tageditcloud_minusage");
     $sb->add_label(" times.<br><b>Popularity/Relevance sort</b>:<br>Show ");
     $sb->add_int_option("tageditcloud_defcount");
     $sb->add_label(" tags by default.<br>Show a maximum of ");
     $sb->add_int_option("tageditcloud_maxcount");
     $sb->add_label(" tags.");
     $sb->add_label("<br><b>Relevance sort</b>:<br>Ignore tags (space separated): ");
     $sb->add_text_option("tageditcloud_ignoretags");
     $event->panel->add_block($sb);
 }
Esempio n. 8
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     //global $config;
     $thumbers = array();
     $thumbers['None'] = "static";
     $thumbers['ffmpeg'] = "ffmpeg";
     $sb = new SetupBlock("Video Thumbnail Options");
     $sb->add_choice_option("video_thumb_engine", $thumbers, "Engine: ");
     //if($config->get_string("video_thumb_engine") == "ffmpeg") {
     $sb->add_label("<br>Path to ffmpeg: ");
     $sb->add_text_option("thumb_ffmpeg_path");
     //}
     // Some older versions of ffmpeg have trouble with the automatic aspect ratio scaling.
     // This adds an option in the Board Config to disable the aspect ratio scaling.
     $sb->add_label("<br>");
     $sb->add_bool_option("video_thumb_ignore_aspect_ratio", "Ignore aspect ratio when creating thumbnails: ");
     $event->panel->add_block($sb);
 }
Esempio n. 9
0
 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));
     }
     if ($event instanceof SetupBuildingEvent) {
         $sb = new SetupBlock("Link to Image");
         $sb->add_text_option("ext_link-img_text-link_format", "Text Link Format: ");
         $event->panel->add_block($sb);
     }
     if ($event instanceof InitExtEvent) {
         //just set default if empty.
         $config->set_default_string("ext_link-img_text-link_format", '$title - $id ($ext $size $filesize)');
     }
 }
Esempio n. 10
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Resolution Limits");
     $sb->add_label("Min ");
     $sb->add_int_option("upload_min_width");
     $sb->add_label(" x ");
     $sb->add_int_option("upload_min_height");
     $sb->add_label(" px");
     $sb->add_label("<br>Max ");
     $sb->add_int_option("upload_max_width");
     $sb->add_label(" x ");
     $sb->add_int_option("upload_max_height");
     $sb->add_label(" px");
     $sb->add_label("<br>(-1 for no limit)");
     $sb->add_label("<br>Ratios ");
     $sb->add_text_option("upload_ratios");
     $sb->add_label("<br>(eg. '4:3 16:9', blank for no limit)");
     $event->panel->add_block($sb);
 }
Esempio n. 11
0
 public function onSetupBuilding($event)
 {
     $sb = new SetupBlock("Image Options");
     $sb->position = 30;
     // advanced only
     //$sb->add_text_option("image_ilink", "Image link: ");
     //$sb->add_text_option("image_tlink", "<br>Thumbnail link: ");
     $sb->add_text_option("image_tip", "Image tooltip: ");
     $sb->add_choice_option("upload_collision_handler", array('Error' => 'error', 'Merge' => 'merge'), "<br>Upload collision handler: ");
     if (!in_array("OS", $_SERVER) || $_SERVER["OS"] != 'Windows_NT') {
         $sb->add_bool_option("image_show_meta", "<br>Show metadata: ");
     }
     $sb->add_bool_option("image_jquery_confirm", "<br>Confirm Delete with jQuery: ");
     $expires = array();
     $expires['1 Minute'] = 60;
     $expires['1 Hour'] = 3600;
     $expires['1 Day'] = 86400;
     $expires['1 Month (31 days)'] = 2678400;
     //(60*60*24*31)
     $expires['1 Year'] = 31536000;
     // 365 days (60*60*24*365)
     $expires['Never'] = 3153600000.0;
     // 100 years..
     $sb->add_choice_option("image_expires", $expires, "<br>Image Expiration: ");
     $event->panel->add_block($sb);
     $thumbers = array();
     $thumbers['Built-in GD'] = "gd";
     $thumbers['ImageMagick'] = "convert";
     $sb = new SetupBlock("Thumbnailing");
     $sb->add_choice_option("thumb_engine", $thumbers, "Engine: ");
     $sb->add_label("<br>Size ");
     $sb->add_int_option("thumb_width");
     $sb->add_label(" x ");
     $sb->add_int_option("thumb_height");
     $sb->add_label(" px at ");
     $sb->add_int_option("thumb_quality");
     $sb->add_label(" % quality ");
     $sb->add_shorthand_int_option("thumb_mem_limit", "<br>Max memory use: ");
     $event->panel->add_block($sb);
 }
Esempio n. 12
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Tag Map Options");
     $sb->add_int_option("tags_min", "Only show tags used at least ");
     $sb->add_label(" times");
     $sb->add_bool_option("tag_list_pages", "<br>Paged tag lists: ");
     $event->panel->add_block($sb);
     $sb = new SetupBlock("Popular / Related Tag List");
     $sb->add_int_option("tag_list_length", "Show top ");
     $sb->add_label(" related tags");
     $sb->add_int_option("popular_tag_list_length", "<br>Show top ");
     $sb->add_label(" popular tags");
     $sb->add_text_option("info_link", "<br>Tag info link: ");
     $sb->add_choice_option("tag_list_image_type", array("Image's tags only" => "tags", "Show related" => "related"), "<br>Image tag list: ");
     $sb->add_choice_option("tag_list_related_sort", array("Tag Count" => "tagcount", "Alphabetical" => "alphabetical"), "<br>Sort related list by: ");
     $sb->add_choice_option("tag_list_popular_sort", array("Tag Count" => "tagcount", "Alphabetical" => "alphabetical"), "<br>Sort popular list by: ");
     $sb->add_bool_option("tag_list_numbers", "<br>Show tag counts: ");
     $event->panel->add_block($sb);
 }
Esempio n. 13
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Update");
     $sb->add_text_option("update_guserrepo", "User/Repo: ");
     $event->panel->add_block($sb);
 }
Esempio n. 14
0
 public function receive_event(Event $event)
 {
     if ($event instanceof ImageAdditionEvent) {
         global $config;
         $min_w = $config->get_int("upload_min_width", -1);
         $min_h = $config->get_int("upload_min_height", -1);
         $max_w = $config->get_int("upload_max_width", -1);
         $max_h = $config->get_int("upload_max_height", -1);
         $ratios = explode(" ", $config->get_string("upload_ratios", ""));
         $image = $event->image;
         if ($min_w > 0 && $image->width < $min_w) {
             throw new UploadException("Image too small");
         }
         if ($min_h > 0 && $image->height < $min_h) {
             throw new UploadException("Image too small");
         }
         if ($max_w > 0 && $image->width > $max_w) {
             throw new UploadException("Image too large");
         }
         if ($max_h > 0 && $image->height > $max_h) {
             throw new UploadException("Image too large");
         }
         if (count($ratios) > 0) {
             $ok = false;
             $valids = 0;
             foreach ($ratios as $ratio) {
                 $parts = explode(":", $ratio);
                 if (count($parts) < 2) {
                     continue;
                 }
                 $valids++;
                 $width = $parts[0];
                 $height = $parts[1];
                 if ($image->width / $width == $image->height / $height) {
                     $ok = true;
                     break;
                 }
             }
             if ($valids > 0 && !$ok) {
                 throw new UploadException("Image needs to be in one of these ratios: " . html_escape($config->get_string("upload_ratios", "")));
             }
         }
     }
     if ($event instanceof SetupBuildingEvent) {
         $sb = new SetupBlock("Resolution Limits");
         $sb->add_label("Min ");
         $sb->add_int_option("upload_min_width");
         $sb->add_label(" x ");
         $sb->add_int_option("upload_min_height");
         $sb->add_label(" px");
         $sb->add_label("<br>Max ");
         $sb->add_int_option("upload_max_width");
         $sb->add_label(" x ");
         $sb->add_int_option("upload_max_height");
         $sb->add_label(" px");
         $sb->add_label("<br>(-1 for no limit)");
         $sb->add_label("<br>Ratios ");
         $sb->add_text_option("upload_ratios");
         $sb->add_label("<br>(eg. '4:3 16:9', blank for no limit)");
         $event->panel->add_block($sb);
     }
 }
Esempio n. 15
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $themes = array();
     foreach (glob("themes/*") as $theme_dirname) {
         $name = str_replace("themes/", "", $theme_dirname);
         $human = str_replace("_", " ", $name);
         $human = ucwords($human);
         $themes[$human] = $name;
     }
     if (isset($_SERVER["HTTP_HOST"])) {
         $host = $_SERVER["HTTP_HOST"];
     } else {
         $host = $_SERVER["SERVER_NAME"];
         if ($_SERVER["SERVER_PORT"] != "80") {
             $host .= ":" . $_SERVER["SERVER_PORT"];
         }
     }
     $full = (@$_SERVER["HTTPS"] ? "https://" : "http://") . $host . $_SERVER["PHP_SELF"];
     $test_url = str_replace("/index.php", "/nicetest", $full);
     $nicescript = "<script language='javascript'>\n\t\t\tfunction getHTTPObject() {\n\t\t\t\tif (window.XMLHttpRequest){\n\t\t\t\t\treturn new XMLHttpRequest();\n\t\t\t\t}\n\t\t\t\telse if(window.ActiveXObject){\n\t\t\t\t\treturn new ActiveXObject('Microsoft.XMLHTTP');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcheckbox = document.getElementById('nice_urls');\n\t\t\tout_span = document.getElementById('nicetest');\n\n\t\t\tcheckbox.disabled = true;\n\t\t\tout_span.innerHTML = '(testing...)';\n\n\t\t\t\$(document).ready(function() {\n\t\t\t\tvar http_request = getHTTPObject();\n\t\t\t\thttp_request.open('GET', '{$test_url}', false);\n\t\t\t\thttp_request.send(null);\n\n\t\t\t\tif(http_request.status == 200 && http_request.responseText == 'ok') {\n\t\t\t\t\tcheckbox.disabled = false;\n\t\t\t\t\tout_span.innerHTML = '(tested ok)';\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcheckbox.disabled = true;\n\t\t\t\t\tout_span.innerHTML = '(test failed)';\n\t\t\t\t}\n\t\t\t});\n\t\t</script>";
     $sb = new SetupBlock("General");
     $sb->position = 0;
     $sb->add_text_option("title", "Site title: ");
     $sb->add_text_option("front_page", "<br>Front page: ");
     $sb->add_text_option("main_page", "<br>Main page: ");
     $sb->add_text_option("contact_link", "<br>Contact URL: ");
     $sb->add_choice_option("theme", $themes, "<br>Theme: ");
     //$sb->add_multichoice_option("testarray", array("a" => "b", "c" => "d"), "<br>Test Array: ");
     $sb->add_bool_option("nice_urls", "<br>Nice URLs: ");
     $sb->add_label("<span id='nicetest'>(Javascript inactive, can't test!)</span>{$nicescript}");
     $event->panel->add_block($sb);
     $sb = new SetupBlock("Remote API Integration");
     $sb->add_label("<a href='http://akismet.com/'>Akismet</a>");
     $sb->add_text_option("comment_wordpress_key", "<br>API key: ");
     $sb->add_label("<br>&nbsp;<br><a href='" . recaptcha_get_signup_url($_SERVER["HTTP_HOST"], "Shimmie") . "'>ReCAPTCHA</a>");
     $sb->add_text_option("api_recaptcha_privkey", "<br>Private key: ");
     $sb->add_text_option("api_recaptcha_pubkey", "<br>Public key: ");
     $event->panel->add_block($sb);
 }
Esempio n. 16
0
 public function receive_event(Event $event)
 {
     global $config, $database, $page, $user;
     if ($this->theme == null) {
         $this->theme = get_theme_object($this);
     }
     if ($event instanceof InitExtEvent) {
         $config->set_default_int("tag_list_length", 15);
         $config->set_default_int("popular_tag_list_length", 15);
         $config->set_default_int("tags_min", 3);
         $config->set_default_string("info_link", 'http://en.wikipedia.org/wiki/$tag');
         $config->set_default_string("tag_list_image_type", 'related');
         $config->set_default_bool("tag_list_pages", false);
     }
     if ($event instanceof PageRequestEvent && $event->page_matches("tags")) {
         $this->theme->set_navigation($this->build_navigation());
         switch ($event->get_arg(0)) {
             default:
             case 'map':
                 $this->theme->set_heading("Tag Map");
                 $this->theme->set_tag_list($this->build_tag_map());
                 break;
             case 'alphabetic':
                 $this->theme->set_heading("Alphabetic Tag List");
                 $this->theme->set_tag_list($this->build_tag_alphabetic());
                 break;
             case 'popularity':
                 $this->theme->set_heading("Tag List by Popularity");
                 $this->theme->set_tag_list($this->build_tag_popularity());
                 break;
             case 'categories':
                 $this->theme->set_heading("Popular Categories");
                 $this->theme->set_tag_list($this->build_tag_categories());
                 break;
         }
         $this->theme->display_page($page);
     }
     if ($event instanceof PageRequestEvent && $event->page_matches("api/internal/tag_list/complete")) {
         $all = $database->get_all("SELECT tag FROM tags WHERE tag LIKE :search AND count > 0 LIMIT 10", array("search" => $_GET["s"] . "%"));
         $res = array();
         foreach ($all as $row) {
             $res[] = $row["tag"];
         }
         $page->set_mode("data");
         $page->set_type("text/plain");
         $page->set_data(implode("\n", $res));
     }
     if ($event instanceof PostListBuildingEvent) {
         if ($config->get_int('tag_list_length') > 0) {
             if (!empty($event->search_terms)) {
                 $this->add_refine_block($page, $event->search_terms);
             } else {
                 $this->add_popular_block($page);
             }
         }
     }
     if ($event instanceof DisplayingImageEvent) {
         if ($config->get_int('tag_list_length') > 0) {
             if ($config->get_string('tag_list_image_type') == 'related') {
                 $this->add_related_block($page, $event->image);
             } else {
                 $this->add_tags_block($page, $event->image);
             }
         }
     }
     if ($event instanceof SetupBuildingEvent) {
         $sb = new SetupBlock("Tag Map Options");
         $sb->add_int_option("tags_min", "Only show tags used at least ");
         $sb->add_label(" times");
         $sb->add_bool_option("tag_list_pages", "<br>Paged tag lists: ");
         $event->panel->add_block($sb);
         $sb = new SetupBlock("Popular / Related Tag List");
         $sb->add_int_option("tag_list_length", "Show top ");
         $sb->add_label(" related tags");
         $sb->add_int_option("popular_tag_list_length", "<br>Show top ");
         $sb->add_label(" popular tags");
         $sb->add_text_option("info_link", "<br>Tag info link: ");
         $sb->add_choice_option("tag_list_image_type", array("Image's tags only" => "tags", "Show related" => "related"), "<br>Image tag list: ");
         $sb->add_bool_option("tag_list_numbers", "<br>Show tag counts: ");
         $event->panel->add_block($sb);
     }
 }
Esempio n. 17
0
 public function onSetupBuilding($event)
 {
     $sb = new SetupBlock("Image Options");
     $sb->position = 30;
     // advanced only
     //$sb->add_text_option("image_ilink", "Image link: ");
     //$sb->add_text_option("image_tlink", "<br>Thumbnail link: ");
     $sb->add_text_option("image_tip", "Image tooltip: ");
     $sb->add_choice_option("upload_collision_handler", array('Error' => 'error', 'Merge' => 'merge'), "<br>Upload collision handler: ");
     if (!in_array("OS", $_SERVER) || $_SERVER["OS"] != 'Windows_NT') {
         $sb->add_bool_option("image_show_meta", "<br>Show metadata: ");
     }
     $event->panel->add_block($sb);
     $thumbers = array();
     $thumbers['Built-in GD'] = "gd";
     $thumbers['ImageMagick'] = "convert";
     $sb = new SetupBlock("Thumbnailing");
     $sb->add_choice_option("thumb_engine", $thumbers, "Engine: ");
     $sb->add_label("<br>Size ");
     $sb->add_int_option("thumb_width");
     $sb->add_label(" x ");
     $sb->add_int_option("thumb_height");
     $sb->add_label(" px at ");
     $sb->add_int_option("thumb_quality");
     $sb->add_label(" % quality ");
     $sb->add_shorthand_int_option("thumb_mem_limit", "<br>Max memory use: ");
     $event->panel->add_block($sb);
 }
Esempio n. 18
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Live Feed");
     $sb->add_text_option("livefeed_host", "IP:port to send events to: ");
     $event->panel->add_block($sb);
 }
Esempio n. 19
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $this->set_dir();
     $cron_url = make_http(make_link("/cron_upload/" . $this->upload_key));
     $cron_cmd = "curl --silent {$cron_url}";
     $documentation_link = make_http(make_link("cron_upload"));
     $sb = new SetupBlock("Cron Uploader");
     $sb->add_label("<b>Settings</b><br>");
     $sb->add_int_option("cron_uploader_count", "How many to upload each time");
     $sb->add_text_option("cron_uploader_dir", "<br>Set Cron Uploader root directory<br>");
     $sb->add_label("<br>Cron Command: <input type='text' size='60' value='{$cron_cmd}'><br>\n\t\tCreate a cron job with the command above.<br/>\n\t\t<a href='{$documentation_link}'>Read the documentation</a> if you're not sure what to do.");
     $event->panel->add_block($sb);
 }
Esempio n. 20
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     global $config;
     $sb = new SetupBlock("Image Options");
     $sb->position = 30;
     // advanced only
     //$sb->add_text_option("image_ilink", "Image link: ");
     //$sb->add_text_option("image_tlink", "<br>Thumbnail link: ");
     $sb->add_text_option("image_tip", "Image tooltip: ");
     $sb->add_choice_option("upload_collision_handler", array('Error' => 'error', 'Merge' => 'merge'), "<br>Upload collision handler: ");
     if (function_exists("exif_read_data")) {
         $sb->add_bool_option("image_show_meta", "<br>Show metadata: ");
     }
     $event->panel->add_block($sb);
     $thumbers = array();
     $thumbers['Built-in GD'] = "gd";
     $thumbers['ImageMagick'] = "convert";
     $sb = new SetupBlock("Thumbnailing");
     $sb->add_choice_option("thumb_engine", $thumbers, "Engine: ");
     $sb->add_label("<br>Size ");
     $sb->add_int_option("thumb_width");
     $sb->add_label(" x ");
     $sb->add_int_option("thumb_height");
     $sb->add_label(" px at ");
     $sb->add_int_option("thumb_quality");
     $sb->add_label(" % quality ");
     if ($config->get_string("thumb_engine") == "convert") {
         $sb->add_label("<br>ImageMagick Binary: ");
         $sb->add_text_option("thumb_convert_path");
     }
     if ($config->get_string("thumb_engine") == "gd") {
         $sb->add_shorthand_int_option("thumb_mem_limit", "<br>Max memory use: ");
     }
     $event->panel->add_block($sb);
 }
Esempio n. 21
0
 public function onSetupBuilding(SetupBuildingEvent $event)
 {
     $sb = new SetupBlock("Link to Image");
     $sb->add_text_option("ext_link-img_text-link_format", "Text Link Format: ");
     $event->panel->add_block($sb);
 }