View file application/modules/Core/widgets/search/Controller.php

File size: 2.36Kb
<?php
/**
 * SocialEngine - Search Widget Controller
 *
 * @category   Application_Core
 * @package    Core
 * @copyright  Copyright 2006-2012 Webligo Developments
 * @license    http://www.socialengine.com/license/
 * @version    $Id: Controller.php 9747 2012-07-26 02:08:08Z john $
 * @author     Matthew
 */

class Core_Widget_SearchController extends Engine_Content_Widget_Abstract
{
  public function indexAction()
  {
      $searchApi = Engine_Api::_()->getApi('search', 'core');      
      
      // check public settings
      $require_check = Engine_Api::_()->getApi('settings', 'core')->core_general_search;
      if( !$require_check && !Zend_Controller_Action_HelperBroker::getStaticHelper('RequireUser')->checkRequire() ) {
        $this->setNoRender();
        return;
      }
        
      // Prepare form
      $this->view->form = $form = new Core_Form_Search();
      // Set Correct Action for the Search Form
      $this->view->form->setAction( "http://" . $_SERVER['HTTP_HOST'] . _ENGINE_R_BASE . 'search' );
      
      // Get available types
      $availableTypes = $searchApi->getAvailableTypes();
      if( is_array($availableTypes) && engine_count($availableTypes) > 0 ) {
        $options = array();
        foreach( $availableTypes as $index => $type ) {
          $options[$type] = strtoupper('ITEM_TYPE_' . $type);
          }
        $form->type->addMultiOptions($options);
      } else {
        $form->removeElement('type');
        }       
        
      // Check form validity?
      $values = array();
      if( $form->isValid($this->_getAllParams()) ) {
        $values = $form->getValues();
        }
      $this->view->query = $query = (string) @$values['query'];
      $this->view->type = $type = (string) @$values['type'];
      $this->view->page = $page = (int) $this->_getParam('page');
      if( $query ) {
        $this->view->paginator = $searchApi->getPaginator($query, $type);
        $this->view->paginator->setCurrentPageNumber($page);
        }
        
      $this->view->viewer = $viewer = Engine_Api::_()->user()->getViewer();

    $require_check = Engine_Api::_()->getApi('settings', 'core')->core_general_search;
    if(!$require_check){
      if( $viewer->getIdentity()){
        $this->view->search_check = true;
      }
      else{
        $this->view->search_check = false;
      }
    }
    else $this->view->search_check = true;        
      }   
}
?>