Mercurial > hg > fapweb
changeset 896:52737f6192bb
More work on preview handling.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 26 Nov 2014 21:02:36 +0200 |
parents | 878e3bd6f385 |
children | d8fa2aecadcc |
files | admajax.php msite.inc.php msitegen.inc.php |
diffstat | 3 files changed, 44 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/admajax.php Wed Nov 26 20:33:07 2014 +0200 +++ b/admajax.php Wed Nov 26 21:02:36 2014 +0200 @@ -18,6 +18,8 @@ function stValidateRequestCompoData($full, $ctype) { + global $previewTypeList; + $res = TRUE; stChkRequestItemFail("name", $fake, $res, @@ -44,7 +46,7 @@ stChkRequestItemFail("preview_type", $fake, $res, array(CHK_TYPE, VT_INT, "Invalid data."), - array(CHK_RANGE, VT_INT, array(EPREV_NONE, EPREV_AUDIO), "Invalid preview type value.")); + array(CHK_ARRAY, $previewTypeList, "Invalid preview type value.")); stChkRequestItemFail("cpath", $fake, $res, array(CHK_LTEQ, VT_STR, SET_LEN_COMPO_PATH, "Compo file path too long (%1 chars, must be less than %2)."));
--- a/msite.inc.php Wed Nov 26 20:33:07 2014 +0200 +++ b/msite.inc.php Wed Nov 26 21:02:36 2014 +0200 @@ -43,29 +43,28 @@ // -// Entry preview type (value) -// -define("EPREV_NONE", 0); // No preview -define("EPREV_IMAGE", 1); // Preview is image (PNG, JPEG) -define("EPREV_AUDIO", 2); // Preview is audio (Vorbis, MP3) - -$previewTypeList = array( - EPREV_NONE => array("No previews" , "Default"), - EPREV_IMAGE => array("Image file" , "Image"), - EPREV_AUDIO => array("Audio file" , "Audio"), -); - -// // File format classes // -define("EFILE_UNKNOWN", 0); +define("EFILE_NONE", 0); define("EFILE_IMAGE", 1); -define("EFILE_AUDIO", 2); +define("EFILE_AUDIO", 2); // Also preview types + define("EFILE_VIDEO", 3); define("EFILE_TEXT", 4); define("EFILE_BINARY", 5); define("EFILE_ARCHIVE", 6); + +// +// Entry preview type (value) +// +$previewTypeList = array( + EFILE_NONE => array("No previews" , "Default"), + EFILE_IMAGE => array("Image file" , "Image"), + EFILE_AUDIO => array("Audio file" , "Audio"), +); + + // // Entry flags (bitfield) // @@ -139,21 +138,21 @@ $fileTypeData = array( "PNG" => array( "class" => EFILE_IMAGE, - "type" => EPREV_IMAGE, + "type" => EFILE_IMAGE, "mime" => "image/png", "fext" => "png", "test" => "^PNG image data", ), "JPEG" => array( "class" => EFILE_IMAGE, - "type" => EPREV_IMAGE, + "type" => EFILE_IMAGE, "mime" => "image/jpeg", "fext" => "jpg", "test" => "^JPEG image data", ), "GIF" => array( "class" => EFILE_IMAGE, - "type" => EPREV_IMAGE, + "type" => EFILE_IMAGE, "mime" => "image/gif", "fext" => "gif", "test" => "^GIF image data", @@ -161,27 +160,27 @@ "MP3" => array( "class" => EFILE_AUDIO, - "type" => EPREV_AUDIO, + "type" => EFILE_AUDIO, "mime" => "audio/mpeg", "fext" => "mp3", "test" => "MPEG ADTS, layer III", ), "OggVorbis" => array( "class" => EFILE_AUDIO, - "type" => EPREV_AUDIO, + "type" => EFILE_AUDIO, "mime" => "audio/ogg; codecs=vorbis", "fext" => "ogg", "test" => "Ogg data, Vorbis audio", ), "FLAC" => array( "class" => EFILE_AUDIO, - "type" => EPREV_AUDIO, + "type" => EFILE_AUDIO, "mime" => "audio/x-flac", "fext" => "flac", ), "WAV" => array( "class" => EFILE_AUDIO, - "type" => EPREV_AUDIO, + "type" => EFILE_AUDIO, "mime" => "audio/x-wav", "fext" => "wav", ), @@ -910,7 +909,7 @@ { global $fileTypeData; if (!isset($fileTypeData[$type])) - return stLogError("Invalid file type: ".$type); + die("Invalid file type: ".$type); $fileBase = sprintf("%03d.%s", $entry["id"], $fileTypeData[$type]["fext"]); $fileName = stMakePath(FALSE, TRUE, array($previewPath, $compo["cpath"], $addPath, $fileBase)); @@ -928,6 +927,8 @@ function stGetPreviewFileData($compo, $entry, &$pdata) { + global $fileTypeData; + if ($compo === false || $entry === false) return FALSE; @@ -936,12 +937,21 @@ $pdata = array( "type" => $compo["preview_type"], "valid" => TRUE, + "exists" => 0, "files" => array(), ); + if (($efile = stFetchSQL("SELECT * FROM files WHERE deleted=0 AND id=".$entry["preview_id"])) !== false) + { + if (isset($fileTypeData[$efile["filetype"]]["type"])) + $pdata["type"] = $fileTypeData[$efile["filetype"]]["type"]; + } + else + $pdata["valid"] = false; + switch ($pdata["type"]) { - case EPREV_IMAGE: + case EFILE_IMAGE: $pdata["files"]["image"] = stGetEntryPreviewFile( $entry, $compo, $previewPath, $previewURL, stGetSetting("previewImageType"), ""); @@ -952,7 +962,7 @@ stGetSetting("thumbnailSubDir")); break; - case EPREV_AUDIO: + case EFILE_AUDIO: foreach (stGetSetting("sampleTypes") as $type => $fdata) { $pdata["files"][$type] = stGetEntryPreviewFile( @@ -965,9 +975,7 @@ return FALSE; } - if (($efile = stFetchSQL("SELECT * FROM files WHERE deleted=0 AND id=".$entry["preview_id"])) === false) - $pdata["valid"] = FALSE; - else + if ($efile !== false) { foreach ($pdata["files"] as $pkey => $pfile) { @@ -990,7 +998,7 @@ switch ($pdata["type"]) { - case EPREV_IMAGE: + case EFILE_IMAGE: if ($pdata["valid"] && $pdata["exists"] >= 2) { echo @@ -1006,7 +1014,7 @@ } break; - case EPREV_AUDIO: + case EFILE_AUDIO: if ($pdata["valid"] && $pdata["exists"] > 0) { echo "<audio controls preload=\"none\" class=\"audioPreview\">"; @@ -1131,7 +1139,7 @@ // Check basics if (!stChkRequestItem("type", $uploadType, array(CHK_TYPE, VT_STR, "Invalid upload type."), - array(CHK_ARRAY, VT_STR, array("entry", "preview"), "Invalid upload type.")) + array(CHK_ARRAY, array("entry", "preview"), "Invalid upload type.")) || !stChkRequestItem("entry_id", $entryID, array(CHK_TYPE, VT_INT, "Invalid entry ID.")))
--- a/msitegen.inc.php Wed Nov 26 20:33:07 2014 +0200 +++ b/msitegen.inc.php Wed Nov 26 21:02:36 2014 +0200 @@ -476,8 +476,8 @@ break; case CHK_ARRAY: - if (!in_array($data, $check[2], TRUE)) - return stErrorStrF($check[3], $data); + if (!isset($check[1][$data])) + return stErrorStrF($check[2], $data); break; case CHK_CUSTOM: