Ejemplo n.º 1
0
 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);
 }