# 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;
  }
}