Medialist);
}
// If the $folder is empty this is a new visit, a return, or a reset
if (empty($folder)) {
$folder = $MEDIA_DIRECTORY; // default setting
$show_thumbnail = true; // default setting
}
// re-build if anything changed
if (
($WT_SESSION->Medialist_ged != WT_GEDCOM)
|| ($WT_SESSION->Medialist_user != WT_USER_ID) // if an anonymous user logged in, get the data again
|| ($filter1 != $WT_SESSION->Medialist_filter1)
|| ($filter2 != $WT_SESSION->Medialist_filter2)
|| ($filter_type != $WT_SESSION->Medialist_filter_type)
|| ($sortby != $WT_SESSION->Medialist_sortby)
|| ($folder != $WT_SESSION->Medialist_folder)
|| ($currentdironly != $WT_SESSION->Medialist_currentdironly)
) {
$build = 'yes';
unset($WT_SESSION->Medialist);
}
// If SESSION_medialist then it's a return
if (isset($WT_SESSION->Medialist)) {
$show = 'yes';
$search = 'yes';
$action = false;
$medialist = $WT_SESSION->Medialist;
} else {
if ($action == 'filter') {
// This is the first visit to the medialist page
$build = 'yes';
$show = 'yes';
} else {
// must have just reset
}
}
// ************************ BEGIN = 'Build the medialist array' ************************
if ($build == 'yes') {
if ($folder == 'ALL') {
$folder = $MEDIA_DIRECTORY;
$currentdironly = false;
}
// show external links only if looking at top level directory
$showExternal = ($folder == $MEDIA_DIRECTORY) ? true : false;
$medialist=get_medialist2($currentdironly, $folder, true, false, $showExternal, $sortby);
foreach ($medialist as $key => $media) {
// remove all private media objects
$mediaobject=WT_Media::getInstance($media['XREF']);
// Display when user has Edit rights or when object belongs to current GEDCOM
$disp = WT_USER_CAN_EDIT || $mediaobject->ged_id==WT_GED_ID;
// Display when Media objects aren't restricted by global privacy
$disp &= $mediaobject->canDisplayDetails();
// Display when this Media object isn't restricted
$disp &= canDisplayFact($mediaobject->getXref(), $mediaobject->ged_id, $mediaobject->getGedcomRecord());
if (!$disp) {
// echo "removing $key - disp
";
unset($medialist[$key]);
continue;
}
// filter
if ($filter1 || $filter2) {
if (!$filter1 || !$filter2) $filter_type = $or;
$default=($filter_type == $or) ? false : true;
$found1=$filter1 ? filterMedia2($mediaobject, $filter1) : $default;
$found2=$filter2 ? filterMedia2($mediaobject, $filter2) : $default;
if ($filter_type == $or) {
if (!$found1 && !$found2) {
// echo "removing $key - OR
";
unset($medialist[$key]);
}
} else {
if (!$found1 || !$found2) {
// echo "removing $key - AND
";
unset($medialist[$key]);
}
}
}
}
$medialist=array_values($medialist); // Reset numbering of medialist array
// save the data into the session
$WT_SESSION->Medialist=$medialist;
$WT_SESSION->Medialist_filter_type=$filter_type;
$WT_SESSION->Medialist_filter1=$filter1;
$WT_SESSION->Medialist_filter2=$filter2;
$WT_SESSION->Medialist_folder=$folder;
$WT_SESSION->Medialist_sortby=$sortby;
$WT_SESSION->Medialist_max=$max;
$WT_SESSION->Medialist_columns=$columns;
$WT_SESSION->Medialist_currentdironly=$currentdironly;
$WT_SESSION->Medialist_thumbnail=$show_thumbnail;
$WT_SESSION->Medialist_ged=WT_GEDCOM;
$WT_SESSION->Medialist_user=WT_USER_ID;
}
// We have finished writing session data, so release the lock
Zend_Session::writeClose();
// ************************ END = 'Build the medialist array' ************************
print_header(WT_I18N::translate('Media objects'));
echo '
';
echo '
| ||||||
| '; if ($columns == '2') echo ' | ';
echo '
| ';
if ($columns == '1') echo '|||||
';
echo '
| ||||||