diff --git a/admin.php b/admin.php
index c4deae9..69e096a 100644
--- a/admin.php
+++ b/admin.php
@@ -909,12 +909,20 @@ function regenerate_input_dir_maps($dir, $config){
}
}
function cached_video_metadata($output, $fallback){
- $meta = ['title'=>$fallback['title'] ?? '', 'date'=>$fallback['date'] ?? '', 'location'=>$fallback['place'] ?? '', 'quote_da'=>$fallback['quote_da'] ?? '', 'description'=>$fallback['description'] ?? ''];
+ $meta = [
+ 'title'=>$fallback['title'] ?? '',
+ 'teaser'=>$fallback['teaser'] ?? '',
+ 'date'=>$fallback['date'] ?? '',
+ 'sort_date'=>$fallback['date'] ?? '',
+ 'location'=>$fallback['place'] ?? '',
+ 'quote_da'=>$fallback['quote_da'] ?? '',
+ 'description'=>$fallback['description'] ?? ''
+ ];
$cacheFile = __DIR__ . '/cache/videos.json';
$cache = is_file($cacheFile) ? json_decode((string)file_get_contents($cacheFile), true) : [];
$cached = $cache['items'][$output]['metadata'] ?? null;
if (is_array($cached)) {
- foreach (['title','date','location','quote_da','description'] as $k) if (!empty($cached[$k])) $meta[$k] = $cached[$k];
+ foreach (['title','teaser','date','sort_date','location','quote_da','description'] as $k) if (!empty($cached[$k])) $meta[$k] = $cached[$k];
}
return $meta;
}
@@ -1308,6 +1316,8 @@ if ($keywordValue !== '' || $statusFilterActive) {
$hasFullVideo = $fullOutput !== '' && is_file($config['videos_dir'].'/'.$fullOutput);
$hasPreviewVideo = $previewOutput !== '' && is_file($config['videos_dir'].'/'.$previewOutput);
$preview = input_dir_preview($dir);
+ $displayOutput = ($preview && $hasPreviewVideo) ? $previewOutput : ($hasFullVideo ? $fullOutput : ($hasPreviewVideo ? $previewOutput : ''));
+ $hasVideo = $displayOutput !== '';
$enabled = input_dir_enabled($dir);
$canShow = $hasFullVideo && !$preview;
$visible = $canShow && input_dir_visible($dir);
@@ -1323,12 +1333,13 @@ if ($keywordValue !== '' || $statusFilterActive) {
if ($keywordValue === '') return true;
- $title = (string)(($data['title'] ?? '') !== '' ? $data['title'] : basename($dir));
- $teaser = (string)($data['teaser'] ?? '');
- $description = (string)($data['description'] ?? '');
- $quoteDa = (string)($data['quote_da'] ?? '');
- $date = (string)($data['date'] ?? '');
- $location = (string)($data['place'] ?? '');
+ $meta = $hasVideo ? cached_video_metadata($displayOutput, $data) : ['title'=>(string)($data['title'] ?? ''),'teaser'=>(string)($data['teaser'] ?? ''),'date'=>(string)($data['date'] ?? ''),'location'=>(string)($data['place'] ?? ''),'quote_da'=>(string)($data['quote_da'] ?? ''),'description'=>(string)($data['description'] ?? '')];
+ $title = (string)(($meta['title'] ?? '') !== '' ? $meta['title'] : basename($dir));
+ $teaser = (string)($meta['teaser'] ?? '');
+ $description = (string)($meta['description'] ?? '');
+ $quoteDa = (string)($meta['quote_da'] ?? '');
+ $date = (string)($meta['date'] ?? '');
+ $location = (string)($meta['location'] ?? '');
if ($keywordType === 'date') return ci_contains($date, $keywordValue);
if ($keywordType === 'location') return ci_contains($location, $keywordValue);
@@ -1345,13 +1356,13 @@ $editDir = null; $editStatus = ''; $editRunning = false; $editData = ['title'=>'
if ($editName !== '' || $editId !== '') { try { $editDir = resolve_input_dir_from_request($config['uploads_dir'], $editId, $editName, $articleIndex); $editStatus = input_dir_status($editDir); $editRunning = input_dir_running($editDir); if (!$editRunning) { $editData = read_data($editDir); $editFiles = media_sort_files($editDir, list_files($editDir)); } } catch (Throwable $e) { $err = $e->getMessage(); } }
$runningJobs = active_worker_jobs($config);
?>
-
MVLog Admin
+MVLog Admin
=h($err)?>
Videos without input dir
No orphan videos.
=page_links('videos',$videoPage,$videoPages)?>
-No input directories yet.
(string)($data['title'] ?? ''),'teaser'=>(string)($data['teaser'] ?? ''),'date'=>(string)($data['date'] ?? ''),'location'=>(string)($data['place'] ?? ''),'quote_da'=>(string)($data['quote_da'] ?? ''),'description'=>(string)($data['description'] ?? '')]; $currentSignature=$info['signature'] ?? ''; $fullFingerprint=is_array($state)?(string)($state['fingerprint'] ?? ''):''; $previewFingerprint=is_array($state)?(string)($state['preview_fingerprint'] ?? ''):''; $editedSinceRender=$hasFullVideo && $currentSignature !== '' && $fullFingerprint !== '' && $currentSignature !== $fullFingerprint; $editedSincePreview=!$hasFullVideo && $previewVideo && $currentSignature !== '' && $previewFingerprint !== '' && $currentSignature !== $previewFingerprint; $staleLabel=$editedSinceRender ? 'Edited since render' : ($editedSincePreview ? 'Edited since preview' : ''); ?>
Thumb source: =h((string)$thumbMeta['source_file'])?>
+
No input directories yet.
(string)($data['title'] ?? ''),'teaser'=>(string)($data['teaser'] ?? ''),'date'=>(string)($data['date'] ?? ''),'location'=>(string)($data['place'] ?? ''),'quote_da'=>(string)($data['quote_da'] ?? ''),'description'=>(string)($data['description'] ?? '')]; $currentSignature=$info['signature'] ?? ''; $fullFingerprint=is_array($state)?(string)($state['fingerprint'] ?? ''):''; $previewFingerprint=is_array($state)?(string)($state['preview_fingerprint'] ?? ''):''; $editedSinceRender=$hasFullVideo && $currentSignature !== '' && $fullFingerprint !== '' && $currentSignature !== $fullFingerprint; $editedSincePreview=!$hasFullVideo && $previewVideo && $currentSignature !== '' && $previewFingerprint !== '' && $currentSignature !== $previewFingerprint; $staleLabel=$editedSinceRender ? 'Edited since render' : ($editedSincePreview ? 'Edited since preview' : ''); ?>
Thumb source: =h((string)$thumbMeta['source_file'])?>
-
=h($meta['date'])?>=h($meta['location'])?>No videoPreview video
=h((string)$meta['teaser'])?>
=nl2br(h($meta['description']), false)?>
โ=h(trim((string)$meta['quote_da'], "\"โโ"))?>โ
=h(basename($d))?> ยท =h($info['file_count'] ?? count(list_files($d)))?> files
=page_links('edit',$editPage,$editPages)?>
+
=h($meta['date'])?>=h($meta['location'])?>
=h((string)$meta['teaser'])?>
=nl2br(h($meta['description']), false)?>
โ=h(trim((string)$meta['quote_da'], "\"โโ"))?>โ
=h(implode(' ยท ', $detailParts))?>
=page_links('edit',$editPage,$editPages)?>
Edit input dir
in-dir/=h(basename($editDir))?>
This input directory is =h($editStatus)?>. Editing is disabled until the job completes.