From 7def6ca0b2446a3656b728768027c368c682b054 Mon Sep 17 00:00:00 2001 From: David Siegfried <david.siegfried@uni-vechta.de> Date: Thu, 7 Nov 2024 12:36:05 +0000 Subject: [PATCH] prevent php-warnings in resources-structure, fixes #4841 Closes #4841 Merge request studip/studip!3627 --- .../resources/building/_add_edit_form.php | 40 ++++++++++++++----- .../resources/building/select_category.php | 8 +++- .../resources/location/_add_edit_form.php | 40 ++++++++++++++----- .../resources/location/select_category.php | 8 +++- app/views/resources/room/select_category.php | 9 ++++- lib/models/resources/ResourceCategory.php | 4 +- 6 files changed, 83 insertions(+), 26 deletions(-) diff --git a/app/views/resources/building/_add_edit_form.php b/app/views/resources/building/_add_edit_form.php index bc07db2f47e..5871227755c 100644 --- a/app/views/resources/building/_add_edit_form.php +++ b/app/views/resources/building/_add_edit_form.php @@ -1,7 +1,25 @@ +<?php +/** + * @var Resources_BuildingController $controller + * @var bool $show_form + * @var string $mode + * @var string $name + * @var string $category_id + * @var string $description + * @var string $parent_id + * @var string $number + * @var string $address + * @var int $sort_position + * @var Building $building + * @var Building[] $possible_parents + * @var array $grouped_defined_properties + * @var array $property_data + */ +?> <? if ($show_form): ?> - <? $url = ($mode == 'add') - ? $controller->link_for('resources/building/add', ['category_id' => $category_id]) - : $controller->link_for('resources/building/edit/' . $building->id) ?> + <? $url = $mode === 'add' + ? $controller->add(['category_id' => $category_id]) + : $controller->edit($building->id) ?> <form class="default" method="post" action="<?= $url ?>" data-dialog="reload-on-close"> @@ -10,11 +28,11 @@ <legend><?= _('Grunddaten') ?></legend> <label> <?= _('Name des Gebäudes') ?> - <input type="text" name="name" value="<?= htmlReady($name) ?>"> + <input type="text" name="name" value="<?= htmlReady($name ?? '') ?>"> </label> <label> <?= _('Beschreibungstext') ?> - <input type="text" name="description" value="<?= htmlReady($description) ?>"> + <input type="text" name="description" value="<?= htmlReady($description ?? '') ?>"> </label> <label> <?= _('Standort / Hierarchie') ?> @@ -22,7 +40,7 @@ <option value=""><?= _('Bitte wählen') ?></option> <? foreach ($possible_parents as $resource): ?> <option value="<?= htmlReady($resource->id) ?>" - <?= $parent_id == $resource->id ? 'selected="selected"' : '' ?>> + <?= $parent_id === $resource->id ? 'selected' : '' ?>> <?= htmlReady('/' . implode('/', ResourceManager::getHierarchyNames($resource))) ?> </option> <? endforeach ?> @@ -30,16 +48,16 @@ </label> <label> <?= _('Gebäudenummer') ?> - <input type="text" name="number" value="<?= htmlReady($number) ?>"> + <input type="text" name="number" value="<?= htmlReady($number ?? '') ?>"> </label> <label> <?= _('Adresse') ?> - <input type="text" name="address" value="<?= htmlReady($address) ?>"> + <input type="text" name="address" value="<?= htmlReady($address ?? '') ?>"> </label> <? if ($GLOBALS['perm']->have_perm('root')): ?> <label> <?= _('Sortierposition') ?> - <input type="text" name="sort_position" value="<?= htmlReady($sort_position) ?>"> + <input type="text" name="sort_position" value="<?= htmlReady($sort_position ?? '') ?>"> </label> <? endif ?> @@ -53,12 +71,12 @@ ] ) ?> </fieldset> - <? if ($grouped_defined_properties): ?> + <? if (!empty($grouped_defined_properties)): ?> <?= $this->render_partial( 'resources/resource/_standard_properties_form_part.php', [ 'grouped_defined_properties' => $grouped_defined_properties, - 'property_data' => $property_data + 'property_data' => $property_data ?? [] ] ) ?> <? endif ?> diff --git a/app/views/resources/building/select_category.php b/app/views/resources/building/select_category.php index 429cfa89405..4d7e73353d0 100644 --- a/app/views/resources/building/select_category.php +++ b/app/views/resources/building/select_category.php @@ -1,5 +1,11 @@ +<?php +/** + * @var ResourceCategory[] $categories + * @var Resources_BuildingController $controller + */ +?> <? if ($categories) : ?> -<form method="get" action="<?= $controller->link_for('resources/building/add' . $room_id) ?>" class="default" +<form method="get" action="<?= $controller->add() ?>" class="default" data-dialog="size=auto"> <label> <?= _('Gebäudekategorie') ?> diff --git a/app/views/resources/location/_add_edit_form.php b/app/views/resources/location/_add_edit_form.php index 3ba317da6f4..dc91bd669c0 100644 --- a/app/views/resources/location/_add_edit_form.php +++ b/app/views/resources/location/_add_edit_form.php @@ -1,7 +1,27 @@ +<?php +/** + * @var Resources_LocationController $controller + * @var bool $show_form + * @var string $mode + * @var string $name + * @var string $category_id + * @var string $longitude + * @var string $latitude + * @var string $altitude + * @var string $description + * @var string $parent_id + * @var string $number + * @var string $address + * @var int $sort_position + * @var Building $location + * @var array $grouped_defined_properties + * @var array $property_data + */ +?> <? if ($show_form): ?> - <form class="default" method="post" action="<?= ($mode == 'add') - ? $controller->link_for('resources/location/add', ['category_id' => $category_id]) - : $controller->link_for('resources/location/edit/' . $location->id) ?>" + <form class="default" method="post" action="<?= $mode === 'add' + ? $controller->add(['category_id' => $category_id]) + : $controller->edit($location->id) ?>" data-dialog="reload-on-close"> <?= CSRFProtection::tokenTag() ?> @@ -9,26 +29,26 @@ <legend><?= _('Grunddaten') ?></legend> <label> <?= _('Name des Standortes') ?> - <input type="text" name="name" value="<?= htmlReady($name) ?>"> + <input type="text" name="name" value="<?= htmlReady($name ?? '') ?>"> </label> <label> <?= _('Beschreibungstext') ?> - <input type="text" name="description" value="<?= htmlReady($description) ?>"> + <input type="text" name="description" value="<?= htmlReady($description ?? '') ?>"> </label> <? if ($GLOBALS['perm']->have_perm('root')): ?> <label> <?= _('Sortierposition') ?> <input type="text" name="sort_position" - value="<?= htmlReady($sort_position) ?>"> + value="<?= htmlReady($sort_position ?? '') ?>"> </label> <? endif ?> <?= $this->render_partial( '../../templates/resources/position_attribute_form_part.php', [ 'property_name' => 'geo_coordinates', - 'latitude' => $latitude, - 'longitude' => $longitude, - 'altitude' => $altitude + 'latitude' => $latitude ?? '', + 'longitude' => $longitude ?? '', + 'altitude' => $altitude ?? '' ] ) ?> </fieldset> @@ -37,7 +57,7 @@ 'resources/resource/_standard_properties_form_part.php', [ 'defined_properties' => $defined_properties, - 'property_data' => $property_data + 'property_data' => $property_data ?? [] ] ) ?> <? endif ?> diff --git a/app/views/resources/location/select_category.php b/app/views/resources/location/select_category.php index 02a2f779425..44ac9269987 100644 --- a/app/views/resources/location/select_category.php +++ b/app/views/resources/location/select_category.php @@ -1,5 +1,11 @@ +<?php +/** + * @var ResourceCategory[] $categories + * @var Resources_LocationController $controller + */ +?> <? if ($categories) : ?> -<form method="get" action="<?= $controller->link_for('resources/location/add' . $room_id) ?>" class="default" +<form method="get" action="<?= $controller->add() ?>" class="default" data-dialog="size=auto"> <label> <?= _('Standortkategorie') ?> diff --git a/app/views/resources/room/select_category.php b/app/views/resources/room/select_category.php index 80acb518835..8dedaca7db1 100644 --- a/app/views/resources/room/select_category.php +++ b/app/views/resources/room/select_category.php @@ -1,5 +1,12 @@ +<?php +/** + * @var ResourceCategory[] $categories + * @var Resources_RoomController $controller + */ + +?> <? if ($categories) : ?> - <form method="get" action="<?= $controller->url_for('resources/room/add/') ?>" class="default" + <form method="get" action="<?= $controller->add() ?>" class="default" data-dialog="size=auto"> <label> <?= _('Raumkategorie') ?> diff --git a/lib/models/resources/ResourceCategory.php b/lib/models/resources/ResourceCategory.php index 44867bd99d1..476dcd9d8f1 100644 --- a/lib/models/resources/ResourceCategory.php +++ b/lib/models/resources/ResourceCategory.php @@ -210,7 +210,7 @@ class ResourceCategory extends SimpleORMap foreach ($definitions as $definition) { if ($definition->group && $definition->group->name) { $group_name = $definition->group->name; - if (!is_array($property_groups[$group_name])) { + if (!isset($property_groups[$group_name])) { $property_groups[$group_name] = []; } $property_groups[$group_name][] = $definition; @@ -252,7 +252,7 @@ class ResourceCategory extends SimpleORMap if (!empty($definition->group->name)) { $group_name = $definition->group->name; - if (!is_array($property_groups[$group_name])) { + if (!isset($property_groups[$group_name])) { $property_groups[$group_name] = []; } $property_groups[$group_name][] = $definition; -- GitLab