private function ModuleActivitiesForm::activitiesToForm in Opigno module 3.x
Same name and namespace in other branches
- 8 src/Form/ModuleActivitiesForm.php \Drupal\opigno_module\Form\ModuleActivitiesForm::activitiesToForm()
Build Module activities list table.
1 call to ModuleActivitiesForm::activitiesToForm()
- ModuleActivitiesForm::buildForm in src/
Form/ ModuleActivitiesForm.php - Form constructor.
File
- src/
Form/ ModuleActivitiesForm.php, line 90
Class
- ModuleActivitiesForm
- Class ModuleActivitiesForm.
Namespace
Drupal\opigno_module\FormCode
private function activitiesToForm(array &$form, array $activities, OpignoModuleInterface $opigno_module, array $activity_types) {
$current_user = \Drupal::currentUser();
// Build activities table headers.
$headers = [
$this
->t('Question'),
$this
->t('Type'),
$this
->t('Actions'),
$this
->t('Max score'),
[
'data' => $this
->t('Delete'),
'class' => [
'checkbox',
],
],
$this
->t('Weight'),
];
$form['activities_list']['#header'] = $headers;
$activities_list =& $form['activities_list'];
foreach ($activities as $activity) {
$activity_id = $activity->id . '-' . $activity->vid;
$activities_list[$activity_id]['#attributes']['class'][] = 'draggable';
$activities_list[$activity_id]['#weight'] = $activity->weight;
/* @todo Check for view activity outside module permission */
// Table title field.
$activities_list[$activity_id]['title'] = Link::createFromRoute($activity->name, 'entity.opigno_activity.canonical', [
'opigno_activity' => $activity->id,
])
->toRenderable();
// Output Activity type.
$activities_list[$activity_id]['type'] = [
'#plain_text' => !empty($activity_types[$activity->type]) ? $activity_types[$activity->type]
->label() : '',
];
// Check for permission and output activity edit link.
if ($current_user
->hasPermission('edit activity entities')) {
$activities_list[$activity_id]['actions'] = Link::createFromRoute($this
->t('Edit'), 'entity.opigno_activity.edit_form', [
'opigno_activity' => $activity->id,
], [
'query' => [
'destination' => Url::createFromRequest(\Drupal::request())
->toString(),
],
])
->toRenderable();
}
else {
$activities_list[$activity_id]['actions'] = [
'#plain_text' => '',
];
}
$activities_list[$activity_id]['max_score'] = [
'#type' => 'textfield',
'#default_value' => is_numeric($activity->max_score) ? $activity->max_score : 0,
'#element_validate' => [
[
$this,
'maxScoreValidate',
],
],
];
$activities_list[$activity_id]['delete'] = [
'#type' => 'checkbox',
'#default_value' => 0,
'#attributes' => [
'class' => [
'checkbox',
],
],
'#wrapper_attributes' => [
'class' => [
'checkbox',
],
],
];
$activities_list[$activity_id]['weight'] = [
'#type' => 'weight',
'#title' => $this
->t('Weight'),
'#title_display' => 'invisible',
'#default_value' => $activity->weight,
'#delta' => 500,
// Classify the weight element for #tabledrag.
'#attributes' => [
'class' => [
'activities-list-order-weight',
],
],
];
}
}