Zend_Controller
[ class tree: Zend_Controller ] [ index: Zend_Controller ] [ all elements ]

Source for file IndexController.php

Documentation is available at IndexController.php

  1. <?php
  2. /**
  3.  * MediaSearch
  4.  *
  5.  * LICENSE
  6.  *
  7.  * "THE BEER-WARE LICENSE" (Revision 42):
  8.  * "Sven Strittmatter" <ausserirdisch@sven-space.de> wrote this file.
  9.  * As long as you retain this notice you can do whatever you want with
  10.  * this stuff. If we meet some day, and you think this stuff is worth it,
  11.  * you can buy me a beer in return.
  12.  *
  13.  * $Author$
  14.  * $Revision$
  15.  *
  16.  * @category    MediaSearch
  17.  * @package     Zend_Controller
  18.  * @copyright   Copyright (c) 2009 Sven Strittmatter
  19.  */
  20.  
  21. /**
  22.  * Default index controller.
  23.  *
  24.  * @see Zend_Controller
  25.  *
  26.  * @category   MediaSearch
  27.  * @package    Zend_Controller_Action
  28.  * @copyright  Copyright (c) 2009 Sven Strittmatter
  29.  */
  30. class IndexController extends Zend_Controller_Action {
  31.     const TRACE_LEVEL 1;
  32.  
  33.     /**
  34.      * Inititialize json context to search action.
  35.      *
  36.      * @access public
  37.      */
  38.     public function init({
  39.         $contextSwitch $this->_helper->getHelper('contextSwitch');
  40.         $contextSwitch->addActionContext('search''json')
  41.                       ->initContext('json');
  42.     }
  43.  
  44.     /**
  45.      * Index action. Shows the count of keywords and indexed files.
  46.      * Also sets a different jquery version debending on APPLICATION_ENV.
  47.      *
  48.      * @access public
  49.      */
  50.     public function indexAction({
  51.         $jQueryResourceUrl $this->view->serverUrl(true);
  52.  
  53.         if (APPLICATION_ENV === 'development'{
  54.             $jQueryResourceUrl .= '/js/jquery.min.js';
  55.         else {
  56.             $jQueryResourceUrl .= '/js/jquery.js';
  57.         }
  58.  
  59.         $this->view->jQuery()->enable();
  60.         $this->view->jQuery()->setLocalPath($jQueryResourceUrl);
  61.         $fileMetaModel new MediaSearch_Model_FileMeta();
  62.         $this->view->indexedFilesCount $fileMetaModel->count();
  63.         $keyWordModel new MediaSearch_Model_KeyWord();
  64.         $this->view->indexedKeyWordsCount $keyWordModel->count();
  65.         $this->view->self $_SERVER['PHP_SELF'];
  66.     }
  67.  
  68.     /**
  69.      * Search action. Is performed by the clientside java script.
  70.      * This action doesnt have a view script becaus it works only in
  71.      * json context.
  72.      *
  73.      * @access public
  74.      */
  75.     public function searchAction({
  76.         $queryString $this->getRequest()->getParam('query''');
  77.         MediaSearch_Log::trace('Got a query string: ' $queryString);
  78.         MediaSearch_Log::trace('Set up the search query.'self::TRACE_LEVEL);
  79.         $query new MediaSearch_Search_Query($queryString);
  80.         MediaSearch_Log::trace('Set up the search engine.'self::TRACE_LEVEL);
  81.         $searchEngine new MediaSearch_Search_Engine();
  82.         $searchEngine->setQuery($query);
  83.         $option $this->getRequest()->getParam('option'false);
  84.  
  85.         if ($option{
  86.             MediaSearch_Log::trace('Got options by the request: ' $optionself::TRACE_LEVEL);
  87.             $this->setIncludeOption($searchEngine$option);
  88.         }
  89.  
  90.         MediaSearch_Log::trace('Doing the search.'self::TRACE_LEVEL);
  91.         $searchEngine->search();
  92.         
  93.         $this->view->data   $searchEngine->toArray();
  94.         $this->view->length $searchEngine->count();
  95.     }
  96.  
  97.     /**
  98.      * Sets the file type inclusion on the search engine depending of
  99.      * the given option name.
  100.      *
  101.      * @access private
  102.      * @param MediaSearch_Search_Engine $searchEngine 
  103.      * @param string $option 
  104.      */
  105.     private function setIncludeOption(MediaSearch_Search_Engine $searchEngine$option{
  106.         switch ($option{
  107.             case 'movies':
  108.                 MediaSearch_Log::trace('Setting inclusion to MOVIES');
  109.                 $searchEngine->setInclude(MediaSearch_Search_Engine::MOVIES);
  110.                 break;
  111.             case 'music':
  112.                 MediaSearch_Log::trace('Setting inclusion to MUSIC');
  113.                 $searchEngine->setInclude(MediaSearch_Search_Engine::MUSIC);
  114.                 break;
  115.             case 'software':
  116.                 MediaSearch_Log::trace('Setting inclusion to SOFTWARE');
  117.                 $searchEngine->setInclude(MediaSearch_Search_Engine::SOFTWARE);
  118.                 break;
  119.             default:
  120.             case 'all':
  121.                 MediaSearch_Log::trace('Setting inclusion to ALL');
  122.                 $searchEngine->setInclude(MediaSearch_Search_Engine::ALL);
  123.                 break;
  124.         }
  125.     }
  126. }

Documentation generated on Mon, 17 Aug 2009 14:53:03 +0200 by phpDocumentor 1.4.2