function getEnrichmentInfo() { global $configArray; global $interface; require_once ROOT_DIR . '/RecordDrivers/GroupedWorkDriver.php'; $id = $_REQUEST['id']; $recordDriver = new GroupedWorkDriver($id); $enrichmentResult = array(); $enrichmentData = $recordDriver->loadEnrichment(); //Process series data $titles = array(); if (!isset($enrichmentData['novelist']->seriesTitles) || count($enrichmentData['novelist']->seriesTitles) == 0) { $enrichmentResult['seriesInfo'] = array('titles' => $titles, 'currentIndex' => 0); } else { foreach ($enrichmentData['novelist']->seriesTitles as $key => $record) { $titles[] = $this->getScrollerTitle($record, $key, 'Series'); } $seriesInfo = array('titles' => $titles, 'currentIndex' => $enrichmentData['novelist']->seriesDefaultIndex); $enrichmentResult['seriesInfo'] = $seriesInfo; } //Process other data from novelist if (isset($enrichmentData['novelist']) && isset($enrichmentData['novelist']->similarTitles)) { $interface->assign('similarTitles', $enrichmentData['novelist']->similarTitles); $enrichmentResult['similarTitlesNovelist'] = $interface->fetch('GroupedWork/similarTitlesNovelist.tpl'); } if (isset($enrichmentData['novelist']) && isset($enrichmentData['novelist']->authors)) { $interface->assign('similarAuthors', $enrichmentData['novelist']->authors); $enrichmentResult['similarAuthorsNovelist'] = $interface->fetch('GroupedWork/similarAuthorsNovelist.tpl'); } if (isset($enrichmentData['novelist']) && isset($enrichmentData['novelist']->similarSeries)) { $interface->assign('similarSeries', $enrichmentData['novelist']->similarSeries); $enrichmentResult['similarSeriesNovelist'] = $interface->fetch('GroupedWork/similarSeriesNovelist.tpl'); } //Load Similar titles (from Solr) $class = $configArray['Index']['engine']; $url = $configArray['Index']['url']; /** @var Solr $db */ $db = new $class($url); $db->disableScoping(); $similar = $db->getMoreLikeThis2($id); // Send the similar items to the template; if there is only one, we need // to force it to be an array or things will not display correctly. if (isset($similar) && count($similar['response']['docs']) > 0) { $similarTitles = array(); foreach ($similar['response']['docs'] as $key => $similarTitle) { $similarTitleDriver = new GroupedWorkDriver($similarTitle); $similarTitles[] = $similarTitleDriver->getScrollerTitle($key, 'MoreLikeThis'); } $similarTitlesInfo = array('titles' => $similarTitles, 'currentIndex' => 0); $enrichmentResult['similarTitles'] = $similarTitlesInfo; } //Load go deeper options //TODO: Additional go deeper options if (isset($library) && $library->showGoDeeper == 0) { $enrichmentResult['showGoDeeper'] = false; } else { require_once ROOT_DIR . '/Drivers/marmot_inc/GoDeeperData.php'; $goDeeperOptions = GoDeeperData::getGoDeeperOptions($recordDriver->getCleanISBN(), $recordDriver->getCleanUPC()); if (count($goDeeperOptions['options']) == 0) { $enrichmentResult['showGoDeeper'] = false; } else { $enrichmentResult['showGoDeeper'] = true; $enrichmentResult['goDeeperOptions'] = $goDeeperOptions['options']; } } //Related data $enrichmentResult['relatedContent'] = $interface->fetch('Record/relatedContent.tpl'); return json_encode($enrichmentResult); }