diff --git a/.travis.yml b/.travis.yml index 3de1bea..398d84a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ dist: precise matrix: include: + - php: 7.2 - php: 7.1 - php: 7.0 @@ -32,8 +33,8 @@ script: - > echo; echo "Running PHP codesniffer"; - .Build/bin/phpcs --standard=PSR2 --extensions=php --ignore=*./Tests/* --ignore=*./Configuration/* --ignore=*./.Build/* . - .Build/bin/phpcs -n --standard=PSR2 --extensions=php --ignore=*./Tests/* --ignore=*./Classes/* --ignore=*./.Build/* . + .Build/bin/phpcs --standard=PSR2 --extensions=php Classes/ + .Build/bin/phpcs -n --standard=PSR2 --extensions=php --ignore=*./Tests/*,*./Classes/*,*./.Build/* . - > echo; diff --git a/Classes/Controller/AbstractController.php b/Classes/Controller/AbstractController.php new file mode 100644 index 0000000..4305a6e --- /dev/null +++ b/Classes/Controller/AbstractController.php @@ -0,0 +1,141 @@ +getQuestions() as $question) { + $questionData = []; + $allAnswersCount = 0; + + /** @noinspection PhpUndefinedMethodInspection */ + $userAnswers = $this->userAnswerRepository->findByQuestion($question); + + /** @var UserAnswer $userAnswer */ + foreach ($userAnswers as $userAnswer) { + // if check box or radio + if ($userAnswer->getAnswers()->count() > 0) { + /** @var Answer $answer */ + foreach ($userAnswer->getAnswers() as $answer) { + if (!is_array($questionData[$answer->getUid()])) { + $questionData[$answer->getUid()] = [ + 'label' => $answer->getText(), + 'count' => 1 + ]; + } else { + $questionData[$answer->getUid()]['count'] += 1; + } + + $allAnswersCount++; + } + } elseif (!empty($userAnswer->getCustomValue())) { // custom value + $identifier = GeneralUtility::shortMD5($userAnswer->getCustomValue()); + + if (!is_array($questionData[$identifier])) { + $questionData[$identifier] = [ + 'label' => $userAnswer->getCustomValue(), + 'count' => 1 + ]; + } else { + $questionData[$identifier]['count'] += 1; + } + + $allAnswersCount++; + } + } + + // add to data array + $data[$question->getUid()] = [ + 'questionData' => $this->calculatePercentsForQuestionData($questionData, $allAnswersCount), + 'labelChart' => SurveyMainUtility::translate('module.percentages'), + 'label' => $question->getText(), + 'allAnswersCount' => $allAnswersCount + ]; + } + + return $data; + } + + /** + * Count in percents user answers + * + * @param array $questionData + * @param int $allAnswersCount + * @return array + */ + protected function calculatePercentsForQuestionData(array $questionData, int $allAnswersCount): array + { + foreach ($questionData as &$questionItem) { + $questionItem['percents'] = (string)(round($questionItem['count'] / $allAnswersCount, 3) * 100); + } + + return $questionData; + } +} diff --git a/Classes/Controller/SurveyAnalysisController.php b/Classes/Controller/SurveyAnalysisController.php index f2ea773..fa502f2 100644 --- a/Classes/Controller/SurveyAnalysisController.php +++ b/Classes/Controller/SurveyAnalysisController.php @@ -24,14 +24,13 @@ use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\View\ViewInterface; /** * Class SurveyAnalysisController * @package Pixelant\PxaSurvey\Controller */ -class SurveyAnalysisController extends ActionController +class SurveyAnalysisController extends AbstractController { /** * BackendTemplateContainer @@ -47,22 +46,6 @@ class SurveyAnalysisController extends ActionController */ protected $defaultViewObjectName = BackendTemplateView::class; - /** - * Survey Repository - * - * @var \Pixelant\PxaSurvey\Domain\Repository\SurveyRepository - * @inject - */ - protected $surveyRepository = null; - - /** - * User Answer Repository - * - * @var \Pixelant\PxaSurvey\Domain\Repository\UserAnswerRepository - * @inject - */ - protected $userAnswerRepository = null; - /** * Current page * @@ -168,85 +151,6 @@ public function exportCsvAction(Survey $survey) exit(0); } - /** - * Generate data for Charts.js - * - * @param Survey $survey - * @return array - */ - protected function generateAnalysisData(Survey $survey): array - { - $data = []; - - /** @var Question $question */ - foreach ($survey->getQuestions() as $question) { - $questionData = []; - $allAnswersCount = 0; - - /** @noinspection PhpUndefinedMethodInspection */ - $userAnswers = $this->userAnswerRepository->findByQuestion($question); - - /** @var UserAnswer $userAnswer */ - foreach ($userAnswers as $userAnswer) { - // if check box or radio - if ($userAnswer->getAnswers()->count() > 0) { - /** @var Answer $answer */ - foreach ($userAnswer->getAnswers() as $answer) { - if (!is_array($questionData[$answer->getUid()])) { - $questionData[$answer->getUid()] = [ - 'label' => $answer->getText(), - 'count' => 1 - ]; - } else { - $questionData[$answer->getUid()]['count'] += 1; - } - - $allAnswersCount++; - } - } elseif (!empty($userAnswer->getCustomValue())) { // custom value - $identifier = GeneralUtility::shortMD5($userAnswer->getCustomValue()); - - if (!is_array($questionData[$identifier])) { - $questionData[$identifier] = [ - 'label' => $userAnswer->getCustomValue(), - 'count' => 1 - ]; - } else { - $questionData[$identifier]['count'] += 1; - } - - $allAnswersCount++; - } - } - - // add to data array - $data[$question->getUid()] = [ - 'questionData' => $this->calculatePercentsForQuestionData($questionData, $allAnswersCount), - 'labelChart' => SurveyMainUtility::translate('module.percentages'), - 'label' => $question->getText(), - 'allAnswersCount' => $allAnswersCount - ]; - } - - return $data; - } - - /** - * Count in percents user answers - * - * @param array $questionData - * @param int $allAnswersCount - * @return array - */ - protected function calculatePercentsForQuestionData(array $questionData, int $allAnswersCount): array - { - foreach ($questionData as &$questionItem) { - $questionItem['percents'] = (string)(round($questionItem['count'] / $allAnswersCount, 3) * 100); - } - - return $questionData; - } - /** * Set up view * diff --git a/Classes/Controller/SurveyController.php b/Classes/Controller/SurveyController.php index e0e8263..fa32078 100644 --- a/Classes/Controller/SurveyController.php +++ b/Classes/Controller/SurveyController.php @@ -22,45 +22,12 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\CMS\Extbase\Domain\Model\FrontendUser; -use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; /** * SurveyController */ -class SurveyController extends ActionController +class SurveyController extends AbstractController { - /** - * Survey Repository - * - * @var \Pixelant\PxaSurvey\Domain\Repository\SurveyRepository - * @inject - */ - protected $surveyRepository = null; - - /** - * User Answer Repository - * - * @var \Pixelant\PxaSurvey\Domain\Repository\UserAnswerRepository - * @inject - */ - protected $userAnswerRepository = null; - - /** - * Answer Repository - * - * @var \Pixelant\PxaSurvey\Domain\Repository\AnswerRepository - * @inject - */ - protected $answerRepository = null; - - /** - * Frontend User Repository - * - * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository - * @inject - */ - protected $frontendUserRepository = null; - /** * Include reCAPTCHA api js */ @@ -88,14 +55,12 @@ public function initializeShowAction() /** * action show * - * @param Survey $survey * @return void */ - public function showAction(Survey $survey = null) + public function showAction() { - if ($survey === null && ($surveyUid = (int)$this->settings['survey'])) { - $survey = $this->surveyRepository->findByUid($surveyUid); - } + /** @var Survey $survey */ + $survey = $this->surveyRepository->findByUid((int)$this->settings['survey']); if ($survey !== null && !$this->isSurveyAllowed($survey)) { /** @noinspection PhpUnhandledExceptionInspection */ @@ -141,8 +106,7 @@ public function answerAction(Survey $survey, Question $currentQuestion = null) SurveyMainUtility::addAnswerToSessionData($survey->getUid(), $answers); // Show next question - /** @noinspection PhpUnhandledExceptionInspection */ - $this->forward('show', null, null, ['survey' => $survey]); + $this->forward('show'); } } @@ -159,6 +123,23 @@ public function finishAction(Survey $survey, bool $alreadyFinished = false) ->assign('alreadyFinished', $alreadyFinished); } + /** + * Show survey results + */ + public function showResultsAction() + { + /** @var Survey $survey */ + $survey = $this->surveyRepository->findByUid((int)$this->settings['survey']); + + $data = $survey !== null + ? $this->generateAnalysisData($survey) + : []; + + $this->view + ->assign('survey', $survey) + ->assign('data', $data); + } + /** * Get answers from request * diff --git a/Classes/Hooks/ListTypeInfoPreviewHook.php b/Classes/Hooks/ListTypeInfoPreviewHook.php index 8cb8ecf..b8100f5 100644 --- a/Classes/Hooks/ListTypeInfoPreviewHook.php +++ b/Classes/Hooks/ListTypeInfoPreviewHook.php @@ -13,11 +13,15 @@ * ***/ + +use Pixelant\PxaSurvey\Utility\SurveyMainUtility as MainUtility; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Extbase\Service\FlexFormService; use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Fluid\View\StandaloneView; + /** * Class ListTypeInfoPreviewHook * @package Pixelant\PxaSurvey\Hooks @@ -32,30 +36,31 @@ class ListTypeInfoPreviewHook */ public function getExtensionSummary(array $params): string { - $flexFormData = GeneralUtility::xml2array($params['row']['pi_flexform'] ?? ''); - $flexFormSettings = []; - if (is_array($flexFormData['data']['sDEF']['lDEF'])) { - foreach ($flexFormData['data'] as $sheet) { - $rawSettings = $sheet['lDEF']; - foreach ($rawSettings as $field => $rawSetting) { - $this->flexFormToArray($field, $rawSetting['vDEF'], $flexFormSettings); - } - } - } + $flexFormService = GeneralUtility::makeInstance(FlexFormService::class); + $flexFormData = $flexFormService->convertFlexFormContentToArray($params['row']['pi_flexform'] ?? ''); - $surveyRow = BackendUtility::getRecord( - 'tx_pxasurvey_domain_model_survey', - $surveyUid = (int)$flexFormSettings['settings']['survey'], - 'name' - ); + if (is_array($flexFormData['settings'])) { + $surveyUid = (int)$flexFormData['settings']['survey']; + $allowedActions = GeneralUtility::trimExplode(';', $flexFormData['switchableControllerActions']); + list(, $action) = GeneralUtility::trimExplode('->', $allowedActions[0]); - $view = $this->getView(); - $view - ->assign('settings', $flexFormSettings['settings']) - ->assign('surveyRow', $surveyRow); + $surveyRow = BackendUtility::getRecord( + 'tx_pxasurvey_domain_model_survey', + $surveyUid, + 'name' + ); + + $view = $this->getView(); + $view + ->assign('settings', $flexFormData['settings']) + ->assign('surveyRow', $surveyRow) + ->assign('action', GeneralUtility::camelCaseToLowerCaseUnderscored($action)); + + return $view->render(); + } - return $view->render(); + return ''; } /** @@ -75,27 +80,4 @@ protected function getView(): StandaloneView return $view; } - - /** - * Go through all settings and generate array - * - * @param string $field - * @param mixed $value - * @param array $settings - * @return void - */ - protected function flexFormToArray($field, $value, &$settings) - { - $fieldNameParts = GeneralUtility::trimExplode('.', $field); - if (count($fieldNameParts) > 1) { - $name = $fieldNameParts[0]; - unset($fieldNameParts[0]); - if (!isset($settings[$name])) { - $settings[$name] = []; - } - $this->flexFormToArray(implode('.', $fieldNameParts), $value, $settings[$name]); - } else { - $settings[$fieldNameParts[0]] = $value; - } - } } diff --git a/Configuration/FlexForms/FlexformSurvey.xml b/Configuration/FlexForms/FlexformSurvey.xml index af41b23..407b3a0 100644 --- a/Configuration/FlexForms/FlexformSurvey.xml +++ b/Configuration/FlexForms/FlexformSurvey.xml @@ -1,93 +1,124 @@ - - - - - LLL:EXT:pxa_survey/Resources/Private/Language/locallang_be.xlf:flexform.sheet_title - - array - - - - - - group - db - tx_pxasurvey_domain_model_survey - 1 - 1 - 1 - 1 - - - suggest - - - - - + + + + + LLL:EXT:pxa_survey/Resources/Private/Language/locallang_be.xlf:flexform.sheet_title + + array + + + + + reload + + select + selectSingle + + + LLL:EXT:pxa_survey/Resources/Private/Language/locallang_be.xlf:flexform.mode.show + Survey->show;Survey->answer;Survey->finish + + + LLL:EXT:pxa_survey/Resources/Private/Language/locallang_be.xlf:flexform.mode.show_results + Survey->showResults + + + + + - - - - - check - 0 - - - + + + + + group + db + tx_pxasurvey_domain_model_survey + 1 + 1 + 1 + 1 + + + suggest + + + + + - - - - - check - 0 - - - + + + + FIELD:switchableControllerActions:!=:Survey->showResults + + check + 0 + + + - - - - - check - 0 - - - - - - - - - - LLL:EXT:pxa_survey/Resources/Private/Language/locallang_be.xlf:flexform.sheet_messages_title - - array - - - - - text - 40 - 15 - 1 - - + + + + reload + FIELD:switchableControllerActions:!=:Survey->showResults + + check + 0 + + + - - - FIELD:sDEF.settings.allowMultipleAnswerOnSurvey:REQ:FALSE - - text - 40 - 15 - 1 - - - - - - + + + + FIELD:switchableControllerActions:!=:Survey->showResults + + check + 0 + + + + + + + + + + LLL:EXT:pxa_survey/Resources/Private/Language/locallang_be.xlf:flexform.sheet_messages_title + + array + + + + FIELD:sDEF.switchableControllerActions:!=:Survey->showResults + + text + 40 + 15 + 1 + + + + + + + + FIELD:sDEF.settings.allowMultipleAnswerOnSurvey:REQ:FALSE + FIELD:sDEF.switchableControllerActions:!=:Survey->showResults + + + + text + 40 + 15 + 1 + + + + + + \ No newline at end of file diff --git a/Configuration/TypoScript/setup.ts b/Configuration/TypoScript/setup.ts index 41f5ab5..28b6954 100644 --- a/Configuration/TypoScript/setup.ts +++ b/Configuration/TypoScript/setup.ts @@ -66,4 +66,7 @@ page { includeJSFooter { pxa_survey = EXT:pxa_survey/Resources/Public/JavaScript/pxa_survey.js } + includeCSS { + pxa_survey = EXT:pxa_survey/Resources/Public/Css/pxa_survey.css + } } diff --git a/Documentation/EditorManual/Plugin/Index.rst b/Documentation/EditorManual/Plugin/Index.rst index 126e44b..c5463a6 100644 --- a/Documentation/EditorManual/Plugin/Index.rst +++ b/Documentation/EditorManual/Plugin/Index.rst @@ -12,6 +12,7 @@ Add plugin with survey on a page - Create a new Content Element **Plugins -> Simple survey** - In plugin settings window **choose Survey from storage folder** +- Choose plugin mode, either **"show survey" or "survey results"** - It is possible to show all question at once or do survey step by step, depends on **Show all questions at once" checkbox** - Enable or disable multiple participation in survey , depends on **Allow user to take part in survey more than once" checkbox** - Enable or disable reCAPTCHA protection **Protect with reCAPTCHA** diff --git a/Documentation/Images/EditorManual/Selection_020.jpg b/Documentation/Images/EditorManual/Selection_020.jpg index ba72997..2bf90e0 100644 Binary files a/Documentation/Images/EditorManual/Selection_020.jpg and b/Documentation/Images/EditorManual/Selection_020.jpg differ diff --git a/Documentation/Settings.yml b/Documentation/Settings.yml index d6aed8b..43fea59 100644 --- a/Documentation/Settings.yml +++ b/Documentation/Settings.yml @@ -8,10 +8,10 @@ --- conf.py: - copyright: 2017 + copyright: 2018 project: Simple Survey - version: 1.0.0 - release: 1.0.0 + version: 1.0 + release: 1.3.0 intersphinx_mapping: t3tsref: - http://docs.typo3.org/typo3cms/TyposcriptReference/ diff --git a/README.MD b/README.MD index 9ed208a..35e82ec 100644 --- a/README.MD +++ b/README.MD @@ -30,6 +30,7 @@ * Create page that'll contain plugin * Add new content element, go to "Plugins" tab and choose "Simple survey" * Choose survey from storage + * Choose plugin mode, either "show survey" or "survey results". * Show all questions at once - show questions step by step or all * Allow/Disallow user to take part in survey more than once * Protect with [reCAPTCHA](https://www.google.com/recaptcha/) diff --git a/Resources/Private/Language/locallang.xlf b/Resources/Private/Language/locallang.xlf index 9e87a99..898322f 100644 --- a/Resources/Private/Language/locallang.xlf +++ b/Resources/Private/Language/locallang.xlf @@ -1,48 +1,51 @@ - -
- - - Survey was not found - - - Other: - - - type answer - - - Send - - - Next - - - You should either specified one of the options or use input field. - - - This question is required to be answered. - - - You didn't pass reCAPTCHA check. Please, try again. - - - You should answer at least one question. - - - Question %d of %d. - - - Thank you for your participation. - - - You have already passed this survey - - - Key or secret is missing for reCAPTCHA. - - - + +
+ + + Survey was not found + + + Other: + + + type answer + + + Send + + + Next + + + You should either specified one of the options or use input field. + + + This question is required to be answered. + + + You didn't pass reCAPTCHA check. Please, try again. + + + You should answer at least one question. + + + Question %d of %d. + + + Thank you for your participation. + + + You have already passed this survey + + + Key or secret is missing for reCAPTCHA. + + + total answers count - %d + + + \ No newline at end of file diff --git a/Resources/Private/Language/locallang_be.xlf b/Resources/Private/Language/locallang_be.xlf index df2128a..00ce9ab 100644 --- a/Resources/Private/Language/locallang_be.xlf +++ b/Resources/Private/Language/locallang_be.xlf @@ -1,142 +1,154 @@ - -
- - - Configuration - - - Messages - - - Plugin mode - - - Choose survey - - - Show all questions at once - - - Message displayed right after survey is finished - - - Message for user that has finished survey already - - - Allow user to take part in survey more than once - - - Protect with reCAPTCHA - + +
+ + + Configuration + + + Messages + + + Plugin mode + + + Choose survey + + + Show all questions at once + + + Message displayed right after survey is finished + + + Message for user that has finished survey already + + + Allow user to take part in survey more than once + + + Choose mode + + + Show survey questions + + + Show survey results + + + Mode + + + Protect with reCAPTCHA + - - Simple survey - - - Survey form output. - + + Simple survey + + + Survey form output. + - - - Simple survey - - - Yes - - - No - - - Survey - - - Show all question - - - Multiple participation in survey - - - Protect with reCAPTCHA - - + + + Simple survey + + + Yes + + + No + + + Survey + + + Show all question + + + Multiple participation in survey + + + Protect with reCAPTCHA + + - - - No surveys found - - - The current page does not contain any survey records. Select another page. - - - Survey analysis - - - Survey name - - - Analysis - - - See analysis - - - Edit - - - Edit survey - - - Create survey - - - Percentages - - - Count - - - No answers yet. - - - Total answers - %d. - - - Pie chart view - - - Bar chart view - - - Export in CSV format - - - Export survey - - - Answers - - - Go back to list - - + + + No surveys found + + + The current page does not contain any survey records. Select another page. + + + Survey analysis + + + Survey name + + + Analysis + + + See analysis + + + Edit + + + Edit survey + + + Create survey + + + Percentages + + + Count + + + No answers yet. + + + Total answers - %d. + + + Pie chart view + + + Bar chart view + + + Export in CSV format + + + Export survey + + + Answers + + + Go back to list + + - - - Simple survey settings - - - reCAPTCHA secret - - - Site secret - - - Site key - - - - + + + Simple survey settings + + + reCAPTCHA secret + + + Site secret + + + Site key + + + + \ No newline at end of file diff --git a/Resources/Private/Templates/PageLayoutPreview/ListTypeInfoPreviewHook.html b/Resources/Private/Templates/PageLayoutPreview/ListTypeInfoPreviewHook.html index 602404a..0e72930 100644 --- a/Resources/Private/Templates/PageLayoutPreview/ListTypeInfoPreviewHook.html +++ b/Resources/Private/Templates/PageLayoutPreview/ListTypeInfoPreviewHook.html @@ -1,17 +1,37 @@ - - - -

-

-    : {surveyRow.name}
- Checkboxes values - - - -
+ + + + + + +

+

+        
+
+        Checkboxes values
+        
+        
+        
+    
+
+ + + + + +

+

+        
+    
+
+ + + : {surveyRow.name}
+ :
+
:
diff --git a/Resources/Private/Templates/Survey/ShowResults.html b/Resources/Private/Templates/Survey/ShowResults.html new file mode 100644 index 0000000..94c7903 --- /dev/null +++ b/Resources/Private/Templates/Survey/ShowResults.html @@ -0,0 +1,31 @@ + + + + + + + +

{survey.title}

+ + +
    +
  • + {questionRow.label} () +
      + +
    1. + {questionData.label} - {questionData.count} ({questionData.percents}%) + +
    2. +
      +
    +
  • +
+
+
+ +

+
+
+
+ \ No newline at end of file diff --git a/Resources/Public/Css/pxa_survey.css b/Resources/Public/Css/pxa_survey.css new file mode 100644 index 0000000..8ed6b72 --- /dev/null +++ b/Resources/Public/Css/pxa_survey.css @@ -0,0 +1,26 @@ +.pxa-result-bar { + display: inline-block; + height: 10px; + background: #7d7d7d; +} + +.pxa-result-row { + position: relative; + width: 100%; +} + +.pxa-result-percents { + position: absolute; + right: 0; +} + +.pxa-result-bar { + position: absolute; + top: 25px; + left: 0; +} + +.pxa-result-text { + padding-bottom: 15px; + display: inline-block; +} diff --git a/Resources/Public/JavaScript/Survey.js b/Resources/Public/JavaScript/Survey.js index b4030e0..5021d7e 100644 --- a/Resources/Public/JavaScript/Survey.js +++ b/Resources/Public/JavaScript/Survey.js @@ -14,8 +14,8 @@ PxaSurvey = (function () { function PxaSurvey(settings) { this._cacheQuestionIds = {}; this._$additionalAnswerInput = $(settings.additionalAnswerInput); - this._$progressBar =$(settings.progressBar); - this._$form =$(settings.form); + this._$progressBar = $(settings.progressBar); + this._$form = $(settings.form); } PxaSurvey.prototype = { diff --git a/composer.json b/composer.json index 9900dee..c71a45c 100644 --- a/composer.json +++ b/composer.json @@ -13,9 +13,8 @@ "php": ">=7.0" }, "require-dev": { - "squizlabs/php_codesniffer": "2.*", - "phpunit/phpunit": "~5.6.0", - "nimut/testing-framework": "^1.1" + "squizlabs/php_codesniffer": "~3.3.0", + "nimut/testing-framework": "~4.0.0" }, "autoload": { "psr-4": { diff --git a/ext_emconf.php b/ext_emconf.php index c0cbac3..d768425 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -12,17 +12,17 @@ $EM_CONF[$_EXTKEY] = [ 'title' => 'Simple Survey', - 'description' => 'Create simple survey. View results in the BE module', + 'description' => 'Create simple survey. Simpel view of result on FE. View results in the BE module', 'category' => 'plugin', 'author' => 'Andriy Oprysko', 'author_email' => '', 'state' => 'stable', 'clearCacheOnLoad' => 0, - 'version' => '1.2.2', + 'version' => '1.3.0', 'constraints' => [ 'depends' => [ 'typo3' => '8.7.0-8.7.99', - 'php' => '7.0.0-7.1.99' + 'php' => '7.0.0-7.2.99' ], 'conflicts' => [], 'suggests' => [], diff --git a/ext_localconf.php b/ext_localconf.php index 0330829..cbc375c 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -7,11 +7,11 @@ function () { 'Pixelant.PxaSurvey', 'Survey', [ - 'Survey' => 'show, answer, finish' + 'Survey' => 'show, showResults, answer, finish' ], // non-cacheable actions [ - 'Survey' => 'show, answer, finish' + 'Survey' => 'show, showResults, answer, finish' ] );