コード例 #1
0
ファイル: AJAX.php プロジェクト: bryandease/VuFind-Plus
 function GetReviewInfo()
 {
     require_once 'Reviews.php';
     $isbn = $_REQUEST['isbn'];
     $id = $_REQUEST['id'];
     $enrichmentData = Record_Reviews::loadReviews($id, $isbn);
     global $interface;
     $interface->assign('id', $id);
     $interface->assign('enrichment', $enrichmentData);
     return $interface->fetch('Record/ajax-reviews.tpl');
 }
コード例 #2
0
ファイル: Reviews.php プロジェクト: bryandease/VuFind-Plus
 /**
  * Load information from the review provider and update the interface with the data.
  *
  * @return array       Returns array with review data, otherwise a
  *                      PEAR_Error.
  */
 static function loadReviews($id, $isbn, $includeEditorial = false)
 {
     global $interface;
     global $configArray;
     /** @var Memcache $memCache */
     global $memCache;
     $reviews = $memCache->get("reviews_{$isbn}");
     if (!$reviews || isset($_REQUEST['reload'])) {
         // Fetch from provider
         if (isset($configArray['Content']['reviews'])) {
             $providers = explode(',', $configArray['Content']['reviews']);
             foreach ($providers as $provider) {
                 $provider = explode(':', trim($provider));
                 $func = strtolower($provider[0]);
                 $key = $provider[1];
                 $reviews[$func] = Record_Reviews::$func($isbn, $key);
                 // If the current provider had no valid reviews, store nothing:
                 if (empty($reviews[$func]) || PEAR_Singleton::isError($reviews[$func])) {
                     unset($reviews[$func]);
                 } else {
                     if (is_array($reviews[$func])) {
                         foreach ($reviews[$func] as $key => $reviewData) {
                             $reviews[$func][$key] = Record_Reviews::cleanupReview($reviews[$func][$key]);
                         }
                     } else {
                         $reviews[$func] = Record_Reviews::cleanupReview($reviews[$func]);
                     }
                 }
             }
         }
         $memCache->set("reviews_{$isbn}", $reviews, 0, $configArray['Caching']['purchased_reviews']);
     }
     //Load Editorial Reviews
     if ($includeEditorial) {
         if (isset($id)) {
             $recordId = $id;
             $editorialReview = new EditorialReview();
             $editorialReviewResults = array();
             $editorialReview->whereAdd("recordId = '{$recordId}'");
             $editorialReview->find();
             if ($editorialReview->N > 0) {
                 while ($editorialReview->fetch()) {
                     $editorialReviewResults[] = clone $editorialReview;
                 }
             }
             //$reviews["editorialReviews"] = array();
             if (count($editorialReviewResults) > 0) {
                 foreach ($editorialReviewResults as $key => $result) {
                     $reviews["editorialReviews"][$key]["Content"] = $result->review;
                     $reviews["editorialReviews"][$key]["Copyright"] = $result->source;
                     $reviews["editorialReviews"][$key]["Source"] = $result->source;
                     $reviews["editorialReviews"][$key]["ISBN"] = null;
                     $reviews["editorialReviews"][$key]["username"] = null;
                     $reviews["editorialReviews"][$key] = Record_Reviews::cleanupReview($reviews["editorialReviews"][$key]);
                     if ($result->teaser) {
                         $reviews["editorialReviews"][$key]["Teaser"] = $result->teaser;
                     }
                 }
             }
         }
     }
     //Load Reviews from Good Reads
     if ($isbn) {
         require_once ROOT_DIR . '/sys/NovelistFactory.php';
         $novelist = NovelistFactory::getNovelist();
         $enrichment = $novelist->loadEnrichment($isbn);
         if (isset($enrichment['goodReads'])) {
             $reviews['goodReads'] = $enrichment['goodReads'];
         }
     }
     if ($reviews) {
         if (!PEAR_Singleton::isError($reviews)) {
             $interface->assign('reviews', $reviews);
         } else {
             echo $reviews;
         }
     }
     return $reviews;
 }