示例#1
0
 /**
  * Основная страница модуля (маршрутизатор)
  * $params => array(
  *      'url' => 'survey',              // url к странице с модулем
  *      'show_list' => false,           // показывать ссылку на список незакрытых опросов
  *      'show_block' => false,          // вывести блок с последним открытым опросом
  *      'show_archive' => false,        // показывать ссылку на архив
  *      'show_quest_results' => true,   // показывать ссылку на результаты конктретного вопросоа
  * )
  *
  * @param array $params
  * @return mixed
  */
 function survey(&$params)
 {
     $this->params = $params;
     $this->page_obj =& Registry::get('TPage');
     if (!isset($this->params['url']) or !$this->params['url']) {
         $this->params['url'] = "survey";
     }
     if (isset($this->params['show_block']) and $this->params['show_block']) {
         return $this->showBlock();
     }
     switch ($this->page_obj->content['page']) {
         case 'archive':
             $ret = $this->getArchive();
             // Просмотр архива
             break;
         case 'list':
             $ret = $this->getList();
             // Просмотр списка опросов
             break;
         case 'surveydo':
             $ret = $this->surveydo();
             // Кто-то заполнил опросник
             break;
         case 'thanks':
             $ret = false;
             if ($_GET['from'] == 'survey_popup') {
                 echo "<script>\n                        window.opener.location = '/" . $this->params['url'] . "/thanks?id=" . (int) $_GET['id'] . "';\n                        window.close();\n\t    \t\t    </script>";
             }
             break;
         default:
             $ret = false;
     }
     $id = (int) get('id', '', 'g');
     if ($id and !$ret) {
         // Значит пришли смотреть результаты/голосовать в конкретный опрос
         $survey = $this->getSurvey($id);
         if (!$survey) {
             return false;
         }
         $ret['survey'] = $survey;
         $ret['survey']['total'] = $this->qrySurveyTotal($id);
         $show = $this->whatShow($survey);
         switch ($show) {
             case 'questions':
                 $ret['survey']['questions'] = $this->getQuests($id);
                 break;
             case 'results':
                 $resultsModel = new SurveyResultsModel($id);
                 $ret['survey']['results'] = $resultsModel->getResults();
                 break;
             case 'results_more':
                 $quest_id = (int) get('qid', 0, 'g');
                 $resultsModel = new SurveyResultsModel($id);
                 $ret['survey']['results_more'] = $resultsModel->getMoreResults($quest_id);
                 break;
             case 'none':
                 break;
         }
     }
     $ret['current_answers'] = isset($_SESSION['survey']['data']) ? $_SESSION['survey']['data'] : array();
     $ret['current_free_answers'] = isset($_SESSION['survey']['free']) ? $_SESSION['survey']['free'] : array();
     $ret['current_catalog_answers'] = isset($_SESSION['survey']['catalog']) ? $_SESSION['survey']['catalog'] : array();
     $_SESSION['survey']['data'] = $_SESSION['survey']['free'] = array();
     if ($ret) {
         $ret['params'] = $this->params;
         return $ret;
     } else {
         redirect('/' . $this->params['url'] . '/list/');
     }
 }
示例#2
0
文件: surveys.php 项目: romlg/cms36
 /**
  * Показ результатов по каждому вопросу
  * @return mixed
  */
 function showMoreResults()
 {
     $id = (int) get('id', 0, 'g');
     $qid = (int) get('qid', 0, 'g');
     if (!$id or !$qid) {
         return false;
     }
     $resultsModel = new SurveyResultsModel($id);
     $data = $resultsModel->getMoreResults($qid);
     $data['survey'] = sql_getRow('SELECT * FROM surveys WHERE id = ' . $id);
     $data['module_name'] = $this->name;
     $this->AddStrings($data);
     return $this->Parse($data, "surveys.moreresults.tmpl");
 }