ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
ilAssQuestionTypeOrderer Class Reference
+ Collaboration diagram for ilAssQuestionTypeOrderer:

Public Member Functions

 __construct ($unOrderedTypes, $orderMode=self::ORDER_MODE_ALPHA)
 Constructor. More...
 
 getOrderedTypes ()
 getter for ordered question types More...
 
 fixQuestionTypeOrderSortCallback ($a, $b)
 custom sort callback for ordering the question types More...
 

Data Fields

const ORDER_MODE_FIX = 'fix'
 order mode with fixed priority for ordering More...
 
const ORDER_MODE_ALPHA = 'alpha'
 order mode that orders by alphanumerical priority More...
 

Static Public Attributes

static $fixQuestionTypeOrder
 
static $flippedQuestionTypeOrder = null
 

Detailed Description

Definition at line 14 of file class.ilAssQuestionTypeOrderer.php.

Constructor & Destructor Documentation

◆ __construct()

ilAssQuestionTypeOrderer::__construct (   $unOrderedTypes,
  $orderMode = self::ORDER_MODE_ALPHA 
)

Constructor.

Parameters
array$unOrderedTypes
string$orderMode
Exceptions
ilTestQuestionPoolException

Definition at line 70 of file class.ilAssQuestionTypeOrderer.php.

References array.

71  {
72  self::$flippedQuestionTypeOrder = array_flip(self::$fixQuestionTypeOrder);
73  #vd($unOrderedTypes);
74  $this->types = $unOrderedTypes;
75 
76  switch($orderMode)
77  {
78  case self::ORDER_MODE_FIX:
79 
80  uasort($this->types, array($this, 'fixQuestionTypeOrderSortCallback'));
81  break;
82 
83  case self::ORDER_MODE_ALPHA:
84 
85  ksort($this->types);
86  break;
87 
88  default:
89 
90  throw new ilTestQuestionPoolException('invalid order mode given: '.$orderMode);
91  }
92 
93  #vd($this->types);
94  }
Create styles array
The data for the language used.

Member Function Documentation

◆ fixQuestionTypeOrderSortCallback()

ilAssQuestionTypeOrderer::fixQuestionTypeOrderSortCallback (   $a,
  $b 
)

custom sort callback for ordering the question types

public

Parameters
array$a
array$b
Returns
integer

Definition at line 114 of file class.ilAssQuestionTypeOrderer.php.

115  {
116  if( self::$flippedQuestionTypeOrder[ $a['type_tag'] ] > self::$flippedQuestionTypeOrder[ $b['type_tag'] ] )
117  {
118  return 1;
119  }
120  elseif( !isset(self::$flippedQuestionTypeOrder[ $a['type_tag'] ]) )
121  {
122  return 1;
123  }
124  elseif( self::$flippedQuestionTypeOrder[ $a['type_tag'] ] < self::$flippedQuestionTypeOrder[ $b['type_tag'] ] )
125  {
126  return -1;
127  }
128  elseif( !isset(self::$flippedQuestionTypeOrder[ $b['type_tag'] ]) )
129  {
130  return -1;
131  }
132 
133  return 0;
134  }

◆ getOrderedTypes()

ilAssQuestionTypeOrderer::getOrderedTypes ( )

getter for ordered question types

Returns
array $orderedQuestionTypes

Definition at line 101 of file class.ilAssQuestionTypeOrderer.php.

102  {
103  return $this->types;
104  }

Field Documentation

◆ $fixQuestionTypeOrder

ilAssQuestionTypeOrderer::$fixQuestionTypeOrder
static
Initial value:
'assSingleChoice',
'assMultipleChoice',
'assKprimChoice',
'assErrorText',
'assImagemapQuestion',
'assClozeTest',
'assNumeric',
'assFormulaQuestion',
'assTextSubset',
'assOrderingQuestion',
'assOrderingHorizontal',
'assMatchingQuestion',
'assTextQuestion',
'assFileUpload',
'assLongMenu',
'assFlashQuestion',
'assJavaApplet',
)

Definition at line 31 of file class.ilAssQuestionTypeOrderer.php.

◆ $flippedQuestionTypeOrder

ilAssQuestionTypeOrderer::$flippedQuestionTypeOrder = null
static

Definition at line 61 of file class.ilAssQuestionTypeOrderer.php.

◆ ORDER_MODE_ALPHA

const ilAssQuestionTypeOrderer::ORDER_MODE_ALPHA = 'alpha'

order mode that orders by alphanumerical priority

Definition at line 24 of file class.ilAssQuestionTypeOrderer.php.

Referenced by ilObjQuestionPool\_getQuestionTypes().

◆ ORDER_MODE_FIX

const ilAssQuestionTypeOrderer::ORDER_MODE_FIX = 'fix'

order mode with fixed priority for ordering

Definition at line 19 of file class.ilAssQuestionTypeOrderer.php.

Referenced by ilObjQuestionPool\_getQuestionTypes().


The documentation for this class was generated from the following file: