QuestionOrderingService
in package
Question Ordering Service
Service class for handling the ordering of subquestions, and answer options.
Table of Contents
Properties
Methods
- __construct() : mixed
- Constructor
- getOrderedAnswers() : array<string|int, mixed>
- Get ordered answers for a question
- getOrderedSubQuestions() : array<string|int, mixed>
- Get ordered subquestions for a question
- applyAlphabeticalSorting() : array<string|int, mixed>
- Apply alphabetical sorting to items
- applyDefaultSorting() : array<string|int, mixed>
- Apply default sorting by item's own sort order
- applySorting() : array<string|int, mixed>
- Apply sorting to items (answers or subquestions) based on specified strategy
Properties
$randomizerHelper
private
RandomizerHelper
$randomizerHelper
$sortingStrategy
private
SortingStrategy
$sortingStrategy
Methods
__construct()
Constructor
public
__construct() : mixed
getOrderedAnswers()
Get ordered answers for a question
public
getOrderedAnswers(Question $question[, int|null $scaleId = null ][, string|null $language = null ]) : array<string|int, mixed>
Parameters
- $question : Question
-
The question model
- $scaleId : int|null = null
-
Optional scale ID filter
- $language : string|null = null
-
Language for sorting
Return values
array<string|int, mixed> —Ordered answers
getOrderedSubQuestions()
Get ordered subquestions for a question
public
getOrderedSubQuestions(Question $question[, int|null $scaleId = null ][, string|null $language = null ]) : array<string|int, mixed>
Parameters
- $question : Question
-
The question model
- $scaleId : int|null = null
-
Optional scale ID filter
- $language : string|null = null
-
Language for sorting
Return values
array<string|int, mixed> —Ordered subquestions
applyAlphabeticalSorting()
Apply alphabetical sorting to items
private
applyAlphabeticalSorting(array<string|int, mixed> $groupedItems, Question $question, string $context[, string|null $language = null ]) : array<string|int, mixed>
Parameters
- $groupedItems : array<string|int, mixed>
- $question : Question
- $context : string
-
'answers' or 'subquestions'
- $language : string|null = null
Return values
array<string|int, mixed>applyDefaultSorting()
Apply default sorting by item's own sort order
private
applyDefaultSorting(array<string|int, mixed> $groupedItems, string $context) : array<string|int, mixed>
Parameters
- $groupedItems : array<string|int, mixed>
- $context : string
-
'answers' or 'subquestions'
Return values
array<string|int, mixed>applySorting()
Apply sorting to items (answers or subquestions) based on specified strategy
private
applySorting(array<string|int, mixed> $groupedItems, Question $question, string $context, string $sortStrategy[, string|null $language = null ]) : array<string|int, mixed>
Parameters
- $groupedItems : array<string|int, mixed>
-
Items grouped by scale_id
- $question : Question
-
The question model
- $context : string
-
'answers' or 'subquestions'
- $sortStrategy : string
-
'random', 'alphabetical', or 'normal'
- $language : string|null = null
-
Language for alphabetical sorting
Return values
array<string|int, mixed> —Sorted items