function resetMoreDetailsToDefault() { $library = new Library(); $libraryId = $_REQUEST['id']; $library->libraryId = $libraryId; if ($library->find(true)) { $library->clearMoreDetailsOptions(); $defaultOptions = array(); require_once ROOT_DIR . '/RecordDrivers/Interface.php'; $defaultMoreDetailsOptions = RecordInterface::getDefaultMoreDetailsOptions(); $i = 0; foreach ($defaultMoreDetailsOptions as $source => $defaultState) { $optionObj = new LibraryMoreDetails(); $optionObj->libraryId = $libraryId; $optionObj->collapseByDefault = $defaultState == 'closed'; $optionObj->source = $source; $optionObj->weight = $i++; $defaultOptions[] = $optionObj; } $library->moreDetailsOptions = $defaultOptions; $library->update(); $_REQUEST['objectAction'] = 'edit'; } $structure = $this->getObjectStructure(); header("Location: /Admin/Libraries?objectAction=edit&id=" . $libraryId); }
public function filterAndSortMoreDetailsOptions($allOptions) { global $library; global $locationSingleton; $activeLocation = $locationSingleton->getActiveLocation(); $useDefault = true; if ($library && count($library->moreDetailsOptions) > 0) { $moreDetailsFilters = array(); $useDefault = false; /** @var LibraryMoreDetails $option */ foreach ($library->moreDetailsOptions as $option) { $moreDetailsFilters[$option->source] = $option->collapseByDefault ? 'closed' : 'open'; } } if ($activeLocation && count($activeLocation->moreDetailsOptions) > 0) { $moreDetailsFilters = array(); $useDefault = false; /** @var LocationMoreDetails $option */ foreach ($activeLocation->moreDetailsOptions as $option) { $moreDetailsFilters[$option->source] = $option->collapseByDefault ? 'closed' : 'open'; } } if ($useDefault) { $moreDetailsFilters = RecordInterface::getDefaultMoreDetailsOptions(); } $filteredMoreDetailsOptions = array(); foreach ($moreDetailsFilters as $option => $initialState) { if (array_key_exists($option, $allOptions)) { $detailOptions = $allOptions[$option]; $detailOptions['openByDefault'] = $initialState == 'open'; $filteredMoreDetailsOptions[$option] = $detailOptions; } } return $filteredMoreDetailsOptions; }