Beispiel #1
0
 function GetListTitles()
 {
     global $memCache;
     global $configArray;
     global $timer;
     $listId = $_REQUEST['listId'];
     $_REQUEST['id'] = 'list:' . $listId;
     $listName = strip_tags(isset($_GET['scrollerName']) ? $_GET['scrollerName'] : 'List' . $listId);
     $scrollerName = isset($_GET['scrollerName']) ? strip_tags($_GET['scrollerName']) : $listName;
     //Determine the caching parameters
     require_once ROOT_DIR . '/services/API/ListAPI.php';
     $listAPI = new ListAPI();
     $cacheInfo = $listAPI->getCacheInfoForList();
     $listData = $memCache->get($cacheInfo['cacheName']);
     if (!$listData || isset($_REQUEST['reload']) || isset($listData['titles']) && count($listData['titles'] == 0)) {
         global $interface;
         $titles = $listAPI->getListTitles();
         $timer->logTime("getListTitles");
         $addStrandsTracking = false;
         if ($titles['success'] == true) {
             if (isset($titles['strands'])) {
                 $addStrandsTracking = true;
                 $strandsInfo = $titles['strands'];
             }
             $titles = $titles['titles'];
             if (is_array($titles)) {
                 foreach ($titles as $key => $rawData) {
                     $interface->assign('description', $rawData['description']);
                     $interface->assign('length', $rawData['length']);
                     $interface->assign('publisher', $rawData['publisher']);
                     $descriptionInfo = $interface->fetch('Record/ajax-description-popup.tpl');
                     $formattedTitle = "<div id=\"scrollerTitle{$scrollerName}{$key}\" class=\"scrollerTitle\">";
                     $shortId = $rawData['id'];
                     if (preg_match('/econtentRecord\\d+/i', $rawData['id'])) {
                         $recordId = substr($rawData['id'], 14);
                         $formattedTitle .= '<a href="' . $configArray['Site']['path'] . "/EcontentRecord/" . $recordId . ($addStrandsTracking ? "?strandsReqId={$strandsInfo['reqId']}&strandsTpl={$strandsInfo['tpl']}" : '') . '" id="descriptionTrigger' . $rawData['id'] . '">';
                     } else {
                         $shortId = str_replace('.b', 'b', $shortId);
                         $formattedTitle .= '<a href="' . $configArray['Site']['path'] . "/Record/" . $rawData['id'] . ($addStrandsTracking ? "?strandsReqId={$strandsInfo['reqId']}&strandsTpl={$strandsInfo['tpl']}" : '') . '" id="descriptionTrigger' . $shortId . '">';
                     }
                     $formattedTitle .= "<img src=\"{$rawData['image']}\" class=\"scrollerTitleCover\" alt=\"{$rawData['title']} Cover\"/>" . "</a></div>" . "<div id='descriptionPlaceholder{$shortId}' style='display:none' class='loaded'>" . $descriptionInfo . "</div>";
                     $rawData['formattedTitle'] = $formattedTitle;
                     $titles[$key] = $rawData;
                 }
             }
             $currentIndex = count($titles) > 5 ? floor(count($titles) / 2) : 0;
             $return = array('titles' => $titles, 'currentIndex' => $currentIndex);
             $listData = json_encode($return);
         } else {
             $return = array('titles' => array(), 'currentIndex' => 0);
             $listData = json_encode($return);
         }
         $memCache->set($cacheInfo['cacheName'], $listData, 0, $cacheInfo['cacheLength']);
     }
     return $listData;
 }
Beispiel #2
0
 /**
  * @return string JSON encoded data representing the list information
  */
 function GetListTitles()
 {
     /** @var Memcache $memCache */
     global $memCache;
     global $configArray;
     global $timer;
     $listName = strip_tags(isset($_GET['scrollerName']) ? $_GET['scrollerName'] : 'List' . $_GET['id']);
     //Determine the caching parameters
     require_once ROOT_DIR . '/services/API/ListAPI.php';
     $listAPI = new ListAPI();
     $cacheInfo = $listAPI->getCacheInfoForList();
     $cacheName = $cacheInfo['cacheName'];
     if (isset($_REQUEST['coverSize']) && $_REQUEST['coverSize'] == 'medium') {
         $cacheName .= '_medium';
     }
     $listData = $memCache->get($cacheName);
     if (!$listData || isset($_REQUEST['reload']) || isset($listData['titles']) && count($listData['titles']) == 0) {
         global $interface;
         $interface->assign('listName', $listName);
         $showRatings = isset($_REQUEST['showRatings']) && $_REQUEST['showRatings'];
         $interface->assign('showRatings', $showRatings);
         // overwrite values that come from library settings
         $titles = $listAPI->getListTitles();
         $timer->logTime("getListTitles");
         if ($titles['success'] == true) {
             $titles = $titles['titles'];
             if (is_array($titles)) {
                 foreach ($titles as $key => $rawData) {
                     $interface->assign('key', $key);
                     // 20131206 James Staub: bookTitle is in the list API and it removes the final frontslash, but I didn't get $rawData['bookTitle'] to load
                     $titleShort = preg_replace(array('/\\:.*?$/', '/\\s*\\/$\\s*/'), '', $rawData['title']);
                     //						$titleShort = preg_replace('/\:.*?$/','', $rawData['title']);
                     //						$titleShort = preg_replace('/\s*\/$\s*/','', $titleShort);
                     $interface->assign('title', $titleShort);
                     $interface->assign('description', isset($rawData['description']) ? $rawData['description'] : null);
                     $interface->assign('length', isset($rawData['length']) ? $rawData['length'] : null);
                     $interface->assign('publisher', isset($rawData['publisher']) ? $rawData['publisher'] : null);
                     $interface->assign('shortId', $rawData['shortId']);
                     $interface->assign('id', $rawData['id']);
                     $rawData['titleURL'] = $configArray['Site']['path'] . '/GroupedWork/' . $rawData['id'];
                     // assumes all are grouped works
                     $interface->assign('titleURL', $rawData['titleURL']);
                     $imageUrl = $rawData['small_image'];
                     if (isset($_REQUEST['coverSize']) && $_REQUEST['coverSize'] == 'medium') {
                         $imageUrl = $rawData['image'];
                     }
                     $interface->assign('imageUrl', $imageUrl);
                     if ($showRatings) {
                         $interface->assign('ratingData', $rawData['ratingData']);
                         $interface->assign('showNotInterested', false);
                     }
                     $rawData['formattedTitle'] = $interface->fetch('ListWidget/formattedTitle.tpl');
                     $titles[$key] = $rawData;
                 }
             }
             $currentIndex = count($titles) > 5 ? floor(count($titles) / 2) : 0;
             $listData = array('titles' => $titles, 'currentIndex' => $currentIndex);
             $memCache->set($cacheInfo['cacheName'], $listData, 0, $cacheInfo['cacheLength']);
         } else {
             $listData = array('titles' => array(), 'currentIndex' => 0);
             if ($titles['message']) {
                 $listData['error'] = $titles['message'];
             }
             // send error message to widget javascript
         }
     }
     return $listData;
 }