# Aide à la saisie à une seule sortie sans filtre
# Spécification de l'aide à une seule sortie
L'exemple ci-dessus montre une liste statique de choix possibles. Cette liste retourne toujours les 3 mêmes choix
(Paris, Rome, Madrid). Le texte affiché est celui qui sera affecté dans l'attribut my_location
.
Ici, le champ my_location
aura une liste déroulante avec 3 choix : Paris, Rome, Madrid.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0">
<smart:structure-configuration name="MY_CITIES" label="Destination">
<smart:fields>
<smart:field-set name="my_fr_ident" type="frame" access="ReadWrite" label="Identification">
<smart:field-text name="my_title" is-title="true" access="ReadWrite" label="Title"/>
<smart:field-text name="my_location" access="ReadWrite" label="City"/>
</smart:field-set>
</smart:fields>
<smart:autocompletion>
<smart:field-autocomplete field="my_location">
<smart:field-callable function="Anakeen\SmartStructures\Mydestination\NoteCityComplete"/>
<smart:field-returns>
<smart:field-return field="my_location"/>
</smart:field-returns>
</smart:field-autocomplete>
</smart:autocompletion>
</smart:structure-configuration>
</smart:config>
# Traitement de l'aide à une seule sortie
Fichier "vendor/Anakeen/SmartStructures/Mydestination/NoteCityComplete.php" :
<?php
namespace Anakeen\SmartStructures\Mydestination;
use Anakeen\SmartAutocompleteRequest;
use Anakeen\SmartAutocompleteResponse;
class NoteCityComplete
{
public function __invoke(
SmartAutocompleteRequest $request,
SmartAutocompleteResponse $response
): SmartAutocompleteResponse {
$cities = ["Paris", "Rome", "Madrid"];
foreach ($cities as $city) {
// Encode $city : Label entry is an HTML fragment
$response->appendEntry(\Anakeen\Core\Utils\Strings::xmlEncode($city), [$city]);
}
return $response;
}
}