Patched serendipity_displayImageList() to only sync images when $limit_path is NULL and $manage is false.
Bumped version to beta3 for better version management on plugins.
This commit is contained in:
parent
52f60f98c5
commit
1d5ea62e64
@ -1356,125 +1356,125 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
|
||||
}
|
||||
$start = ($page-1) * $perPage;
|
||||
|
||||
## SYNCH START ##
|
||||
$aExclude = array("CVS" => true, ".svn" => true);
|
||||
serendipity_plugin_api::hook_event('backend_media_path_exclude_directories', $aExclude);
|
||||
$paths = array();
|
||||
$aFilesOnDisk = array();
|
||||
if ($manage && $limit_path == NULL) {
|
||||
## SYNCH START ##
|
||||
$aExclude = array("CVS" => true, ".svn" => true);
|
||||
serendipity_plugin_api::hook_event('backend_media_path_exclude_directories', $aExclude);
|
||||
$paths = array();
|
||||
$aFilesOnDisk = array();
|
||||
|
||||
$aResultSet = serendipity_traversePath(
|
||||
$serendipity['serendipityPath'] . $serendipity['uploadPath']. $limit_path,
|
||||
'',
|
||||
false,
|
||||
NULL,
|
||||
1,
|
||||
NULL,
|
||||
FALSE,
|
||||
$aExclude
|
||||
);
|
||||
$aResultSet = serendipity_traversePath(
|
||||
$serendipity['serendipityPath'] . $serendipity['uploadPath']. $limit_path,
|
||||
'',
|
||||
false,
|
||||
NULL,
|
||||
1,
|
||||
NULL,
|
||||
FALSE,
|
||||
$aExclude
|
||||
);
|
||||
foreach ($aResultSet AS $sKey => $sFile) {
|
||||
if ($sFile['directory']) {
|
||||
if ($debug) echo "{$sFile['relpath']} is a directory.<br />";
|
||||
array_push($paths, $sFile);
|
||||
} else {
|
||||
if ($debug) echo "{$sFile['relpath']} is a file.<br />";
|
||||
// Store the file in our array, remove any ending slashes
|
||||
$aFilesOnDisk[$sFile['relpath']] = 1;
|
||||
}
|
||||
unset($aResultSet[$sKey]);
|
||||
}
|
||||
|
||||
foreach ($aResultSet AS $sKey => $sFile) {
|
||||
if ($sFile['directory']) {
|
||||
if ($debug) echo "{$sFile['relpath']} is a directory.<br />";
|
||||
array_push($paths, $sFile);
|
||||
} else {
|
||||
if ($debug) echo "{$sFile['relpath']} is a file.<br />";
|
||||
// Store the file in our array, remove any ending slashes
|
||||
$aFilesOnDisk[$sFile['relpath']] = 1;
|
||||
}
|
||||
unset($aResultSet[$sKey]);
|
||||
}
|
||||
usort($paths, 'serendipity_sortPath');
|
||||
|
||||
usort($paths, 'serendipity_sortPath');
|
||||
if ($debug) echo "<p>Got files: <pre>" . print_r($aFilesOnDisk, true) . "</pre></p>";
|
||||
$serendipity['current_image_hash'] = md5(serialize($aFilesOnDisk));
|
||||
|
||||
if ($debug) echo "<p>Got files: <pre>" . print_r($aFilesOnDisk, true) . "</pre></p>";
|
||||
$serendipity['current_image_hash'] = md5(serialize($aFilesOnDisk));
|
||||
$nTimeStart = microtime_float();
|
||||
// MTG 21/01/06: request all images from the database, delete any which don't exist
|
||||
// on the filesystem, and mark off files from the file list which are already
|
||||
// in the database
|
||||
|
||||
$nTimeStart = microtime_float();
|
||||
// MTG 21/01/06: request all images from the database, delete any which don't exist
|
||||
// on the filesystem, and mark off files from the file list which are already
|
||||
// in the database
|
||||
$nCount = 0;
|
||||
if ($serendipity['onTheFlySynch'] && serendipity_checkPermission('adminImagesSync') && $serendipity['current_image_hash'] != $serendipity['last_image_hash']) {
|
||||
$aResultSet = serendipity_db_query("SELECT path, name, extension, thumbnail_name, id
|
||||
FROM {$serendipity['dbPrefix']}images", false, 'assoc');
|
||||
if ($debug) echo "<p>Got images: <pre>" . print_r($aResultSet, true) . "</pre></p>";
|
||||
if (is_array($aResultSet)) {
|
||||
foreach ($aResultSet AS $sKey => $sFile) {
|
||||
serendipity_plugin_api::hook_event('backend_thumbnail_filename_select', $sFile);
|
||||
$sThumbNailFile = '';
|
||||
if (isset($sFile['thumbnail_filename'])) {
|
||||
$sThumbNailFile = $sFile['thumbnail_filename'];
|
||||
} else {
|
||||
$sThumbNailFile = $sFile['path'] . $sFile['name'] . '.' . $sFile['thumbnail_name'] . '.' . $sFile['extension'];
|
||||
}
|
||||
|
||||
$nCount = 0;
|
||||
if ($serendipity['onTheFlySynch'] && serendipity_checkPermission('adminImagesSync') && $serendipity['current_image_hash'] != $serendipity['last_image_hash']) {
|
||||
$aResultSet = serendipity_db_query("SELECT path, name, extension, thumbnail_name, id
|
||||
FROM {$serendipity['dbPrefix']}images", false, 'assoc');
|
||||
if ($debug) echo "<p>Got images: <pre>" . print_r($aResultSet, true) . "</pre></p>";
|
||||
if (is_array($aResultSet)) {
|
||||
foreach ($aResultSet AS $sKey => $sFile) {
|
||||
serendipity_plugin_api::hook_event('backend_thumbnail_filename_select', $sFile);
|
||||
$sThumbNailFile = '';
|
||||
if (isset($sFile['thumbnail_filename'])) {
|
||||
$sThumbNailFile = $sFile['thumbnail_filename'];
|
||||
} else {
|
||||
$sThumbNailFile = $sFile['path'] . $sFile['name'] . '.' . $sFile['thumbnail_name'] . '.' . $sFile['extension'];
|
||||
}
|
||||
$sFileName = $sFile['path'] . $sFile['name'] . '.' . $sFile['extension'];
|
||||
if ($debug) echo "<p>File name is $sFileName,<br />thumbnail is $sThumbNailFile</p>";
|
||||
unset($aResultSet[$sKey]);
|
||||
|
||||
$sFileName = $sFile['path'] . $sFile['name'] . '.' . $sFile['extension'];
|
||||
if ($debug) echo "<p>File name is $sFileName,<br />thumbnail is $sThumbNailFile</p>";
|
||||
unset($aResultSet[$sKey]);
|
||||
if (isset($aFilesOnDisk[$sFileName])){
|
||||
unset($aFilesOnDisk[$sFileName]);
|
||||
} else {
|
||||
if ($debug) "Deleting Image {$sFile['id']}<br />\n";
|
||||
serendipity_deleteImage($sFile['id']);
|
||||
++$nCount;
|
||||
}
|
||||
unset($aFilesOnDisk[$sThumbNailFile]);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($aFilesOnDisk[$sFileName])){
|
||||
unset($aFilesOnDisk[$sFileName]);
|
||||
} else {
|
||||
if ($debug) "Deleting Image {$sFile['id']}<br />\n";
|
||||
serendipity_deleteImage($sFile['id']);
|
||||
++$nCount;
|
||||
}
|
||||
if ($nCount > 0){
|
||||
if ($debug) echo "<p>Cleaned up ".$nCount." database entries</p>";
|
||||
}
|
||||
|
||||
unset($aFilesOnDisk[$sThumbNailFile]);
|
||||
}
|
||||
}
|
||||
serendipity_set_config_var('last_image_hash', $serendipity['current_image_hash'], 0);
|
||||
$aUnmatchedOnDisk = array_keys($aFilesOnDisk);
|
||||
if ($debug) echo "<p>Got unmatched files: <pre>" . print_r($aUnmatchedOnDisk, true) . "</pre></p>";
|
||||
$nCount = 0;
|
||||
foreach ($aUnmatchedOnDisk AS $sFile) {
|
||||
if (preg_match('@\.' . $serendipity['thumbSuffix'] . '\.@', $sFile)) {
|
||||
if ($debug) echo "<p>Skipping thumbnailed file $sFile</p>";
|
||||
continue;
|
||||
} else {
|
||||
if ($debug) echo "<p>Checking $sFile</p>";
|
||||
}
|
||||
|
||||
if ($nCount > 0){
|
||||
if ($debug) echo "<p>Cleaned up ".$nCount." database entries</p>";
|
||||
}
|
||||
// MTG: 21/01/06: put files which have just 'turned up' into the database
|
||||
$aImageData = serendipity_getImageData($sFile);
|
||||
if (serendipity_isImage($aImageData)) {
|
||||
$nPos = strrpos($sFile, "/");
|
||||
if (is_bool($nPos) && !$nPos) {
|
||||
$sFileName = $sFile;
|
||||
$sDirectory = "";
|
||||
} else {
|
||||
++$nPos;
|
||||
$sFileName = substr($sFile, $nPos);
|
||||
$sDirectory = substr($sFile, 0, $nPos);
|
||||
}
|
||||
if ($debug) echo "<p>Inserting image $sFileName from $sDirectory <pre>" . print_r($aImageData, true) . "</pre> into database</p>";
|
||||
# TODO: Check if the thumbnail generation goes fine with Marty's code
|
||||
serendipity_makeThumbnail($sFileName, $sDirectory);
|
||||
serendipity_insertImageInDatabase($sFileName, $sDirectory);
|
||||
++$nCount;
|
||||
}
|
||||
}
|
||||
|
||||
serendipity_set_config_var('last_image_hash', $serendipity['current_image_hash'], 0);
|
||||
$aUnmatchedOnDisk = array_keys($aFilesOnDisk);
|
||||
if ($debug) echo "<p>Got unmatched files: <pre>" . print_r($aUnmatchedOnDisk, true) . "</pre></p>";
|
||||
$nCount = 0;
|
||||
foreach ($aUnmatchedOnDisk AS $sFile) {
|
||||
if (preg_match('@\.' . $serendipity['thumbSuffix'] . '\.@', $sFile)) {
|
||||
if ($debug) echo "<p>Skipping thumbnailed file $sFile</p>";
|
||||
continue;
|
||||
} else {
|
||||
if ($debug) echo "<p>Checking $sFile</p>";
|
||||
}
|
||||
if ($nCount > 0) {
|
||||
if ($debug) echo "<p>Inserted ".$nCount." images into the database</p>";
|
||||
}
|
||||
} else {
|
||||
if ($debug) echo "<p>Media Gallery database is up to date</p>";
|
||||
}
|
||||
|
||||
// MTG: 21/01/06: put files which have just 'turned up' into the database
|
||||
$aImageData = serendipity_getImageData($sFile);
|
||||
if (serendipity_isImage($aImageData)) {
|
||||
$nPos = strrpos($sFile, "/");
|
||||
if (is_bool($nPos) && !$nPos) {
|
||||
$sFileName = $sFile;
|
||||
$sDirectory = "";
|
||||
} else {
|
||||
++$nPos;
|
||||
$sFileName = substr($sFile, $nPos);
|
||||
$sDirectory = substr($sFile, 0, $nPos);
|
||||
}
|
||||
if ($debug) echo "<p>Inserting image $sFileName from $sDirectory <pre>" . print_r($aImageData, true) . "</pre> into database</p>";
|
||||
# TODO: Check if the thumbnail generation goes fine with Marty's code
|
||||
serendipity_makeThumbnail($sFileName, $sDirectory);
|
||||
serendipity_insertImageInDatabase($sFileName, $sDirectory);
|
||||
++$nCount;
|
||||
}
|
||||
}
|
||||
|
||||
if ($nCount > 0) {
|
||||
if ($debug) echo "<p>Inserted ".$nCount." images into the database</p>";
|
||||
}
|
||||
} else {
|
||||
if ($debug) echo "<p>Media Gallery database is up to date</p>";
|
||||
}
|
||||
|
||||
/*
|
||||
$nTimeEnd = microtime_float ( );
|
||||
$nDifference = $nTimeEnd - $nTimeStart;
|
||||
echo "<p> total time taken was " . $nDifference . "</p>";
|
||||
*/
|
||||
## SYNCH FINISHED ##
|
||||
/*
|
||||
$nTimeEnd = microtime_float ( );
|
||||
$nDifference = $nTimeEnd - $nTimeStart;
|
||||
echo "<p> total time taken was " . $nDifference . "</p>";
|
||||
*/
|
||||
## SYNCH FINISHED ##
|
||||
}
|
||||
|
||||
## Aply ACL afterwards:
|
||||
serendipity_directoryACL($paths, 'read');
|
||||
@ -3294,4 +3294,4 @@ function &serendipity_getMediaPaths() {
|
||||
usort($paths, 'serendipity_sortPath');
|
||||
|
||||
return $paths;
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ if (IS_installed === true && !defined('IN_serendipity')) {
|
||||
include(S9Y_INCLUDE_PATH . 'include/compat.inc.php');
|
||||
|
||||
// The version string
|
||||
$serendipity['version'] = '1.1-beta2';
|
||||
$serendipity['version'] = '1.1-beta3';
|
||||
|
||||
// Setting this to 'false' will enable debugging output. All alpa/beta/cvs snapshot versions will emit debug information by default. To increase the debug level (to enable Smarty debugging), set this flag to 'debug'.
|
||||
$serendipity['production'] = (preg_match('@\-(alpha|beta|cvs)@', $serendipity['version']) ? false : true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user