-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathQuestionnaireAnswerSingleChoiceBehavior.php
More file actions
63 lines (57 loc) · 1.69 KB
/
QuestionnaireAnswerSingleChoiceBehavior.php
File metadata and controls
63 lines (57 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
/**
* QuestionnaireValidate Behavior
*
* @author Noriko Arai <arai@nii.ac.jp>
* @author Allcreator <info@allcreator.net>
* @link http://www.netcommons.org NetCommons Project
* @license http://www.netcommons.org/license.txt NetCommons License
* @copyright Copyright 2014, NetCommons Project
*/
App::uses('QuestionnaireAnswerSingleListBehavior', 'Questionnaires.Model/Behavior');
/**
* SingleChoice Behavior
*
* @package Questionnaires\Questionnaires\Model\Befavior\Answer
* @author Allcreator <info@allcreator.net>
*/
class QuestionnaireAnswerSingleChoiceBehavior extends QuestionnaireAnswerSingleListBehavior {
/**
* this answer type
*
* @var int
*/
protected $_myType = QuestionnairesComponent::TYPE_SELECTION;
/**
* this answer type
* data in database must be changed to array
*
* @var int
*/
protected $_isTypeAnsChgArr = true;
/**
* this answer type
* data array must be shift up for post data array in screen
*
* @var int
*/
protected $_isTypeAnsArrShiftUp = true;
/**
* beforeValidate is called before a model is validated, you can use this callback to
* add behavior validation rules into a models validate array. Returning false
* will allow you to make the validation fail.
*
* @param Model $model Model using this behavior
* @param array $options Options passed from Model::save().
* @return mixed False or null will abort the operation. Any other result will continue.
* @see Model::save()
*/
public function beforeValidate(Model $model, $options = array()) {
$question = $options['question'];
if ($question['question_type'] != $this->_myType) {
return;
}
parent::beforeValidate($model, $options);
$this->_setupOtherAnswerValue($model, $question);
}
}