• Main Page
  • Modules
  • Classes
  • Files
  • File List

pages/catalog/CatalogHandler.inc.php

00001 <?php
00002 
00016 import('classes.handler.Handler');
00017 
00018 // import UI base classes
00019 import('lib.pkp.classes.linkAction.LinkAction');
00020 import('lib.pkp.classes.core.JSONMessage');
00021 
00022 class CatalogHandler extends Handler {
00026    function CatalogHandler() {
00027       parent::Handler();
00028    }
00029 
00030 
00031    //
00032    // Public handler methods
00033    //
00039    function index($args, &$request) {
00040       $templateMgr =& TemplateManager::getManager();
00041       $this->setupTemplate($request);
00042       $press =& $request->getPress();
00043 
00044       // Fetch the monographs to display
00045       $publishedMonographDao =& DAORegistry::getDAO('PublishedMonographDAO');
00046       $publishedMonographs =& $publishedMonographDao->getByPressId($press->getId());
00047       $templateMgr->assign('publishedMonographs', $publishedMonographs->toAssociativeArray());
00048 
00049       // Display
00050       $templateMgr->display('catalog/index.tpl');
00051    }
00052 
00058    function newReleases($args, &$request) {
00059       $templateMgr =& TemplateManager::getManager();
00060       $this->setupTemplate($request);
00061       $press =& $request->getPress();
00062 
00063       // Provide a list of new releases to browse
00064       $newReleaseDao =& DAORegistry::getDAO('NewReleaseDAO');
00065       $newReleases =& $newReleaseDao->getMonographsByAssoc(ASSOC_TYPE_PRESS, $press->getId());
00066       $templateMgr->assign('publishedMonographs', $newReleases);
00067 
00068       // Display
00069       $templateMgr->display('catalog/newReleases.tpl');
00070    }
00071 
00078    function category($args, &$request) {
00079       $templateMgr =& TemplateManager::getManager();
00080       $press =& $request->getPress();
00081       $this->setupTemplate($request);
00082 
00083       // Get the category
00084       $categoryDao =& DAORegistry::getDAO('CategoryDAO');
00085       $categoryPath = array_shift($args);
00086       $category =& $categoryDao->getByPath($categoryPath, $press->getId());
00087       if (isset($category)) {
00088          $templateMgr->assign('category', $category);
00089 
00090          // Fetch the monographs to display
00091          $publishedMonographDao =& DAORegistry::getDAO('PublishedMonographDAO');
00092          $publishedMonographs =& $publishedMonographDao->getByCategoryId($category->getId(), $press->getId());
00093          $templateMgr->assign('publishedMonographs', $publishedMonographs->toAssociativeArray());
00094 
00095          // Expose the featured monograph IDs and associated params
00096          $featureDao =& DAORegistry::getDAO('FeatureDAO');
00097          $featuredMonographIds = $featureDao->getSequencesByAssoc(ASSOC_TYPE_CATEGORY, $category->getId());
00098          $templateMgr->assign('featuredMonographIds', $featuredMonographIds);
00099 
00100          // Provide a list of new releases to browse
00101          $newReleaseDao =& DAORegistry::getDAO('NewReleaseDAO');
00102          $newReleases =& $newReleaseDao->getMonographsByAssoc(ASSOC_TYPE_CATEGORY, $category->getId());
00103          $templateMgr->assign('newReleasesMonographs', $newReleases);
00104          // Display
00105       }
00106       $templateMgr->display('catalog/category.tpl');
00107    }
00108 
00115    function series($args, &$request) {
00116       $templateMgr =& TemplateManager::getManager();
00117       $press =& $request->getPress();
00118       $this->setupTemplate($request);
00119 
00120       // Get the series
00121       $seriesDao =& DAORegistry::getDAO('SeriesDAO');
00122       $seriesPath = array_shift($args);
00123       $series =& $seriesDao->getByPath($seriesPath, $press->getId());
00124       $templateMgr->assign('series', $series);
00125 
00126       // Fetch the monographs to display
00127       $publishedMonographDao =& DAORegistry::getDAO('PublishedMonographDAO');
00128       $publishedMonographs =& $publishedMonographDao->getBySeriesId($series->getId(), $press->getId());
00129       $templateMgr->assign('publishedMonographs', $publishedMonographs->toAssociativeArray());
00130 
00131       // Expose the featured monograph IDs and associated params
00132       $featureDao =& DAORegistry::getDAO('FeatureDAO');
00133       $featuredMonographIds = $featureDao->getSequencesByAssoc(ASSOC_TYPE_SERIES, $series->getId());
00134       $templateMgr->assign('featuredMonographIds', $featuredMonographIds);
00135 
00136       // Provide a list of new releases to browse
00137       $newReleaseDao =& DAORegistry::getDAO('NewReleaseDAO');
00138       $newReleases =& $newReleaseDao->getMonographsByAssoc(ASSOC_TYPE_SERIES, $series->getId());
00139       $templateMgr->assign('newReleasesMonographs', $newReleases);
00140 
00141       // Display
00142       $templateMgr->display('catalog/series.tpl');
00143    }
00144 
00151    function results($args, &$request) {
00152       $templateMgr =& TemplateManager::getManager();
00153       $press =& $request->getPress();
00154       $this->setupTemplate($request);
00155 
00156       $query = $request->getUserVar('query');
00157       $templateMgr->assign('searchQuery', $query);
00158 
00159       // Fetch the monographs to display
00160       import('classes.search.MonographSearch');
00161       $keywords = array(MonographSearch::parseQuery($query));
00162 
00163       $resultsIterator =& MonographSearch::retrieveResults($press, $keywords);
00164       $publishedMonographs = array();
00165       while ($result =& $resultsIterator->next()) {
00166          $publishedMonograph =& $result['publishedMonograph'];
00167          if ($publishedMonograph) {
00168             $publishedMonographs[$publishedMonograph->getId()] =& $publishedMonograph;
00169          }
00170          unset($result, $publishedMonograph);
00171       }
00172       $templateMgr->assign('publishedMonographs', $publishedMonographs);
00173 
00174       // Display
00175       $templateMgr->display('catalog/results.tpl');
00176    }
00177 
00181    function fullSize($args, &$request) {
00182 
00183       $press =& $request->getPress();
00184       $type = $request->getUserVar('type');
00185       $id = $request->getUserVar('id');
00186       $imageInfo = array();
00187 
00188       switch ($type) {
00189          case 'category':
00190             $path = '/categories/';
00191             $categoryDao =& DAORegistry::getDAO('CategoryDAO');
00192             $category = $categoryDao->getById($id, $press->getId());
00193             if ($category) {
00194                $imageInfo = $category->getImage();
00195             }
00196             break;
00197          case 'series':
00198             $path = '/series/';
00199             $seriesDao =& DAORegistry::getDAO('SeriesDAO');
00200             $series = $seriesDao->getById($id, $press->getId());
00201             if ($series) {
00202                $imageInfo = $series->getImage();
00203             }
00204             break;
00205          default:
00206             fatalError('invalid type specified');
00207             break;
00208       }
00209 
00210       if ($imageInfo) {
00211          import('file.PressFileManager');
00212          $pressFileManager = new PressFileManager($press->getId());
00213          $pressFileManager->downloadFile($pressFileManager->getBasePath() . $path . $imageInfo['name'], null, true);
00214       }
00215    }
00216 
00220    function thumbnail($args, &$request) {
00221       $press =& $request->getPress();
00222       $type = $request->getUserVar('type');
00223       $id = $request->getUserVar('id');
00224       $imageInfo = array();
00225 
00226       switch ($type) {
00227          case 'category':
00228             $path = '/categories/';
00229             $categoryDao =& DAORegistry::getDAO('CategoryDAO');
00230             $category = $categoryDao->getById($id, $press->getId());
00231             if ($category) {
00232                $imageInfo = $category->getImage();
00233             }
00234             break;
00235          case 'series':
00236             $path = '/series/';
00237             $seriesDao =& DAORegistry::getDAO('SeriesDAO');
00238             $series = $seriesDao->getById($id, $press->getId());
00239             if ($series) {
00240                $imageInfo = $series->getImage();
00241             }
00242             break;
00243          default:
00244             fatalError('invalid type specified');
00245             break;
00246       }
00247 
00248       if ($imageInfo) {
00249          import('file.PressFileManager');
00250          $pressFileManager = new PressFileManager($press->getId());
00251          $pressFileManager->downloadFile($pressFileManager->getBasePath() . $path . $imageInfo['thumbnailName'], null, true);
00252       }
00253    }
00254 
00258    function setupTemplate(&$request) {
00259       $templateMgr =& TemplateManager::getManager();
00260       $press =& $request->getPress();
00261       $templateMgr->assign('pressCurrency', $press->getSetting('pressCurrency'));
00262       parent::setupTemplate();
00263    }
00264 }
00265 
00266 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1