PHP8 compat fixes for media library
This commit is contained in:
@ -21,6 +21,13 @@ if (!is_array($serendipity['POST']) && $serendipity['GET']['adminAction'] == 'mu
|
|||||||
unset($serendipity['GET']['adminAction']);
|
unset($serendipity['GET']['adminAction']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($serendipity['GET']['toggle_dir']) && empty($serendipity['COOKIE']['serendipity_toggle_dir'])) {
|
||||||
|
$serendipity['GET']['toggle_dir'] = 'no'; // default
|
||||||
|
}
|
||||||
|
if (!empty($serendipity['COOKIE']['serendipity_toggle_dir'])) {
|
||||||
|
serendipity_restoreVar($serendipity['COOKIE']['serendipity_toggle_dir'], $serendipity['GET']['toggle_dir']);
|
||||||
|
}
|
||||||
|
|
||||||
$messages = array();
|
$messages = array();
|
||||||
|
|
||||||
// submitted media_upload.tpl: check for empty file field and redirect back to media_upload
|
// submitted media_upload.tpl: check for empty file field and redirect back to media_upload
|
||||||
|
@ -169,7 +169,7 @@ function serendipity_fetchImagesFromDatabase($start=0, $limit=0, &$total=null, $
|
|||||||
serendipity_plugin_api::hook_event('fetch_images_sql', $cond);
|
serendipity_plugin_api::hook_event('fetch_images_sql', $cond);
|
||||||
serendipity_ACL_SQL($cond, false, 'directory');
|
serendipity_ACL_SQL($cond, false, 'directory');
|
||||||
|
|
||||||
if ($cond['joinparts']['keywords']) {
|
if ($cond['joinparts']['keywords'] ?? false) {
|
||||||
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS mk
|
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS mk
|
||||||
ON (mk.mediaid = i.id AND mk.property_group = 'base_keyword')\n";
|
ON (mk.mediaid = i.id AND mk.property_group = 'base_keyword')\n";
|
||||||
}
|
}
|
||||||
@ -183,17 +183,17 @@ function serendipity_fetchImagesFromDatabase($start=0, $limit=0, &$total=null, $
|
|||||||
$cond['orderkey'] = "''";
|
$cond['orderkey'] = "''";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cond['joinparts']['properties']) {
|
if ($cond['joinparts']['properties'] ?? false) {
|
||||||
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS bp
|
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS bp
|
||||||
ON (bp.mediaid = i.id AND bp.property_group = 'base_property' AND bp.property = '{$cond['orderproperty']}')\n";
|
ON (bp.mediaid = i.id AND bp.property_group = 'base_property' AND bp.property = '{$cond['orderproperty']}')\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cond['joinparts']['filterproperties']) {
|
if ($cond['joinparts']['filterproperties'] ?? false) {
|
||||||
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS bp2
|
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS bp2
|
||||||
ON (bp2.mediaid = i.id AND bp2.property_group = 'base_property')\n";
|
ON (bp2.mediaid = i.id AND bp2.property_group = 'base_property')\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cond['joinparts']['hiddenproperties']) {
|
if ($cond['joinparts']['hiddenproperties'] ?? false) {
|
||||||
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS hp
|
$cond['joins'] .= "\n LEFT OUTER JOIN {$serendipity['dbPrefix']}mediaproperties AS hp
|
||||||
ON (hp.mediaid = i.id AND hp.property_group = 'base_hidden')\n";
|
ON (hp.mediaid = i.id AND hp.property_group = 'base_hidden')\n";
|
||||||
}
|
}
|
||||||
@ -1570,7 +1570,7 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
|
|||||||
echo "<p>Image Sync Right: " . serendipity_checkPermission('adminImagesSync') . " Onthefly Sync: " . $serendipity['onTheFlySynch'] . " Hash: " . $serendipity['current_image_hash'] . "!=" . $serendipity['last_image_hash']. "</p>";
|
echo "<p>Image Sync Right: " . serendipity_checkPermission('adminImagesSync') . " Onthefly Sync: " . $serendipity['onTheFlySynch'] . " Hash: " . $serendipity['current_image_hash'] . "!=" . $serendipity['last_image_hash']. "</p>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($serendipity['onTheFlySynch'] && serendipity_checkPermission('adminImagesSync') && ($debug || ($serendipity['current_image_hash'] != $serendipity['last_image_hash']))) {
|
if ($serendipity['onTheFlySynch'] && serendipity_checkPermission('adminImagesSync') && ($debug || ($serendipity['current_image_hash'] != ($serendipity['last_image_hash'] ?? null)))) {
|
||||||
$aResultSet = serendipity_db_query("SELECT path, name, extension, thumbnail_name, id
|
$aResultSet = serendipity_db_query("SELECT path, name, extension, thumbnail_name, id
|
||||||
FROM {$serendipity['dbPrefix']}images", false, 'assoc');
|
FROM {$serendipity['dbPrefix']}images", false, 'assoc');
|
||||||
|
|
||||||
@ -1709,7 +1709,7 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
|
|||||||
}
|
}
|
||||||
|
|
||||||
$dprops = $keywords = array();
|
$dprops = $keywords = array();
|
||||||
if ($serendipity['parseMediaOverview']) {
|
if ($serendipity['parseMediaOverview'] ?? false) {
|
||||||
$ids = array();
|
$ids = array();
|
||||||
foreach ($serendipity['imageList'] AS $k => $file) {
|
foreach ($serendipity['imageList'] AS $k => $file) {
|
||||||
$ids[] = $file['id'];
|
$ids[] = $file['id'];
|
||||||
@ -1836,6 +1836,10 @@ function serendipity_isImage(&$file, $strict = false, $allowed = 'image/') {
|
|||||||
|
|
||||||
$file['displaymime'] = $file['mime'];
|
$file['displaymime'] = $file['mime'];
|
||||||
|
|
||||||
|
if (! isset($file['imgsrc'])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Strip HTTP path out of imgsrc
|
// Strip HTTP path out of imgsrc
|
||||||
$file['location'] = $serendipity['serendipityPath'] . preg_replace('@^(' . preg_quote($serendipity['serendipityHTTPPath']) . ')@i', '', $file['imgsrc']);
|
$file['location'] = $serendipity['serendipityPath'] . preg_replace('@^(' . preg_quote($serendipity['serendipityHTTPPath']) . ')@i', '', $file['imgsrc']);
|
||||||
|
|
||||||
@ -1952,7 +1956,7 @@ function serendipity_traversePath($basedir, $dir='', $onlyDirs = true, $pattern
|
|||||||
global $serendipity;
|
global $serendipity;
|
||||||
|
|
||||||
if ($serendipity['useInternalCache']) {
|
if ($serendipity['useInternalCache']) {
|
||||||
$key = md5($basedir . $dir . $onlyDirs . $pattern . $depth . $max_depth . $apply_ACL . $aExcludeDirs . $serendipity['serendipityUser']);
|
$key = md5($basedir . $dir . $onlyDirs . $pattern . $depth . $max_depth . $apply_ACL . serialize($aExcludeDirs) . $serendipity['serendipityUser']);
|
||||||
$files = serendipity_getCacheItem($key);
|
$files = serendipity_getCacheItem($key);
|
||||||
if ($files && $files !== false) {
|
if ($files && $files !== false) {
|
||||||
return unserialize($files);
|
return unserialize($files);
|
||||||
@ -2139,13 +2143,14 @@ function serendipity_getimagesize($file, $ft_mime = '', $suf = '') {
|
|||||||
function serendipity_getImageFields() {
|
function serendipity_getImageFields() {
|
||||||
global $serendipity;
|
global $serendipity;
|
||||||
|
|
||||||
if ($serendipity['simpleFilters'] !== false) {
|
if (($serendipity['simpleFilters'] ?? true) !== false) {
|
||||||
$x = array(
|
$x = array(
|
||||||
'i.date' => array('desc' => SORT_ORDER_DATE,
|
'i.date' => array('desc' => SORT_ORDER_DATE,
|
||||||
'type' => 'date'
|
'type' => 'date'
|
||||||
),
|
),
|
||||||
|
|
||||||
'i.name' => array('desc' => SORT_ORDER_NAME
|
'i.name' => array('desc' => SORT_ORDER_NAME,
|
||||||
|
'type' => 'text'
|
||||||
),
|
),
|
||||||
|
|
||||||
);
|
);
|
||||||
@ -2156,14 +2161,16 @@ function serendipity_getImageFields() {
|
|||||||
'type' => 'date'
|
'type' => 'date'
|
||||||
),
|
),
|
||||||
|
|
||||||
'i.name' => array('desc' => SORT_ORDER_NAME
|
'i.name' => array('desc' => SORT_ORDER_NAME,
|
||||||
|
'type' => 'text'
|
||||||
),
|
),
|
||||||
|
|
||||||
'i.authorid' => array('desc' => AUTHOR,
|
'i.authorid' => array('desc' => AUTHOR,
|
||||||
'type' => 'authors'
|
'type' => 'authors'
|
||||||
),
|
),
|
||||||
|
|
||||||
'i.extension' => array('desc' => SORT_ORDER_EXTENSION
|
'i.extension' => array('desc' => SORT_ORDER_EXTENSION,
|
||||||
|
'type' => 'text'
|
||||||
),
|
),
|
||||||
|
|
||||||
'i.size' => array('desc' => SORT_ORDER_SIZE,
|
'i.size' => array('desc' => SORT_ORDER_SIZE,
|
||||||
@ -3234,7 +3241,7 @@ function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lin
|
|||||||
|
|
||||||
$form_hidden = '';
|
$form_hidden = '';
|
||||||
// do not add, if not for the default media list form
|
// do not add, if not for the default media list form
|
||||||
if (($serendipity['GET']['adminAction'] == 'default' || empty($serendipity['GET']['adminAction'])) && !$serendipity['GET']['fid']) {
|
if (($serendipity['GET']['adminAction'] == 'default' || empty($serendipity['GET']['adminAction'])) && ! ($serendipity['GET']['fid'] ?? null)) {
|
||||||
foreach($serendipity['GET'] AS $g_key => $g_val) {
|
foreach($serendipity['GET'] AS $g_key => $g_val) {
|
||||||
// do not add token, since this is assigned separately to properties and list forms
|
// do not add token, since this is assigned separately to properties and list forms
|
||||||
if (!is_array($g_val) && $g_key != 'page' && $g_key != 'token') {
|
if (!is_array($g_val) && $g_key != 'page' && $g_key != 'token') {
|
||||||
@ -3247,8 +3254,6 @@ function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lin
|
|||||||
serendipity_smarty_init();
|
serendipity_smarty_init();
|
||||||
}
|
}
|
||||||
$order_fields = serendipity_getImageFields();
|
$order_fields = serendipity_getImageFields();
|
||||||
// reset filename for building template filters, since this is hardcoded as 'only_filename'
|
|
||||||
#unset($order_fields['i.name']);
|
|
||||||
|
|
||||||
$media = array(
|
$media = array(
|
||||||
'manage' => $manage,
|
'manage' => $manage,
|
||||||
@ -3272,11 +3277,11 @@ function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lin
|
|||||||
'only_path' => $serendipity['GET']['only_path'],
|
'only_path' => $serendipity['GET']['only_path'],
|
||||||
'only_filename' => $serendipity['GET']['only_filename'],
|
'only_filename' => $serendipity['GET']['only_filename'],
|
||||||
'sortorder' => $serendipity['GET']['sortorder'],
|
'sortorder' => $serendipity['GET']['sortorder'],
|
||||||
'keywords_selected' => $serendipity['GET']['keywords'],
|
'keywords_selected' => $serendipity['GET']['keywords'] ?? null,
|
||||||
'filter' => $serendipity['GET']['filter'],
|
'filter' => $serendipity['GET']['filter'] ?? ['fileCategory' => null],
|
||||||
'sort_order' => $order_fields,
|
'sort_order' => $order_fields,
|
||||||
'simpleFilters' => $serendipity['simpleFilters'],
|
'simpleFilters' => $serendipity['simpleFilters'] ?? true,
|
||||||
'hideSubdirFiles' => $serendipity['GET']['hideSubdirFiles'],
|
'hideSubdirFiles' => $serendipity['GET']['hideSubdirFiles'] ?? null,
|
||||||
'authors' => serendipity_fetchUsers(),
|
'authors' => serendipity_fetchUsers(),
|
||||||
'sort_row_interval' => array(8, 16, 50, 100),
|
'sort_row_interval' => array(8, 16, 50, 100),
|
||||||
'nr_files' => count($file),
|
'nr_files' => count($file),
|
||||||
@ -3756,7 +3761,11 @@ function showMediaLibrary($addvar_check = false, $smarty_vars = array()) {
|
|||||||
'filename_only' => isset($serendipity['GET']['filename_only']) ? $serendipity['GET']['filename_only'] : false,
|
'filename_only' => isset($serendipity['GET']['filename_only']) ? $serendipity['GET']['filename_only'] : false,
|
||||||
);
|
);
|
||||||
|
|
||||||
$show_upload = isset($serendipity['GET']['showUpload']) ? $serendipity['GET']['showUpload'] : false;
|
if (isset($serendipity['GET']['showUpload'])) {
|
||||||
|
$show_upload = $serendipity['GET']['showUpload'];
|
||||||
|
} else {
|
||||||
|
$show_upload = $serendipity['GET']['showUpload'] = false;
|
||||||
|
}
|
||||||
|
|
||||||
$output .= serendipity_displayImageList(
|
$output .= serendipity_displayImageList(
|
||||||
isset($serendipity['GET']['page']) ? $serendipity['GET']['page'] : 1,
|
isset($serendipity['GET']['page']) ? $serendipity['GET']['page'] : 1,
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<div class="form_select">
|
<div class="form_select">
|
||||||
<label for="serendipity_only_path" class="visuallyhidden">{$CONST.FILTER_DIRECTORY}</label>
|
<label for="serendipity_only_path" class="visuallyhidden">{$CONST.FILTER_DIRECTORY}</label>
|
||||||
<select id="serendipity_only_path" name="serendipity[only_path]">
|
<select id="serendipity_only_path" name="serendipity[only_path]">
|
||||||
<option value="">{if NOT $media.limit_path}{if $media.toggle_dir == 'yes'}{$CONST.BASE_DIRECTORY}{else}{$CONST.ALL_DIRECTORIES}{/if}{else}{$media.blimit_path}{/if}</option>
|
<option value="">{if NOT $media.limit_path}{if isset($media.toggle_dir) AND $media.toggle_dir == 'yes'}{$CONST.BASE_DIRECTORY}{else}{$CONST.ALL_DIRECTORIES}{/if}{else}{$media.blimit_path}{/if}</option>
|
||||||
{foreach $media.paths AS $folderHead}
|
{foreach $media.paths AS $folderHead}
|
||||||
|
|
||||||
<option{if ($media.only_path == $media.limit_path|cat:$folderHead.relpath)} selected{/if} value="{$folderHead.relpath}">{' '|str_repeat:($folderHead.depth*2)}{$folderHead.name}</option>
|
<option{if ($media.only_path == $media.limit_path|cat:$folderHead.relpath)} selected{/if} value="{$folderHead.relpath}">{' '|str_repeat:($folderHead.depth*2)}{$folderHead.name}</option>
|
||||||
@ -63,17 +63,17 @@
|
|||||||
|
|
||||||
<div class="form_field">
|
<div class="form_field">
|
||||||
<label for="serendipity_filter_{$filter@key}_from" class="range-label">{$CONST.RANGE_FROM|lower}</label>
|
<label for="serendipity_filter_{$filter@key}_from" class="range-label">{$CONST.RANGE_FROM|lower}</label>
|
||||||
<input id="serendipity_filter_{$filter@key}_from" name="serendipity[filter][{$filter@key}][from]" type="date" placeholder="2001-01-31" value="{$media.filter[$filter@key].from|escape}">
|
<input id="serendipity_filter_{$filter@key}_from" name="serendipity[filter][{$filter@key}][from]" type="date" placeholder="2001-01-31" value="{if isset($media.filter[$filter@key].from)}{$media.filter[$filter@key].from|escape}{/if}">
|
||||||
<label for="serendipity_filter_{$filter@key}_to" class="range-label">{$CONST.RANGE_TO|lower}</label>
|
<label for="serendipity_filter_{$filter@key}_to" class="range-label">{$CONST.RANGE_TO|lower}</label>
|
||||||
<input id="serendipity_filter_{$filter@key}_to" name="serendipity[filter][{$filter@key}][to]" type="date" placeholder="2005-12-31" value="{$media.filter[$filter@key].to|escape}">
|
<input id="serendipity_filter_{$filter@key}_to" name="serendipity[filter][{$filter@key}][to]" type="date" placeholder="2005-12-31" value="{if isset($media.filter[$filter@key].to)}{$media.filter[$filter@key].to|escape}{/if}">
|
||||||
</div>
|
</div>
|
||||||
{elseif $filter.type == 'intrange'}
|
{elseif $filter.type == 'intrange'}
|
||||||
|
|
||||||
<div class="form_field">
|
<div class="form_field">
|
||||||
<label for="serendipity_filter_{$filter@key}_from" class="range-label">{$CONST.RANGE_FROM|lower}</label>
|
<label for="serendipity_filter_{$filter@key}_from" class="range-label">{$CONST.RANGE_FROM|lower}</label>
|
||||||
<input id="serendipity_filter_{$filter@key}_from" name="serendipity[filter][{$filter@key}][from]" type="text" placeholder="{if $filtername == 'bp.RUN_LENGTH'}in{/if}" value="{$media.filter[$filter@key].from|escape}">
|
<input id="serendipity_filter_{$filter@key}_from" name="serendipity[filter][{$filter@key}][from]" type="text" placeholder="{if $filtername == 'bp.RUN_LENGTH'}in{/if}" value="{if isset($media.filter[$filter@key].from)}{$media.filter[$filter@key].from|escape}{/if}">
|
||||||
<label for="serendipity_filter_{$filter@key}_to" class="range-label">{$CONST.RANGE_TO|lower}</label>
|
<label for="serendipity_filter_{$filter@key}_to" class="range-label">{$CONST.RANGE_TO|lower}</label>
|
||||||
<input id="serendipity_filter_{$filter@key}_to" name="serendipity[filter][{$filter@key}][to]" type="text" placeholder="{if $filtername == 'bp.RUN_LENGTH'}seconds{/if}" value="{$media.filter[$filter@key].to|escape}">
|
<input id="serendipity_filter_{$filter@key}_to" name="serendipity[filter][{$filter@key}][to]" type="text" placeholder="{if $filtername == 'bp.RUN_LENGTH'}seconds{/if}" value="{if isset($media.filter[$filter@key].to)}{$media.filter[$filter@key].to|escape}{/if}">
|
||||||
</div>
|
</div>
|
||||||
{elseif $filter.type == 'authors'}
|
{elseif $filter.type == 'authors'}
|
||||||
|
|
||||||
@ -81,13 +81,13 @@
|
|||||||
<option value="">{$CONST.ALL_AUTHORS}</option>
|
<option value="">{$CONST.ALL_AUTHORS}</option>
|
||||||
{foreach $media.authors AS $media_author}
|
{foreach $media.authors AS $media_author}
|
||||||
|
|
||||||
<option value="{$media_author.authorid}"{if $media.filter[$filter@key] == $media_author.authorid} selected{/if}>{$media_author.realname|escape}</option>
|
<option value="{$media_author.authorid}"{if isset($media.filter[$filter@key]) and $media.filter[$filter@key] == $media_author.authorid} selected{/if}>{$media_author.realname|escape}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
{else}{* this is of type string w/o being named *}
|
{else}{* this is of type string w/o being named *}
|
||||||
{* label is already set on loop start, when type is not date or intrange *}
|
{* label is already set on loop start, when type is not date or intrange *}
|
||||||
<input id="serendipity_filter_{$filter@key}" name="serendipity[filter][{$filter@key}]" type="text" value="{$media.filter[$filter@key]|escape}">
|
<input id="serendipity_filter_{$filter@key}" name="serendipity[filter][{$filter@key}]" type="text" value="{if isset($media.filter[$filter@key])}{$media.filter[$filter@key]|escape}{/if}">
|
||||||
{/if}
|
{/if}
|
||||||
{if $filter.type == 'date' || $filter.type == 'intrange'}
|
{if $filter.type == 'date' || $filter.type == 'intrange'}
|
||||||
|
|
||||||
@ -182,10 +182,12 @@
|
|||||||
|
|
||||||
serendipity.SetCookie("sortorder_{$sortParam}","{$media.sortorder.{$sortParam}}");
|
serendipity.SetCookie("sortorder_{$sortParam}","{$media.sortorder.{$sortParam}}");
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
{if isset($media.filterParams)}
|
||||||
{foreach $media.filterParams AS $filterParam}
|
{foreach $media.filterParams AS $filterParam}
|
||||||
|
|
||||||
serendipity.SetCookie("{$filterParam}", "{$media.{$filterParam}}");
|
serendipity.SetCookie("{$filterParam}", "{$media.{$filterParam}}");
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
{/if}
|
||||||
|
|
||||||
serendipity.SetCookie("only_path", "{$media.only_path}");
|
serendipity.SetCookie("only_path", "{$media.only_path}");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user