forked from Cavemanon/cavepaintings
A bunch of small changes from scrutinizer-ci; some tidying, some actual bug fixes
This commit is contained in:
parent
db5aa56300
commit
c8aa3327a1
@ -271,11 +271,13 @@ class Database {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Meta info about the database engine
|
* Meta info about the database engine
|
||||||
|
* @var DBEngine
|
||||||
*/
|
*/
|
||||||
private $engine = null;
|
private $engine = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The currently active cache engine
|
* The currently active cache engine
|
||||||
|
* @var CacheEngine
|
||||||
*/
|
*/
|
||||||
public $cache = null;
|
public $cache = null;
|
||||||
|
|
||||||
|
@ -140,9 +140,9 @@ abstract class FormatterExtension extends Extension {
|
|||||||
*/
|
*/
|
||||||
abstract class DataHandlerExtension extends Extension {
|
abstract class DataHandlerExtension extends Extension {
|
||||||
public function onDataUpload(DataUploadEvent $event) {
|
public function onDataUpload(DataUploadEvent $event) {
|
||||||
global $user;
|
$supported_ext = $this->supported_ext($event->type);
|
||||||
|
$check_contents = $this->check_contents($event->tmpname);
|
||||||
if(($supported_ext = $this->supported_ext($event->type)) && ($check_contents = $this->check_contents($event->tmpname))) {
|
if($supported_ext && $check_contents) {
|
||||||
if(!move_upload_to_archive($event)) return;
|
if(!move_upload_to_archive($event)) return;
|
||||||
send_event(new ThumbnailGenerationEvent($event->hash, $event->type));
|
send_event(new ThumbnailGenerationEvent($event->hash, $event->type));
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ class Image {
|
|||||||
|
|
||||||
if(SPEED_HAX) {
|
if(SPEED_HAX) {
|
||||||
if(!$user->can("big_search") and count($tags) > 3) {
|
if(!$user->can("big_search") and count($tags) > 3) {
|
||||||
die("Anonymous users may only search for up to 3 tags at a time"); // FIXME: throw an exception?
|
throw new SCoreException("Anonymous users may only search for up to 3 tags at a time");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -644,7 +644,7 @@ class Image {
|
|||||||
* images table. Yes, MySQL does suck this much.
|
* images table. Yes, MySQL does suck this much.
|
||||||
*/
|
*/
|
||||||
private static function build_accurate_search_querylet($terms) {
|
private static function build_accurate_search_querylet($terms) {
|
||||||
global $config, $database;
|
global $database;
|
||||||
|
|
||||||
$tag_querylets = array();
|
$tag_querylets = array();
|
||||||
$img_querylets = array();
|
$img_querylets = array();
|
||||||
@ -804,7 +804,7 @@ class Image {
|
|||||||
* build_accurate_search_querylet() for a full explanation
|
* build_accurate_search_querylet() for a full explanation
|
||||||
*/
|
*/
|
||||||
private static function build_ugly_search_querylet($terms) {
|
private static function build_ugly_search_querylet($terms) {
|
||||||
global $config, $database;
|
global $database;
|
||||||
|
|
||||||
$tag_querylets = array();
|
$tag_querylets = array();
|
||||||
$img_querylets = array();
|
$img_querylets = array();
|
||||||
|
@ -15,6 +15,9 @@ class User {
|
|||||||
var $name;
|
var $name;
|
||||||
var $email;
|
var $email;
|
||||||
var $join_date;
|
var $join_date;
|
||||||
|
var $passhash;
|
||||||
|
|
||||||
|
/* @var UserClass */
|
||||||
var $class;
|
var $class;
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
@ -385,7 +385,13 @@ function make_http(/*string*/ $link) {
|
|||||||
/**
|
/**
|
||||||
* Make a form tag with relevant auth token and stuff
|
* Make a form tag with relevant auth token and stuff
|
||||||
*
|
*
|
||||||
* @retval string
|
* @param target string
|
||||||
|
* @param method string
|
||||||
|
* @param multipart boolean
|
||||||
|
* @param form_id string
|
||||||
|
* @param onsubmit string
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function make_form($target, $method="POST", $multipart=False, $form_id="", $onsubmit="") {
|
function make_form($target, $method="POST", $multipart=False, $form_id="", $onsubmit="") {
|
||||||
global $user;
|
global $user;
|
||||||
@ -1276,6 +1282,7 @@ function _sanitise_environment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _get_themelet_files($_theme) {
|
function _get_themelet_files($_theme) {
|
||||||
|
$base_themelets = array();
|
||||||
if(file_exists('themes/'.$_theme.'/custompage.class.php')) $base_themelets[] = 'themes/'.$_theme.'/custompage.class.php';
|
if(file_exists('themes/'.$_theme.'/custompage.class.php')) $base_themelets[] = 'themes/'.$_theme.'/custompage.class.php';
|
||||||
$base_themelets[] = 'themes/'.$_theme.'/layout.class.php';
|
$base_themelets[] = 'themes/'.$_theme.'/layout.class.php';
|
||||||
$base_themelets[] = 'themes/'.$_theme.'/themelet.class.php';
|
$base_themelets[] = 'themes/'.$_theme.'/themelet.class.php';
|
||||||
@ -1406,7 +1413,7 @@ function _decaret($str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _get_user() {
|
function _get_user() {
|
||||||
global $config, $database;
|
global $config;
|
||||||
$user = null;
|
$user = null;
|
||||||
if(get_prefixed_cookie("user") && get_prefixed_cookie("session")) {
|
if(get_prefixed_cookie("user") && get_prefixed_cookie("session")) {
|
||||||
$tmp_user = User::by_session(get_prefixed_cookie("user"), get_prefixed_cookie("session"));
|
$tmp_user = User::by_session(get_prefixed_cookie("user"), get_prefixed_cookie("session"));
|
||||||
|
@ -14,9 +14,9 @@ class AdminPageTheme extends Themelet {
|
|||||||
|
|
||||||
protected function button(/*string*/ $name, /*string*/ $action, /*boolean*/ $protected=false) {
|
protected function button(/*string*/ $name, /*string*/ $action, /*boolean*/ $protected=false) {
|
||||||
$c_protected = $protected ? " protected" : "";
|
$c_protected = $protected ? " protected" : "";
|
||||||
$html = make_form(make_link("admin/$action"), "POST", false, false, false, "admin$c_protected");
|
$html = make_form(make_link("admin/$action"), "POST", false, null, null, "admin$c_protected");
|
||||||
if($protected) {
|
if($protected) {
|
||||||
$html .= "<input type='submit' id='$action' value='$name' disabled='true'>";
|
$html .= "<input type='submit' id='$action' value='$name' disabled='disabled'>";
|
||||||
$html .= "<input type='checkbox' onclick='$(\"#$action\").attr(\"disabled\", !$(this).is(\":checked\"))'>";
|
$html .= "<input type='checkbox' onclick='$(\"#$action\").attr(\"disabled\", !$(this).is(\":checked\"))'>";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -143,7 +143,7 @@ class Artists extends Extension {
|
|||||||
}
|
}
|
||||||
public function handle_commands($event)
|
public function handle_commands($event)
|
||||||
{
|
{
|
||||||
global $config, $page, $user;
|
global $page, $user;
|
||||||
|
|
||||||
if($event->page_matches("artist"))
|
if($event->page_matches("artist"))
|
||||||
{
|
{
|
||||||
|
@ -14,19 +14,11 @@ class ArtistsTheme extends Themelet {
|
|||||||
";
|
";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function display_artists(){
|
|
||||||
global $page;
|
|
||||||
|
|
||||||
$page->set_title("Artists");
|
|
||||||
$page->set_heading("Artists");
|
|
||||||
$page->add_block(new Block("Artists", $html, "main", 10));
|
|
||||||
|
|
||||||
//$this->display_paginator($page, "artist/list", null, $pageNumber, $totalPages);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sidebar_options(/*string*/ $mode, $artistID=NULL, $is_admin=FALSE){
|
public function sidebar_options(/*string*/ $mode, $artistID=NULL, $is_admin=FALSE){
|
||||||
global $page;
|
global $page, $user;
|
||||||
|
|
||||||
|
$html = "";
|
||||||
|
|
||||||
if($mode == "neutral"){
|
if($mode == "neutral"){
|
||||||
$html = "<form method='post' action='".make_link("artist/new_artist")."'>
|
$html = "<form method='post' action='".make_link("artist/new_artist")."'>
|
||||||
".$user->get_auth_html()."
|
".$user->get_auth_html()."
|
||||||
@ -72,11 +64,14 @@ class ArtistsTheme extends Themelet {
|
|||||||
<input type='hidden' name='artist_id' value='".$artistID."'>
|
<input type='hidden' name='artist_id' value='".$artistID."'>
|
||||||
</form>";
|
</form>";
|
||||||
}
|
}
|
||||||
$page->add_block(new Block("Manage Artists", $html, "left", 10));
|
|
||||||
|
if($html) $page->add_block(new Block("Manage Artists", $html, "left", 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show_artist_editor($artist, $aliases, $members, $urls)
|
public function show_artist_editor($artist, $aliases, $members, $urls)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$artistName = $artist['name'];
|
$artistName = $artist['name'];
|
||||||
$artistNotes = $artist['notes'];
|
$artistNotes = $artist['notes'];
|
||||||
$artistID = $artist['id'];
|
$artistID = $artist['id'];
|
||||||
@ -140,7 +135,7 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function new_artist_composer()
|
public function new_artist_composer()
|
||||||
{
|
{
|
||||||
global $page;
|
global $page, $user;
|
||||||
|
|
||||||
$html = "<form action=".make_link("artist/create")." method='POST'>
|
$html = "<form action=".make_link("artist/create")." method='POST'>
|
||||||
".$user->get_auth_html()."
|
".$user->get_auth_html()."
|
||||||
@ -234,6 +229,8 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function show_new_alias_composer($artistID)
|
public function show_new_alias_composer($artistID)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$html =
|
$html =
|
||||||
'<form method="POST" action='.make_link("artist/alias/add").'>
|
'<form method="POST" action='.make_link("artist/alias/add").'>
|
||||||
'.$user->get_auth_html().'
|
'.$user->get_auth_html().'
|
||||||
@ -250,6 +247,8 @@ class ArtistsTheme extends Themelet {
|
|||||||
}
|
}
|
||||||
public function show_new_member_composer($artistID)
|
public function show_new_member_composer($artistID)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$html =
|
$html =
|
||||||
' <form method="POST" action='.make_link("artist/member/add").'>
|
' <form method="POST" action='.make_link("artist/member/add").'>
|
||||||
'.$user->get_auth_html().'
|
'.$user->get_auth_html().'
|
||||||
@ -267,6 +266,8 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function show_new_url_composer($artistID)
|
public function show_new_url_composer($artistID)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$html =
|
$html =
|
||||||
' <form method="POST" action='.make_link("artist/url/add").'>
|
' <form method="POST" action='.make_link("artist/url/add").'>
|
||||||
'.$user->get_auth_html().'
|
'.$user->get_auth_html().'
|
||||||
@ -284,6 +285,8 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function show_alias_editor($alias)
|
public function show_alias_editor($alias)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$html =
|
$html =
|
||||||
'
|
'
|
||||||
<form method="POST" action="'.make_link("artist/alias/edited/".$alias['id']).'">
|
<form method="POST" action="'.make_link("artist/alias/edited/".$alias['id']).'">
|
||||||
@ -301,6 +304,8 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function show_url_editor($url)
|
public function show_url_editor($url)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$html =
|
$html =
|
||||||
'
|
'
|
||||||
<form method="POST" action="'.make_link("artist/url/edited/".$url['id']).'">
|
<form method="POST" action="'.make_link("artist/url/edited/".$url['id']).'">
|
||||||
@ -318,6 +323,8 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function show_member_editor($member)
|
public function show_member_editor($member)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$html =
|
$html =
|
||||||
'
|
'
|
||||||
<form method="POST" action="'.make_link("artist/member/edited/".$member['id']).'">
|
<form method="POST" action="'.make_link("artist/member/edited/".$member['id']).'">
|
||||||
@ -335,7 +342,7 @@ class ArtistsTheme extends Themelet {
|
|||||||
|
|
||||||
public function show_artist($artist, $aliases, $members, $urls, $images, $userIsLogged, $userIsAdmin)
|
public function show_artist($artist, $aliases, $members, $urls, $images, $userIsLogged, $userIsAdmin)
|
||||||
{
|
{
|
||||||
global $user, $event, $page;
|
global $page;
|
||||||
|
|
||||||
$artist_link = "<a href='".make_link("post/list/".$artist['name']."/1")."'>".str_replace("_", " ", $artist['name'])."</a>";
|
$artist_link = "<a href='".make_link("post/list/".$artist['name']."/1")."'>".str_replace("_", " ", $artist['name'])."</a>";
|
||||||
|
|
||||||
|
@ -53,6 +53,7 @@ class BulkAdd extends Extension {
|
|||||||
if(!array_key_exists('extension', $pathinfo)) {
|
if(!array_key_exists('extension', $pathinfo)) {
|
||||||
throw new UploadException("File has no extension");
|
throw new UploadException("File has no extension");
|
||||||
}
|
}
|
||||||
|
$metadata = array();
|
||||||
$metadata['filename'] = $pathinfo['basename'];
|
$metadata['filename'] = $pathinfo['basename'];
|
||||||
$metadata['extension'] = $pathinfo['extension'];
|
$metadata['extension'] = $pathinfo['extension'];
|
||||||
$metadata['tags'] = $tags;
|
$metadata['tags'] = $tags;
|
||||||
@ -65,8 +66,6 @@ class BulkAdd extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function add_dir(/*string*/ $base, $subdir="") {
|
private function add_dir(/*string*/ $base, $subdir="") {
|
||||||
global $page;
|
|
||||||
|
|
||||||
if(!is_dir($base)) {
|
if(!is_dir($base)) {
|
||||||
$this->theme->add_status("Error", "$base is not a directory");
|
$this->theme->add_status("Error", "$base is not a directory");
|
||||||
return;
|
return;
|
||||||
|
@ -62,6 +62,7 @@ class BulkAddCSV extends Extension {
|
|||||||
if(!array_key_exists('extension', $pathinfo)) {
|
if(!array_key_exists('extension', $pathinfo)) {
|
||||||
throw new UploadException("File has no extension");
|
throw new UploadException("File has no extension");
|
||||||
}
|
}
|
||||||
|
$metadata = array();
|
||||||
$metadata['filename'] = $pathinfo['basename'];
|
$metadata['filename'] = $pathinfo['basename'];
|
||||||
$metadata['extension'] = $pathinfo['extension'];
|
$metadata['extension'] = $pathinfo['extension'];
|
||||||
$metadata['tags'] = $tags;
|
$metadata['tags'] = $tags;
|
||||||
@ -82,8 +83,6 @@ class BulkAddCSV extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function add_csv(/*string*/ $csvfile) {
|
private function add_csv(/*string*/ $csvfile) {
|
||||||
global $page;
|
|
||||||
|
|
||||||
if(!file_exists($csvfile)) {
|
if(!file_exists($csvfile)) {
|
||||||
$this->theme->add_status("Error", "$csvfile not found");
|
$this->theme->add_status("Error", "$csvfile not found");
|
||||||
return;
|
return;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
class BulkRemove extends Extension {
|
class BulkRemove extends Extension {
|
||||||
public function onPageRequest(PageRequestEvent $event) {
|
public function onPageRequest(PageRequestEvent $event) {
|
||||||
global $page, $user;
|
global $user;
|
||||||
if($event->page_matches("bulk_remove") && $user->is_admin() && $user->check_auth_token()) {
|
if($event->page_matches("bulk_remove") && $user->is_admin() && $user->check_auth_token()) {
|
||||||
if ($event->get_arg(0) == "confirm") $this->do_bulk_remove();
|
if ($event->get_arg(0) == "confirm") $this->do_bulk_remove();
|
||||||
else $this->show_confirm();
|
else $this->show_confirm();
|
||||||
@ -20,7 +20,7 @@ class BulkRemove extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onAdminBuilding(AdminBuildingEvent $event) {
|
public function onAdminBuilding(AdminBuildingEvent $event) {
|
||||||
global $page, $user;
|
global $page;
|
||||||
$html = "<b>Be extremely careful when using this!</b><br>
|
$html = "<b>Be extremely careful when using this!</b><br>
|
||||||
Once an image is removed there is no way to recover it so it is recommended that
|
Once an image is removed there is no way to recover it so it is recommended that
|
||||||
you first take when removing a large amount of images.<br>
|
you first take when removing a large amount of images.<br>
|
||||||
@ -83,10 +83,10 @@ class BulkRemove extends Extension {
|
|||||||
|
|
||||||
|
|
||||||
// if no images were found with the given info
|
// if no images were found with the given info
|
||||||
if (count($images_for_removal) == 0 && $html == "")
|
if (count($images_for_removal) == 0)
|
||||||
$error = "No images selected for removal";
|
$error = "No images selected for removal";
|
||||||
|
|
||||||
var_dump($tags_arr);
|
//var_dump($tags_arr);
|
||||||
return array(
|
return array(
|
||||||
"error" => $error,
|
"error" => $error,
|
||||||
"images_for_removal" => $images_for_removal);
|
"images_for_removal" => $images_for_removal);
|
||||||
@ -119,6 +119,7 @@ class BulkRemove extends Extension {
|
|||||||
|
|
||||||
private function do_bulk_remove()
|
private function do_bulk_remove()
|
||||||
{
|
{
|
||||||
|
global $page;
|
||||||
// display error if user didn't go through admin board
|
// display error if user didn't go through admin board
|
||||||
if (!isset($_POST["bulk_remove_images"])) {
|
if (!isset($_POST["bulk_remove_images"])) {
|
||||||
$page->add_block(new Block("Bulk Remove Error",
|
$page->add_block(new Block("Bulk Remove Error",
|
||||||
|
@ -13,7 +13,7 @@ class Chatbox extends Extension {
|
|||||||
global $page, $user;
|
global $page, $user;
|
||||||
|
|
||||||
// Adds header to enable chatbox
|
// Adds header to enable chatbox
|
||||||
$root = make_http();
|
$root = get_base_href();
|
||||||
$yPath = "$root/ext/chatbox/";
|
$yPath = "$root/ext/chatbox/";
|
||||||
$page->add_html_header("
|
$page->add_html_header("
|
||||||
<script src=\"$root/ext/chatbox/js/jquery.js\" type=\"text/javascript\"></script>
|
<script src=\"$root/ext/chatbox/js/jquery.js\" type=\"text/javascript\"></script>
|
||||||
|
@ -206,7 +206,7 @@ class CronUploader extends Extension {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns amount of files & total size of dir.
|
* Returns amount of files & total size of dir.
|
||||||
* @param unknown $path
|
* @param $path string
|
||||||
* @return multitype:number
|
* @return multitype:number
|
||||||
*/
|
*/
|
||||||
function scan_dir($path){
|
function scan_dir($path){
|
||||||
@ -227,7 +227,7 @@ class CronUploader extends Extension {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Uploads the image & handles everything
|
* Uploads the image & handles everything
|
||||||
* @param number $upload_count to upload a non-config amount of imgs
|
* @param $upload_count int to upload a non-config amount of imgs
|
||||||
* @return boolean returns true if the upload was successful
|
* @return boolean returns true if the upload was successful
|
||||||
*/
|
*/
|
||||||
public function process_upload($upload_count = 0) {
|
public function process_upload($upload_count = 0) {
|
||||||
@ -254,11 +254,11 @@ class CronUploader extends Extension {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$this->add_image($img[0], $img[1], $img[2]);
|
$this->add_image($img[0], $img[1], $img[2]);
|
||||||
$newPath = $this->move_uploaded($img[0], $img[1], false);
|
$this->move_uploaded($img[0], $img[1], false);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception $e) {
|
catch (Exception $e) {
|
||||||
$newPath = $this->move_uploaded($img[0], $img[1], true);
|
$this->move_uploaded($img[0], $img[1], true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove img from queue array
|
// Remove img from queue array
|
||||||
@ -295,37 +295,17 @@ class CronUploader extends Extension {
|
|||||||
$this->add_upload_info($info . "Image \"$filename\" moved from queue to \"$newPath\".");
|
$this->add_upload_info($info . "Image \"$filename\" moved from queue to \"$newPath\".");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* moves a directory up or gets the directory of a file
|
|
||||||
*
|
|
||||||
* @param string $path Path to modify
|
|
||||||
* @param int $depth Amount of directories to go up
|
|
||||||
* @return unknown Path to correct Directory
|
|
||||||
*/
|
|
||||||
private function move_directory_up($path, $depth=1)
|
|
||||||
{
|
|
||||||
$path = str_replace("//", "/", $path);
|
|
||||||
$array = explode("/", $path);
|
|
||||||
|
|
||||||
for ($i = 0; $i < $depth; $i++) {
|
|
||||||
$to_remove = count($array) -1; // Gets number of element to remove
|
|
||||||
unset($array[$to_remove]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return implode("/", $array);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate the necessary DataUploadEvent for a given image and tags.
|
* Generate the necessary DataUploadEvent for a given image and tags.
|
||||||
*/
|
*/
|
||||||
private function add_image($tmpname, $filename, $tags) {
|
private function add_image($tmpname, $filename, $tags) {
|
||||||
global $user, $image;
|
|
||||||
assert ( file_exists ( $tmpname ) );
|
assert ( file_exists ( $tmpname ) );
|
||||||
|
|
||||||
$pathinfo = pathinfo ( $filename );
|
$pathinfo = pathinfo ( $filename );
|
||||||
if (! array_key_exists ( 'extension', $pathinfo )) {
|
if (! array_key_exists ( 'extension', $pathinfo )) {
|
||||||
throw new UploadException ( "File has no extension" );
|
throw new UploadException ( "File has no extension" );
|
||||||
}
|
}
|
||||||
|
$metadata = array();
|
||||||
$metadata ['filename'] = $pathinfo ['basename'];
|
$metadata ['filename'] = $pathinfo ['basename'];
|
||||||
$metadata ['extension'] = $pathinfo ['extension'];
|
$metadata ['extension'] = $pathinfo ['extension'];
|
||||||
$metadata ['tags'] = ""; // = $tags; doesn't work when not logged in here
|
$metadata ['tags'] = ""; // = $tags; doesn't work when not logged in here
|
||||||
@ -343,12 +323,9 @@ class CronUploader extends Extension {
|
|||||||
// Set tags
|
// Set tags
|
||||||
$img = Image::by_id($event->image_id);
|
$img = Image::by_id($event->image_id);
|
||||||
$img->set_tags($tags);
|
$img->set_tags($tags);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function generate_image_queue($base = "", $subdir = "") {
|
private function generate_image_queue($base = "", $subdir = "") {
|
||||||
global $config;
|
|
||||||
|
|
||||||
if ($base == "")
|
if ($base == "")
|
||||||
$base = $this->root_dir . "/queue";
|
$base = $this->root_dir . "/queue";
|
||||||
|
|
||||||
@ -391,8 +368,9 @@ class CronUploader extends Extension {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a message to the info being published at the end
|
* Adds a message to the info being published at the end
|
||||||
* @param string $text
|
* @param $text string
|
||||||
* @param int $addon Enter a value to modify an existing value (enter value number)
|
* @param $addon int Enter a value to modify an existing value (enter value number)
|
||||||
|
* @return int
|
||||||
*/
|
*/
|
||||||
private function add_upload_info($text, $addon = 0) {
|
private function add_upload_info($text, $addon = 0) {
|
||||||
$info = $this->upload_info;
|
$info = $this->upload_info;
|
||||||
@ -409,7 +387,7 @@ class CronUploader extends Extension {
|
|||||||
|
|
||||||
// else if addon function is used, select the line & modify it
|
// else if addon function is used, select the line & modify it
|
||||||
$lines = substr($info, "\n"); // Seperate the string to array in lines
|
$lines = substr($info, "\n"); // Seperate the string to array in lines
|
||||||
$lines[$addon] = "$line[$addon] $text"; // Add the content to the line
|
$lines[$addon] = "$lines[$addon] $text"; // Add the content to the line
|
||||||
$this->upload_info = implode("\n", $lines); // Put string back together & update
|
$this->upload_info = implode("\n", $lines); // Put string back together & update
|
||||||
|
|
||||||
return $addon; // Return line number
|
return $addon; // Return line number
|
||||||
@ -419,7 +397,7 @@ class CronUploader extends Extension {
|
|||||||
* This is run at the end to display & save the log.
|
* This is run at the end to display & save the log.
|
||||||
*/
|
*/
|
||||||
private function handle_log() {
|
private function handle_log() {
|
||||||
global $page, $config;
|
global $page;
|
||||||
|
|
||||||
// Display message
|
// Display message
|
||||||
$page->set_mode("data");
|
$page->set_mode("data");
|
||||||
|
@ -21,6 +21,7 @@ function __extman_extcmp(ExtensionInfo $a, ExtensionInfo $b) {
|
|||||||
class ExtensionInfo {
|
class ExtensionInfo {
|
||||||
var $ext_name, $name, $link, $author, $email;
|
var $ext_name, $name, $link, $author, $email;
|
||||||
var $description, $documentation, $version, $visibility;
|
var $description, $documentation, $version, $visibility;
|
||||||
|
var $enabled;
|
||||||
|
|
||||||
function __construct($main) {
|
function __construct($main) {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
@ -167,6 +168,7 @@ class ExtManager extends Extension {
|
|||||||
|
|
||||||
private function set_things($settings) {
|
private function set_things($settings) {
|
||||||
$core = explode(",", CORE_EXTS);
|
$core = explode(",", CORE_EXTS);
|
||||||
|
$extras = array();
|
||||||
|
|
||||||
foreach(glob("ext/*/main.php") as $main) {
|
foreach(glob("ext/*/main.php") as $main) {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
@ -35,7 +35,7 @@ class Favorites extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
|
public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) {
|
||||||
global $database, $page, $user;
|
global $database, $user;
|
||||||
if(!$user->is_anonymous()) {
|
if(!$user->is_anonymous()) {
|
||||||
$user_id = $user->id;
|
$user_id = $user->id;
|
||||||
$image_id = $event->image->id;
|
$image_id = $event->image->id;
|
||||||
@ -88,7 +88,7 @@ class Favorites extends Extension {
|
|||||||
in_array('favorite_action', $_POST) &&
|
in_array('favorite_action', $_POST) &&
|
||||||
(($_POST['favorite_action'] == "set") || ($_POST['favorite_action'] == "unset"))
|
(($_POST['favorite_action'] == "set") || ($_POST['favorite_action'] == "unset"))
|
||||||
) {
|
) {
|
||||||
send_event(new FavoriteSetEvent($event->image_id, $user, ($_POST['favorite_action'] == "set")));
|
send_event(new FavoriteSetEvent($event->image->id, $user, ($_POST['favorite_action'] == "set")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,11 +50,11 @@ class ArchiveFileHandler extends Extension {
|
|||||||
assert(file_exists($tmpname));
|
assert(file_exists($tmpname));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
global $user;
|
|
||||||
$pathinfo = pathinfo($filename);
|
$pathinfo = pathinfo($filename);
|
||||||
if(!array_key_exists('extension', $pathinfo)) {
|
if(!array_key_exists('extension', $pathinfo)) {
|
||||||
throw new UploadException("File has no extension");
|
throw new UploadException("File has no extension");
|
||||||
}
|
}
|
||||||
|
$metadata = array();
|
||||||
$metadata['filename'] = $pathinfo['basename'];
|
$metadata['filename'] = $pathinfo['basename'];
|
||||||
$metadata['extension'] = $pathinfo['extension'];
|
$metadata['extension'] = $pathinfo['extension'];
|
||||||
$metadata['tags'] = $tags;
|
$metadata['tags'] = $tags;
|
||||||
@ -69,8 +69,6 @@ class ArchiveFileHandler extends Extension {
|
|||||||
|
|
||||||
// copied from bulk add extension
|
// copied from bulk add extension
|
||||||
private function add_dir($base, $subdir="") {
|
private function add_dir($base, $subdir="") {
|
||||||
global $page;
|
|
||||||
|
|
||||||
$list = "";
|
$list = "";
|
||||||
|
|
||||||
$dir = opendir("$base/$subdir");
|
$dir = opendir("$base/$subdir");
|
||||||
|
@ -17,8 +17,6 @@ class FlashFileHandler extends DataHandlerExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function create_image_from_data(/*string*/ $filename, /*array*/ $metadata) {
|
protected function create_image_from_data(/*string*/ $filename, /*array*/ $metadata) {
|
||||||
global $config;
|
|
||||||
|
|
||||||
$image = new Image();
|
$image = new Image();
|
||||||
|
|
||||||
$image->filesize = $metadata['size'];
|
$image->filesize = $metadata['size'];
|
||||||
@ -28,15 +26,8 @@ class FlashFileHandler extends DataHandlerExtension {
|
|||||||
$image->tag_array = Tag::explode($metadata['tags']);
|
$image->tag_array = Tag::explode($metadata['tags']);
|
||||||
$image->source = $metadata['source'];
|
$image->source = $metadata['source'];
|
||||||
|
|
||||||
// redundant, since getimagesize() works on SWF o_O
|
$info = getimagesize($filename);
|
||||||
// $rect = $this->swf_get_bounds($filename);
|
if(!$info) return null;
|
||||||
// if(is_null($rect)) {
|
|
||||||
// return $null;
|
|
||||||
// }
|
|
||||||
// $image->width = $rect[1];
|
|
||||||
// $image->height = $rect[3];
|
|
||||||
|
|
||||||
if(!($info = getimagesize($filename))) return null;
|
|
||||||
|
|
||||||
$image->width = $info[0];
|
$image->width = $info[0];
|
||||||
$image->height = $info[1];
|
$image->height = $info[1];
|
||||||
@ -45,61 +36,14 @@ class FlashFileHandler extends DataHandlerExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function check_contents(/*string*/ $file) {
|
protected function check_contents(/*string*/ $file) {
|
||||||
if(!file_exists($file)) return false;
|
if (!file_exists($file)) return false;
|
||||||
|
|
||||||
$fp = fopen($file, "r");
|
$fp = fopen($file, "r");
|
||||||
$head = fread($fp, 3);
|
$head = fread($fp, 3);
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
if(!in_array($head, array("CWS", "FWS"))) return false;
|
if (!in_array($head, array("CWS", "FWS"))) return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function str_to_binarray(/*string*/ $string) {
|
|
||||||
$binary = array();
|
|
||||||
$length = strlen($string);
|
|
||||||
for($j=0; $j<$length; $j++) {
|
|
||||||
$c = ord($string[$j]);
|
|
||||||
for($i=7; $i>=0; $i--) {
|
|
||||||
$binary[] = ($c >> $i) & 0x01;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $binary;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function binarray_to_int($binarray, $start=0, $length=32) {
|
|
||||||
$int = 0;
|
|
||||||
for($i=$start; $i<$start + $length; $i++) {
|
|
||||||
$int = $int << 1;
|
|
||||||
$int = $int + ($binarray[$i] == "1" ? 1 : 0);
|
|
||||||
}
|
|
||||||
return $int;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function swf_get_bounds(/*string*/ $filename) {
|
|
||||||
$fp = fopen($filename, "r");
|
|
||||||
$head = fread($fp, 3);
|
|
||||||
$version = fread($fp, 1);
|
|
||||||
$length = fread($fp, 4);
|
|
||||||
|
|
||||||
if($head == "FWS") {
|
|
||||||
$data = fread($fp, 16);
|
|
||||||
}
|
|
||||||
else if($head == "CWS") {
|
|
||||||
$data = fread($fp, 128*1024);
|
|
||||||
$data = gzuncompress($data);
|
|
||||||
$data = substr($data, 0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
$bounds = array();
|
|
||||||
$rect_bin = $this->str_to_binarray($data);
|
|
||||||
$nbits = $this->binarray_to_int($rect_bin, 0, 5);
|
|
||||||
$bounds[] = $this->binarray_to_int($rect_bin, 5 + 0 * $nbits, $nbits) / 20;
|
|
||||||
$bounds[] = $this->binarray_to_int($rect_bin, 5 + 1 * $nbits, $nbits) / 20;
|
|
||||||
$bounds[] = $this->binarray_to_int($rect_bin, 5 + 2 * $nbits, $nbits) / 20;
|
|
||||||
$bounds[] = $this->binarray_to_int($rect_bin, 5 + 3 * $nbits, $nbits) / 20;
|
|
||||||
|
|
||||||
return $bounds;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -36,7 +36,7 @@ class IcoFileHandler extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onPageRequest(PageRequestEvent $event) {
|
public function onPageRequest(PageRequestEvent $event) {
|
||||||
global $config, $database, $page;
|
global $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));
|
||||||
$image = Image::by_id($id);
|
$image = Image::by_id($id);
|
||||||
@ -56,8 +56,6 @@ class IcoFileHandler extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function create_image_from_data($filename, $metadata) {
|
private function create_image_from_data($filename, $metadata) {
|
||||||
global $config;
|
|
||||||
|
|
||||||
$image = new Image();
|
$image = new Image();
|
||||||
|
|
||||||
$fp = fopen($filename, "r");
|
$fp = fopen($filename, "r");
|
||||||
|
@ -6,8 +6,8 @@ class IcoHandlerTest extends ShimmieWebTestCase {
|
|||||||
$this->assert_response(302);
|
$this->assert_response(302);
|
||||||
$this->log_out();
|
$this->log_out();
|
||||||
|
|
||||||
$raw = $this->get_page("post/view/$image_id"); // test for no crash
|
$this->get_page("post/view/$image_id"); // test for no crash
|
||||||
$raw = $this->get_page("get_ico/$image_id"); // test for no crash
|
$this->get_page("get_ico/$image_id"); // test for no crash
|
||||||
|
|
||||||
$this->log_in_as_admin();
|
$this->log_in_as_admin();
|
||||||
$this->delete_image($image_id);
|
$this->delete_image($image_id);
|
||||||
|
@ -14,8 +14,6 @@ class PixelFileHandler extends DataHandlerExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function create_image_from_data(/*string*/ $filename, /*array*/ $metadata) {
|
protected function create_image_from_data(/*string*/ $filename, /*array*/ $metadata) {
|
||||||
global $config;
|
|
||||||
|
|
||||||
$image = new Image();
|
$image = new Image();
|
||||||
|
|
||||||
$info = getimagesize($filename);
|
$info = getimagesize($filename);
|
||||||
@ -52,9 +50,10 @@ class PixelFileHandler extends DataHandlerExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function create_thumb_force(/*string*/ $hash) {
|
protected function create_thumb_force(/*string*/ $hash) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
$inname = warehouse_path("images", $hash);
|
$inname = warehouse_path("images", $hash);
|
||||||
$outname = warehouse_path("thumbs", $hash);
|
$outname = warehouse_path("thumbs", $hash);
|
||||||
global $config;
|
|
||||||
|
|
||||||
$ok = false;
|
$ok = false;
|
||||||
|
|
||||||
@ -165,7 +164,7 @@ class PixelFileHandler extends DataHandlerExtension {
|
|||||||
if($width > $height*5) $width = $height*5;
|
if($width > $height*5) $width = $height*5;
|
||||||
if($height > $width*5) $height = $width*5;
|
if($height > $width*5) $height = $width*5;
|
||||||
|
|
||||||
$image = imagecreatefromstring($this->read_file($tmpname));
|
$image = imagecreatefromstring(file_get_contents($tmpname));
|
||||||
$tsize = get_thumbnail_size($width, $height);
|
$tsize = get_thumbnail_size($width, $height);
|
||||||
|
|
||||||
$thumb = imagecreatetruecolor($tsize[0], $tsize[1]);
|
$thumb = imagecreatetruecolor($tsize[0], $tsize[1]);
|
||||||
@ -176,16 +175,6 @@ class PixelFileHandler extends DataHandlerExtension {
|
|||||||
return $thumb;
|
return $thumb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function read_file(/*string*/ $fname) {
|
|
||||||
$fp = fopen($fname, "r");
|
|
||||||
if(!$fp) return false;
|
|
||||||
|
|
||||||
$data = fread($fp, filesize($fname));
|
|
||||||
fclose($fp);
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
// }}}
|
// }}}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -15,26 +15,26 @@ $(function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function zoom(zoom) {
|
function zoom(zoom_type) {
|
||||||
var img = $('.shm-main-image');
|
var img = $('.shm-main-image');
|
||||||
if(zoom == "full") {
|
if(zoom_type == "full") {
|
||||||
img.css('max-width', img.data('width') + 'px');
|
img.css('max-width', img.data('width') + 'px');
|
||||||
img.css('max-height', img.data('height') + 'px');
|
img.css('max-height', img.data('height') + 'px');
|
||||||
}
|
}
|
||||||
if(zoom == "width") {
|
if(zoom_type == "width") {
|
||||||
img.css('max-width', '95%');
|
img.css('max-width', '95%');
|
||||||
img.css('max-height', img.data('height') + 'px');
|
img.css('max-height', img.data('height') + 'px');
|
||||||
}
|
}
|
||||||
if(zoom == "height") {
|
if(zoom_type == "height") {
|
||||||
img.css('max-width', img.data('width') + 'px');
|
img.css('max-width', img.data('width') + 'px');
|
||||||
img.css('max-height', (window.innerHeight * 0.95) + 'px');
|
img.css('max-height', (window.innerHeight * 0.95) + 'px');
|
||||||
}
|
}
|
||||||
if(zoom == "both") {
|
if(zoom_type == "both") {
|
||||||
img.css('max-width', '95%');
|
img.css('max-width', '95%');
|
||||||
img.css('max-height', (window.innerHeight * 0.95) + 'px');
|
img.css('max-height', (window.innerHeight * 0.95) + 'px');
|
||||||
}
|
}
|
||||||
|
|
||||||
$(".shm-zoomer").val(zoom);
|
$(".shm-zoomer").val(zoom_type);
|
||||||
|
|
||||||
$.cookie("ui-image-zoom", zoom, {path: '/', expires: 365});
|
$.cookie("ui-image-zoom", zoom_type, {path: '/', expires: 365});
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,9 @@ else {
|
|||||||
<source src='" . make_link("/image/" . $image->id) . "' type='video/webm' />
|
<source src='" . make_link("/image/" . $image->id) . "' type='video/webm' />
|
||||||
</video>";
|
</video>";
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$html = "Video type '$ext' not recognised";
|
||||||
|
}
|
||||||
$page->add_block(new Block("Video", $html, "main", 10));
|
$page->add_block(new Block("Video", $html, "main", 10));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ class ImageAdditionEvent extends Event {
|
|||||||
* this new image.
|
* this new image.
|
||||||
*
|
*
|
||||||
* @sa TagSetEvent
|
* @sa TagSetEvent
|
||||||
* @param $image The new image to add.
|
* @param $image Image The new image to add.
|
||||||
*/
|
*/
|
||||||
public function __construct(Image $image) {
|
public function __construct(Image $image) {
|
||||||
$this->image = $image;
|
$this->image = $image;
|
||||||
@ -46,7 +46,7 @@ class ImageDeletionEvent extends Event {
|
|||||||
* Used by things like tags and comments handlers to
|
* Used by things like tags and comments handlers to
|
||||||
* clean out related rows in their tables.
|
* clean out related rows in their tables.
|
||||||
*
|
*
|
||||||
* @param $image The image being deleted
|
* @param $image Image The image being deleted
|
||||||
*/
|
*/
|
||||||
public function __construct(Image $image) {
|
public function __construct(Image $image) {
|
||||||
$this->image = $image;
|
$this->image = $image;
|
||||||
@ -93,8 +93,9 @@ class ThumbnailGenerationEvent extends Event {
|
|||||||
/**
|
/**
|
||||||
* Request a thumbnail be made for an image object
|
* Request a thumbnail be made for an image object
|
||||||
*
|
*
|
||||||
* @param $hash The unique hash of the image
|
* @param $hash string The unique hash of the image
|
||||||
* @param $type The type of the image
|
* @param $type string The type of the image
|
||||||
|
* @param $force boolean Regenerate the thumbnail even if one already exists
|
||||||
*/
|
*/
|
||||||
public function __construct($hash, $type, $force=false) {
|
public function __construct($hash, $type, $force=false) {
|
||||||
$this->hash = $hash;
|
$this->hash = $hash;
|
||||||
@ -223,9 +224,6 @@ class ImageIO extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onUserPageBuilding(UserPageBuildingEvent $event) {
|
public function onUserPageBuilding(UserPageBuildingEvent $event) {
|
||||||
global $user;
|
|
||||||
global $config;
|
|
||||||
|
|
||||||
$u_id = url_escape($event->display_user->id);
|
$u_id = url_escape($event->display_user->id);
|
||||||
$i_image_count = Image::count_images(array("user_id={$event->display_user->id}"));
|
$i_image_count = Image::count_images(array("user_id={$event->display_user->id}"));
|
||||||
$i_days_old = ((time() - strtotime($event->display_user->join_date)) / 86400) + 1;
|
$i_days_old = ((time() - strtotime($event->display_user->join_date)) / 86400) + 1;
|
||||||
@ -279,7 +277,7 @@ class ImageIO extends Extension {
|
|||||||
|
|
||||||
|
|
||||||
// add image {{{
|
// add image {{{
|
||||||
private function add_image($image) {
|
private function add_image(Image $image) {
|
||||||
global $page, $user, $database, $config;
|
global $page, $user, $database, $config;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -401,11 +399,8 @@ class ImageIO extends Extension {
|
|||||||
|
|
||||||
// replace image {{{
|
// replace image {{{
|
||||||
private function replace_image($id, $image) {
|
private function replace_image($id, $image) {
|
||||||
global $page;
|
|
||||||
global $user;
|
|
||||||
global $database;
|
global $database;
|
||||||
global $config;
|
|
||||||
|
|
||||||
/* Check to make sure the image exists. */
|
/* Check to make sure the image exists. */
|
||||||
$existing = Image::by_id($id);
|
$existing = Image::by_id($id);
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class IndexTheme extends Themelet {
|
class IndexTheme extends Themelet {
|
||||||
|
var $page_number, $total_pages, $search_terms;
|
||||||
|
|
||||||
public function set_page($page_number, $total_pages, $search_terms) {
|
public function set_page($page_number, $total_pages, $search_terms) {
|
||||||
$this->page_number = $page_number;
|
$this->page_number = $page_number;
|
||||||
$this->total_pages = $total_pages;
|
$this->total_pages = $total_pages;
|
||||||
|
@ -62,7 +62,7 @@ class LinkImageTheme extends Themelet {
|
|||||||
$text = "[url=".$url."]".$content."[/url]";
|
$text = "[url=".$url."]".$content."[/url]";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$text = $link." - ".$content;
|
$text = $url." - ".$content;
|
||||||
}
|
}
|
||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ class LiveFeed extends Extension {
|
|||||||
fwrite($fp, "$data\n");
|
fwrite($fp, "$data\n");
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
/* logging errors shouldn't break everything */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ class LogNet extends Extension {
|
|||||||
fwrite($fp, "$data\n");
|
fwrite($fp, "$data\n");
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
/* logging errors shouldn't break everything */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ class NotATag extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function scan(/*array*/ $tags_mixed) {
|
private function scan(/*array*/ $tags_mixed) {
|
||||||
global $config, $database;
|
global $database;
|
||||||
|
|
||||||
$tags = array();
|
$tags = array();
|
||||||
foreach($tags_mixed as $tag) $tags[] = strtolower($tag);
|
foreach($tags_mixed as $tag) $tags[] = strtolower($tag);
|
||||||
@ -53,12 +53,12 @@ class NotATag extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onPageRequest(PageRequestEvent $event) {
|
public function onPageRequest(PageRequestEvent $event) {
|
||||||
global $config, $database, $page, $user;
|
global $database, $page, $user;
|
||||||
|
|
||||||
if($event->page_matches("untag")) {
|
if($event->page_matches("untag")) {
|
||||||
if($user->can("ban_image")) {
|
if($user->can("ban_image")) {
|
||||||
if($event->get_arg(0) == "add") {
|
if($event->get_arg(0) == "add") {
|
||||||
$tag = isset($_POST["tag"]) ? $_POST["tag"] : $image->tag;
|
$tag = $_POST["tag"];
|
||||||
$redirect = isset($_POST['redirect']) ? $_POST['redirect'] : "DNP";
|
$redirect = isset($_POST['redirect']) ? $_POST['redirect'] : "DNP";
|
||||||
|
|
||||||
$database->Execute(
|
$database->Execute(
|
||||||
|
@ -363,6 +363,8 @@ class Notes extends Extension {
|
|||||||
*/
|
*/
|
||||||
private function delete_note()
|
private function delete_note()
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$imageID = int_escape($_POST["image_id"]);
|
$imageID = int_escape($_POST["image_id"]);
|
||||||
$noteID = int_escape($_POST["note_id"]);
|
$noteID = int_escape($_POST["note_id"]);
|
||||||
|
|
||||||
@ -388,7 +390,7 @@ class Notes extends Extension {
|
|||||||
* HERE WE DELETE ALL NOTES FROM IMAGE
|
* HERE WE DELETE ALL NOTES FROM IMAGE
|
||||||
*/
|
*/
|
||||||
private function nuke_notes() {
|
private function nuke_notes() {
|
||||||
global $database;
|
global $database, $user;
|
||||||
$image_id = int_escape($_POST["image_id"]);
|
$image_id = int_escape($_POST["image_id"]);
|
||||||
$database->execute("DELETE FROM notes WHERE image_id = ?", array($image_id));
|
$database->execute("DELETE FROM notes WHERE image_id = ?", array($image_id));
|
||||||
log_info("notes", "Notes deleted from {$image_id} by {$user->name}");
|
log_info("notes", "Notes deleted from {$image_id} by {$user->name}");
|
||||||
@ -400,7 +402,7 @@ class Notes extends Extension {
|
|||||||
* HERE WE DELETE ALL REQUESTS FOR IMAGE
|
* HERE WE DELETE ALL REQUESTS FOR IMAGE
|
||||||
*/
|
*/
|
||||||
private function nuke_requests() {
|
private function nuke_requests() {
|
||||||
global $database;
|
global $database, $user;
|
||||||
$image_id = int_escape($_POST["image_id"]);
|
$image_id = int_escape($_POST["image_id"]);
|
||||||
|
|
||||||
$database->execute("DELETE FROM note_request WHERE image_id = ?", array($image_id));
|
$database->execute("DELETE FROM note_request WHERE image_id = ?", array($image_id));
|
||||||
|
@ -42,7 +42,7 @@ class NotesTheme extends Themelet {
|
|||||||
$page->add_block(new Block("Search Note", $html, "main", 10));
|
$page->add_block(new Block("Search Note", $html, "main", 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check action POST on form
|
// check action POST on form
|
||||||
public function display_note_system(Page $page, $image_id, $recovered_notes, $adminOptions)
|
public function display_note_system(Page $page, $image_id, $recovered_notes, $adminOptions)
|
||||||
{
|
{
|
||||||
$to_json = array();
|
$to_json = array();
|
||||||
@ -169,94 +169,66 @@ class NotesTheme extends Themelet {
|
|||||||
$page->set_heading("Note Requests");
|
$page->set_heading("Note Requests");
|
||||||
$page->add_block(new Block("Note Requests", $pool_images, "main", 20));
|
$page->add_block(new Block("Note Requests", $pool_images, "main", 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function get_history($histories) {
|
||||||
|
global $user;
|
||||||
|
|
||||||
|
$html = "<table id='poolsList' class='zebra'>".
|
||||||
|
"<thead><tr>".
|
||||||
|
"<th>Image</th>".
|
||||||
|
"<th>Note</th>".
|
||||||
|
"<th>Body</th>".
|
||||||
|
"<th>Updater</th>".
|
||||||
|
"<th>Date</th>";
|
||||||
|
|
||||||
|
if(!$user->is_anonymous()){
|
||||||
|
$html .= "<th>Action</th>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= "</tr></thead>".
|
||||||
|
"<tbody>";
|
||||||
|
|
||||||
|
foreach($histories as $history) {
|
||||||
|
$image_link = "<a href='".make_link("post/view/".$history['image_id'])."'>".$history['image_id']."</a>";
|
||||||
|
$history_link = "<a href='".make_link("note/history/".$history['note_id'])."'>".$history['note_id'].".".$history['review_id']."</a>";
|
||||||
|
$user_link = "<a href='".make_link("user/".$history['user_name'])."'>".$history['user_name']."</a>";
|
||||||
|
$revert_link = "<a href='".make_link("note/revert/".$history['note_id']."/".$history['review_id'])."'>Revert</a>";
|
||||||
|
|
||||||
|
$html .= "<tr>".
|
||||||
|
"<td>".$image_link."</td>".
|
||||||
|
"<td>".$history_link."</td>".
|
||||||
|
"<td style='text-align:left;'>".$history['note']."</td>".
|
||||||
|
"<td>".$user_link."</td>".
|
||||||
|
"<td>".autodate($history['date'])."</td>";
|
||||||
|
|
||||||
|
if(!$user->is_anonymous()){
|
||||||
|
$html .= "<td>".$revert_link."</td>";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= "</tr></tbody></table>";
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
public function display_histories($histories, $pageNumber, $totalPages) {
|
public function display_histories($histories, $pageNumber, $totalPages) {
|
||||||
global $user, $page;
|
global $page;
|
||||||
|
|
||||||
$html = "<table id='poolsList' class='zebra'>".
|
$html = $this->get_history($histories);
|
||||||
"<thead><tr>".
|
|
||||||
"<th>Image</th>".
|
$page->set_title("Note Updates");
|
||||||
"<th>Note</th>".
|
$page->set_heading("Note Updates");
|
||||||
"<th>Body</th>".
|
$page->add_block(new Block("Note Updates", $html, "main", 10));
|
||||||
"<th>Updater</th>".
|
|
||||||
"<th>Date</th>";
|
$this->display_paginator($page, "note/updated", null, $pageNumber, $totalPages);
|
||||||
|
|
||||||
|
|
||||||
if(!$user->is_anonymous()){
|
|
||||||
$html .= "<th>Action</th>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= "</tr></thead>".
|
|
||||||
"<tbody>";
|
|
||||||
|
|
||||||
foreach($histories as $history) {
|
|
||||||
$image_link = "<a href='".make_link("post/view/".$history['image_id'])."'>".$history['image_id']."</a>";
|
|
||||||
$history_link = "<a href='".make_link("note/history/".$history['note_id'])."'>".$history['note_id'].".".$history['review_id']."</a>";
|
|
||||||
$user_link = "<a href='".make_link("user/".$history['user_name'])."'>".$history['user_name']."</a>";
|
|
||||||
$revert_link = "<a href='".make_link("note/revert/".$history['note_id']."/".$history['review_id'])."'>Revert</a>";
|
|
||||||
|
|
||||||
$html .= "<tr>".
|
|
||||||
"<td>".$image_link."</td>".
|
|
||||||
"<td>".$history_link."</td>".
|
|
||||||
"<td style='text-align:left;'>".$history['note']."</td>".
|
|
||||||
"<td>".$user_link."</td>".
|
|
||||||
"<td>".autodate($history['date'])."</td>";
|
|
||||||
|
|
||||||
if(!$user->is_anonymous()){
|
|
||||||
$html .= "<td>".$revert_link."</td>";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= "</tr></tbody></table>";
|
|
||||||
|
|
||||||
$page->set_title("Note Updates");
|
|
||||||
$page->set_heading("Note Updates");
|
|
||||||
$page->add_block(new Block("Note Updates", $html, "main", 10));
|
|
||||||
|
|
||||||
$this->display_paginator($page, "note/updated", null, $pageNumber, $totalPages);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function display_history($histories, $pageNumber, $totalPages) {
|
public function display_history($histories, $pageNumber, $totalPages) {
|
||||||
global $user, $page;
|
global $page;
|
||||||
|
|
||||||
$html = "<table id='poolsList' class='zebra'>".
|
$html = $this->get_history($histories);
|
||||||
"<thead><tr>".
|
|
||||||
"<th>Image</th>".
|
|
||||||
"<th>Note</th>".
|
|
||||||
"<th>Body</th>".
|
|
||||||
"<th>Updater</th>".
|
|
||||||
"<th>Date</th>";
|
|
||||||
|
|
||||||
|
|
||||||
if(!$user->is_anonymous()){
|
|
||||||
$html .= "<th>Action</th>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= "</tr></thead>".
|
|
||||||
"<tbody>";
|
|
||||||
|
|
||||||
foreach($histories as $history) {
|
|
||||||
$image_link = "<a href='".make_link("post/view/".$history['image_id'])."'>".$history['image_id']."</a>";
|
|
||||||
$history_link = "<a href='".make_link("note/history/".$history['note_id'])."'>".$history['note_id'].".".$history['review_id']."</a>";
|
|
||||||
$user_link = "<a href='".make_link("user/".$history['user_name'])."'>".$history['user_name']."</a>";
|
|
||||||
$revert_link = "<a href='".make_link("note/revert/".$history['note_id']."/".$history['review_id'])."'>Revert</a>";
|
|
||||||
|
|
||||||
$html .= "<tr>".
|
|
||||||
"<td>".$image_link."</td>".
|
|
||||||
"<td>".$history_link."</td>".
|
|
||||||
"<td style='text-align:left;'>".$history['note']."</td>".
|
|
||||||
"<td>".$user_link."</td>".
|
|
||||||
"<td>".autodate($history['date'])."</td>";
|
|
||||||
|
|
||||||
if(!$user->is_anonymous()){
|
|
||||||
$html .= "<td>".$revert_link."</td>";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= "</tr></tbody></table>";
|
|
||||||
|
|
||||||
$page->set_title("Note History");
|
$page->set_title("Note History");
|
||||||
$page->set_heading("Note History");
|
$page->set_heading("Note History");
|
||||||
$page->add_block(new Block("Note History", $html, "main", 10));
|
$page->add_block(new Block("Note History", $html, "main", 10));
|
||||||
|
@ -28,6 +28,7 @@ class Oekaki extends Extension {
|
|||||||
throw new UploadException("File has no extension");
|
throw new UploadException("File has no extension");
|
||||||
}
|
}
|
||||||
log_info("oekaki", "Processing file [{$pathinfo['filename']}]");
|
log_info("oekaki", "Processing file [{$pathinfo['filename']}]");
|
||||||
|
$metadata = array();
|
||||||
$metadata['filename'] = 'oekaki.png';
|
$metadata['filename'] = 'oekaki.png';
|
||||||
$metadata['extension'] = $pathinfo['extension'];
|
$metadata['extension'] = $pathinfo['extension'];
|
||||||
$metadata['tags'] = 'oekaki tagme';
|
$metadata['tags'] = 'oekaki tagme';
|
||||||
|
Loading…
Reference in New Issue
Block a user